Releases: DataDog/ddprof
v0.12.0-experimental
Release automatically created from an internal pipeline.
What's Changed
- Fix typo - set private field - add some missing includes by @sjanel in #234
- Enable UDS settings by @r1viollet in #233
New Contributors
Full Changelog: v0.12.0-rc...v0.12.0-experimental
v0.11.1
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
Release automatically created from an internal pipeline.
v0.11.0-experimental
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
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
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
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
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
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