Releases: DataDog/ddprof
Releases · DataDog/ddprof
latest-rc
v0.18.0
Major updates
- Timeline is ON by default
What's Changed
- Documentation update: add examples by @r1viollet in #406
- Doc update: Worker period flag for leak investigations by @r1viollet in #408
- Update Readme.md by @peterg17 in #410
- Virtual frame adjustement - Filename only by @r1viollet in #413
- configuration update for inlined functions by @r1viollet in #414
- Default runtime-id tag by @r1viollet in #415
- Update to libdatadog v11.0.0 by @r1viollet in #416
- Timeline ON by default by @r1viollet in #417
- Reorder events by default by @nsavoire in #418
- Shutdown worker server only when all opened connections are closed by @nsavoire in #419
Full Changelog: v0.17.1...v0.18.0
v0.17.1
Major updates
- Live heap mode is fixed (for leak investigations).
- Our Symbolization library has changed: we now rely on blazesym.
- We now have an option to retrieve inlining information
-I,--inlined_functions
- Code locations are OFF by default. Instead they are triggered with the
-I,--inlined_functions
option. This is done due to the potential overhead of parsing debug information. - PID mode is fixed (
-p 1234
). - The performance of
--global
mode is improved which results better profiler accuracy (events are no longer missed). The RSS usage of full host is considerably improved by this release.
What's Changed
- Add logging to the library by @nsavoire in #359
- Consider urls starting with a / to be UDS by @r1viollet in #399
- [PROF-9088] Ensure DSO objects are cleared by @r1viollet in #400
- Bump version to v0.17.1 by @r1viollet in #401
- libdatadog v8.0.0 by @r1viollet in #402
- [PROF-9088] ddprof cli - fix maximum pid setting by @r1viollet in #403
- Jitdump error on replaced element by @r1viollet in #404
- Compilation fixes for Linux Alpine 3.19 by @nsavoire in #381
- Add STRIP_DEBUG_INFO cmake option by @nsavoire in #382
- Bump version to 0.17.0 by @nsavoire in #383
- [PROF-9088] Add option to disable symbolization by @nsavoire in #380
- [PROF-9088] Use Go build id as fallback for gnu build id by @nsavoire in #384
- [PROF-9088] Make find_build_id more robust by @nsavoire in #385
- Fix dependency check by @nsavoire in #386
- [PROF-9406] Fix live heap profiling when allocation profiling is also enabled by @nsavoire in #388
- [PROF-9407] Add option to reorder events by timestamp across ring buffers by @nsavoire in #387
- [PROF-9408] Fix pid mode to attach to all process threads by @nsavoire in #389
- [PROF-9088] Force backpopulate upon worker start in PID mode by @nsavoire in #392
- [PROF-9088] Blazesym symbolization by @r1viollet in #390
- [PROF-9429] Search profiler mount namespace first by @nsavoire in #393
- Use binary path for filename when symbolization fails by @nsavoire in #394
- [PROF-9088] Fix symbolization for binaries with compressed debug information by @r1viollet in #395
- Simplify symbolize_pprof by @nsavoire in #396
- Minor CLI update - Allow hyphens and underscores by @r1viollet in #397
- Remove code locations by default by @r1viollet in #398
Full Changelog: v0.16.0...v0.17.0
Full Changelog: v0.17.0...v0.17.1
v0.17.0
Major updates
- Live heap mode is fixed (for leak investigations). There was a major configuration bug.
- Our Symbolization library has changed: we now rely on blazesym.
- We now have an option to retrieve inlining information
-I,--inlined_functions
- Code locations are OFF by default. Instead they are triggered with the
-I,--inlined_functions
option. This is done due to the potential overhead of parsing debug information. - PID mode was fixed.
- The performance of
--global
mode is improved which results better profiler accuracy (events are no longer missed).
What's Changed
- Compilation fixes for Linux Alpine 3.19 by @nsavoire in #381
- Add STRIP_DEBUG_INFO cmake option by @nsavoire in #382
- Bump version to 0.17.0 by @nsavoire in #383
- [PROF-9088] Add option to disable symbolization by @nsavoire in #380
- [PROF-9088] Use Go build id as fallback for gnu build id by @nsavoire in #384
- [PROF-9088] Make find_build_id more robust by @nsavoire in #385
- Fix dependency check by @nsavoire in #386
- [PROF-9406] Fix live heap profiling when allocation profiling is also enabled by @nsavoire in #388
- [PROF-9407] Add option to reorder events by timestamp across ring buffers by @nsavoire in #387
- [PROF-9408] Fix pid mode to attach to all process threads by @nsavoire in #389
- [PROF-9088] Force backpopulate upon worker start in PID mode by @nsavoire in #392
- [PROF-9088] Blazesym symbolization by @r1viollet in #390
- [PROF-9429] Search profiler mount namespace first by @nsavoire in #393
- Use binary path for filename when symbolization fails by @nsavoire in #394
- [PROF-9088] Fix symbolization for binaries with compressed debug information by @r1viollet in #395
- Simplify symbolize_pprof by @nsavoire in #396
- Minor CLI update - Allow hyphens and underscores by @r1viollet in #397
- Remove code locations by default by @r1viollet in #398
Full Changelog: v0.16.0...v0.17.0
v0.16.0
Major changes
- Fix on elf segment mappings
On binaries with large alignment values, this was preventing us from unwinding and symbolizing.
What's Changed
- Align segment offset down to page size by @nsavoire in #367
- Improve DsoHdr::erase_range by @nsavoire in #370
- Remove check_invariants from hot code path by @r1viollet in #372
- Fix on backpopulate logics - init flow by @r1viollet in #369
- Fix infinite loop when retry succeeds by @nsavoire in #373
- Simplify compute_elf_bias by @nsavoire in #374
- Add an hidden option to enable remote symbolization by @nsavoire in #375
- Only look for runtime symbols in executable mappings by @nsavoire in #378
- Fix self profiling by @nsavoire in #377
- Bump ddprof version by @nsavoire in #379
Full Changelog: v0.15.3...v0.16.0
v0.15.3
Major changes
- Removal of an inode consistency check that was causing failures when looking up files.
What's Changed
- Fix file lookup (inode check removal) by @r1viollet in #361
- Add -fno-semantic-interposition by @nsavoire in #360
- Add a limit on maximum number of profiled PIDs by @r1viollet in #364
- Bump version number to 0.15.3 by @r1viollet in #365
Full Changelog: v0.15.2...v0.15.3
v0.15.2-rc
This is a pre-release. Please use this release in a non-critical environment.
v0.15.2
Major updates
- Deadlock fix (introduced in 0.15.1) for non standard allocator users (example: jemalloc users)
What's Changed
- Do not install sarif-tools on ubuntu 18 by @nsavoire in #350
- Remove TLReentryGuard from init_tl_state by @nsavoire in #353
- Remove call to retrieve_stack_bounds by @nsavoire in #354
- Remove useless malloc/free calls by @nsavoire in #355
- Remove useless functionref.hpp header by @nsavoire in #357
- Improve pid/tid caching by @nsavoire in #356
- Avoid doing allocations in m(un)map hooks by @nsavoire in #358
- v0.15.2 by @r1viollet in #362
Full Changelog: v0.15.1...v0.15.2
v0.15.1-rc
This is a pre-release. Please use this release in a non-critical environment.
v0.15.1
Major updates
- A major performance improvement on
ddprof
's RSS usage 📉 - Allocation profiling now follows child processes (even through execs)
This means you can launch ddprof, before a bash script, before a python execution, before a ruby shim... - Live heap performance improvement.
- Better startup instrumentation.
Read the full change log for more updates:
What's Changed
- Do not override weak undefined symbols by @nsavoire in #348
- Use commit hash instead of tag for Abseil by @nsavoire in #345
- Add sarif tools to build image by @nsavoire in #346
- Version bump v0.15.1 by @r1viollet in #349
- Improve string operations by @nsavoire in #347
- Add a debug log to simple malloc (minor test change) by @r1viollet in #301
- Replace tcb/span with std::span by @nsavoire in #303
- Cleanup third party directory by @nsavoire in #304
- Add enum flags by @nsavoire in #305
- Fix loaded libs check by @nsavoire in #306
- Add support for dynamically linked jemalloc by @nsavoire in #308
- Update build images by @nsavoire in #309
- Allow to update CI status by @nsavoire in #310
- Improve ELF segment matching by @nsavoire in #299
- Crash fix - Fix segment matching by @r1viollet in #314
- Valgrind runner fix by @r1viollet in #312
- Fix handling of env variables by profiler lib by @nsavoire in #313
- Update to clang 17 and re-enable clang-tidy checks by @nsavoire in #311
- In use objects - add a profile type by @r1viollet in #316
- Bump version to v0.15.0 by @r1viollet in #317
- Duplicate mappings upon fork by @nsavoire in #315
- Fix elf segment matching (again) by @nsavoire in #318
- Fix small pessimizations by @nsavoire in #320
- Simplify DSO intersection computation by @nsavoire in #321
- Add backpopulate benchmark by @nsavoire in #322
- Log TSC calibration method by @nsavoire in #319
- Minor alpine local compilation fix - patch file read permissions by @r1viollet in #326
- Reduce the flakyiess of simple_malloc by @r1viollet in #324
- Update preset value - cpu_live_heap by @r1viollet in #325
- Fix lost sample reporting by @nsavoire in #328
- Performance live heap profiling - deallocation code path by @r1viollet in #298
- Enable clang-tidy on headers by @nsavoire in #327
- Use perf timestamps to order mmap events with backpopulate by @nsavoire in #330
- Remove unreachable return by @sanchda in #331
- Fix unfortunate copy paste by @nsavoire in #329
- Add timestamp to allocation events using PerfClock by @nsavoire in #332
- Add libdatadog5 and timestamps by @sanchda in #333
- Reduce size of allocation events by @nsavoire in #338
- Tracepoints - add a check for debug fs using pid 1 by @r1viollet in #339
- Remove some dependencies on ddprof::Parser by @nsavoire in #336
- Sanchda/timeline to realtime by @sanchda in #335
- Reduce check_clock_vdso duration by @nsavoire in #341
- Make allocation profiling work after exec by @nsavoire in #342
- Logger rate limiting by @nsavoire in #343
- Refactor symbol overrides by @nsavoire in #344
Full Changelog: v0.14.0...v0.15.1