Skip to content

Releases: DataDog/ddprof

v0.12.0-experimental

24 Mar 07:46
v0.12.0-experimental
639da62
Compare
Choose a tag to compare
v0.12.0-experimental Pre-release
Pre-release

Release automatically created from an internal pipeline.

What's Changed

New Contributors

Full Changelog: v0.12.0-rc...v0.12.0-experimental

v0.11.1

17 Mar 10:36
v0.11.1
Compare
Choose a tag to compare

⚠️ This release has an issue with allocation profiling on arm64 platforms. This can be disabled by using the cpu_only preset.

ddprof --preset cpu_only /app/my_app

What's Changed

  • Enable automatic releasing to GITHub
  • JITDump support
    This enables ddprof to profiles new languages.
  • Fix crash when using custom stack (example: Fibers)
  • Fix tag validation

Full Changelog: v0.10.1...v0.11.1

v0.11.1-rc

15 Mar 20:23
Compare
Choose a tag to compare
v0.11.1-rc Pre-release
Pre-release

Release automatically created from an internal pipeline.

v0.11.0-experimental

09 Feb 15:55
v0.11.0-experimental
2b845a6
Compare
Choose a tag to compare
v0.11.0-experimental Pre-release
Pre-release

Description

A custom release to allow users to try out the JITDump support.

Sha256 sum

669d1fd374a8e8e469ae0336016c89bad765caa4073834e8be685b3d11f6cc9e  ddprof-0.11.0-amd64-linux.tar.xz
bf1d280db480d6c2ff9f5819c1d90d3e3dc7441a37b0d360f2199e3a76e08779  ddprof-0.11.0-arm64-linux.tar.xz

v0.10.1

15 Nov 16:42
v0.10.1
7af8ea4
Compare
Choose a tag to compare

Installation changes

We now ship 2 binaries (down from 4). The binaries are compatible with both musl and glibc (including older libc versions).

What's Changed

  • Allocation profiling - instrument forks
  • Universal binary - remove dependency on libc
    This allows compatibility with older libc (like centos 7)
  • Formalize tracepoint grammar
  • Add build-id to mapping information
  • Switch user if failing to read /proc/<pid>/maps
  • Changes in instrumentation mechanisms
    Periodically check for new loaded libraries (avoids missing libraries loaded with dlopen)
    Use GOT override instead of symbol interposition
  • Add information on lost events
    When ring buffer is full we flag them as "lost events".
  • Use jemalloc as default allocator
    Improves performances of musl builds

Full Changelog: v0.9.3...v0.10.1

Sha256 sum

910ca1c5eeb80e7320970d46448e1c178ae06331d6b2cfe552cc1c37ef408d37  ddprof-0.10.1-amd64-linux.tar.xz
b17ebad06bce6738b2ca2731bc7440b97b5d4c0294357cfb55ca507bd413e910  ddprof-0.10.1-arm64-linux.tar.xz

v0.9.3

09 Aug 06:21
v0.9.3
Compare
Choose a tag to compare

What's Changed

Fix allocation profiling in wrapper mode

Full Changelog: v0.9.2...v0.9.3

Changes since 0.8.1

  • Allocation profiling
    Library mode and wrapper mode have an option to instrument allocations with low overhead.
    Limitation: This only works for dynamically linked allocators (example: standard allocator) and does not follow forks. If you are concerned by these limitations, please reach out with your requirements.
  • Samples are labeled with PID / TID
  • Preset option : adds defined presets to simplify configuration of the profiler (cpu_only, alloc_only)
  • Catch kernel activity (when permissions allow it)
  • Several improvements to unwinding
  • Alpine musl (built on 3.16)

Sha256 sum

6046a0094812fef45035ab714875b53cb101ca43c6b2272486b5a6bf8a72bbfc ddprof-0.9.3-amd64-alpine-linux-musl.tar.xz
ed6f455d737917c6ee7e58b5a5ece57a19220a1b5cfc01b121c7233fcf4c58eb ddprof-0.9.3-amd64-unknown-linux-gnu.tar.xz
f7e0b429f01a596e7e6522648561823a07da537e26e661f509f7f733f773abeb ddprof-0.9.3-arm64-alpine-linux-musl.tar.xz
4eba4530c13972ab5c80301881fc42c251ca6b8d283e8a68ad5ffed3e12131b0 ddprof-0.9.3-arm64-unknown-linux-gnu.tar.xz

[rc] v0.9.2

02 Aug 12:14
v0.9.2
Compare
Choose a tag to compare
[rc] v0.9.2 Pre-release
Pre-release

Issues

Allocation profiling does not trigger if the library is not found (fixed in 0.9.3)

What's Changed

  • Allocation profiling
    Library mode and wrapper mode have an option to instrument allocations with low overhead.
    Limitation: This only works for dynamically linked allocators (example: standard allocator). Please reach out if you are using statically linked allocators and want a solution for allocation profiling.
  • Samples are labeled with PID / TID
  • Preset option : adds defined presets to simplify configuration of the profiler
  • Catch kernel activity (when permissions allow it)
  • Several improvements to unwinding
  • Alpine musl (built on 3.16)

Full Changelog: v0.8.1...v0.9.2

Sha 256

558173396b53e1a3561756813a5d8d1075d493a81871f4d513195b37cddc8bfd  ddprof-0.9.2-amd64-alpine-linux-musl.tar.xz
fef11a38e0771fbd2a94ac264fecf92fbe4f0b5d0863ae274bc0d0dcdf575c63  ddprof-0.9.2-amd64-unknown-linux-gnu.tar.xz
2c2fb512cf8f25b296fc42f55187572987c03c08d32330856d85e848892d0fdc  ddprof-0.9.2-arm64-alpine-linux-musl.tar.xz
0117958fe7723aa57c67cf9552b8e3cc449b0045e2c11f601fc0befa41ea2e6c  ddprof-0.9.2-arm64-unknown-linux-gnu.tar.xz

v0.8.1

18 Mar 17:08
Compare
Choose a tag to compare

What's Changed

New features

  • Library mode
    Deliver profiler as static and shared libraries. DDProf is embedded in the library.
    The library daemonizes ddprof. Check out our internal documentation here.
  • ARM support

Updates

  • Remove usage of libdwfl internals
  • Free inconsistent dwfl modules
    We can come into situations where DSOs don't match the dwfl objects.
    In this situation we can free all of the PID objects to ensure we will
    reload all DSOs and all dwfl objects at the next sample
  • Minor fixes for global mode
  • Multiple updates in build system
    Support ninja, import llvm to a third party directory, compile in c++20,
    setup third parties during configure step.
  • Ensure we export the data gathered at the end of the process's lifetime
    This also ensure we export data for short lived processes
  • Improved management of signals
    SIGTERM and SIGINT now properly end the application

sha256

749771b37fb4ff528c8e5a52776d58fd9e3492fa7ba80a2718ec41663b071f64  ddprof-0.8.1-aarch64-unknown-linux-gnu.tar.xz
3107839f560688bca1256dc12d84e2d49bcb7cd47ea22db6e369198fa45ef6f9  ddprof-0.8.1-x86_64-unknown-linux-gnu.tar.xz

v0.7.0

20 Jan 19:20
60c513d
Compare
Choose a tag to compare

Overview

First public release of the Datadog Native Profiler for Linux! This is a low-overhead CPU-time profiler for x86_64-based applications running on Linux. It is most useful for analyzing applications written in compiled languages like C, C++, and Rust, but it may be useful for other languages and even pre-build services.

Please check out our public documentation here.

You can also check out our README for more information.

SHA256 sums

32e45920cd3fc23d537d0d88b3813f778c91c26666e8de0d8d589bebb885fdc5  ddprof-x86_64-linux-gnu.tar.gz