Releases: parca-dev/parca-agent
v0.12.0
Changelog
Features:
- Configurable profiling frequency and default to 19hz (#1213)
Enhancements:
- Improve performance of various aspects (#1129, #1171, #1161)
- Exit the agent if it runs on arm64 with dwarf unwinder (#1219)
Bug fixes:
- Fix wrong first program header type when extracting debuginfos from a binary (#1216)
Full Changelog: v0.11.1...v0.12.0
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.12.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.11.1
Changelog
- 0e42468: metadata: Fix metadata association problems concerning children processes (#1232) (@kakkoyun)
Full Changelog: v0.11.0...v0.11.1
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.11.1
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.11.0
Breaking Changes
This release has a breaking change in the debuginfo upload protocol, which is only compatible with Parca server v0.15.0 or higher (more details in #1104 and parca-dev/parca#2248).
What's Changed
Aside from the above-mentioned breaking changes, this release primarily improves resource usage required by the Parca Agent and iterates on the experimental DWARF unwinding support in various aspects working towards enabling it by default.
- debuginfo/find: Add more local debug information search patterns by @kakkoyun in #1036
- bpf: Reduce BPF map memory usage by @javierhonduco in #1042
- docs/eh_frame: Add features and limitations doc by @javierhonduco in #1054
- Add support for dwarf expressions for PLTs by @javierhonduco in #1058
- Reduce elf.Open() calls by @Sylfrena in #1001
- pkg/profile: Replace gzip package to reduce allocs by @marselester in #1065
- docs: Update security document by @kakkoyun in #1081
- docs: Move labelling doc from downstream parca-dev/docs by @kakkoyun in #1082
- Update the design doc for system-wide profiling changes by @kakkoyun in #1084
- .eh_frame: Remove expensive opcode dispatch by @javierhonduco in #1094
- *: Use new signed URL API for uploads when possible by @brancz in #1104
- .eh_frame: Don't allocate the full unwind table by default by @javierhonduco in #1101
- pkg/debuginfo: Set size of upload in upload initiation by @brancz in #1124
- cpu/test: Ensure that unwind table can grow by @javierhonduco in #1106
- .eh_frame/parser: Only collect registers used for unwinding by @javierhonduco in #1127
- Reduce dbus allocs in ReadMessage path by @marselester in #1146
New Contributors
- @morremeyer made their first contribution in #1077
Full Changelog: v0.10.1...v0.11.0
v0.10.1
Changelog
- f088d87: Bump unwind table shards from 3 to 6 (@javierhonduco)
- 21fafba: Conditionally set unwind tables map size (#1074) (@javierhonduco)
- 98910e5: Lower the required memlock rlimit if dwarf unwinding is not enabled (#1080) (@kakkoyun)
- 5df72b7: Make sure we handle errors when config file path is specified (#1064) (@kakkoyun)
- 9b55e15: Merge pull request #1076 from javierhonduco/increase-unwind-table-shards (@javierhonduco)
- f8fd85e: Reduce the updates for unwind tables (#1083) (@kakkoyun)
- 2f5ea46: Remove required rlimit for memlock (#1085) (@kakkoyun)
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.10.1
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.10.0
Highlights
- Migrate from cgroup profiling to system-wide profiling by @javierhonduco in #627
- Native stack walking with DWARF v1 by @javierhonduco in #948
- Native stack walking with DWARF v2 by @javierhonduco in #978
What's changed
- target discovery: Close k8s resources by @kakkoyun in #596
- deploy: Remove kubernetes arch label restriction by @brancz in #607
- deploy: Added a missing host path to the agent PodSecurityPolicy by @manojVivek in #612
- chore(nix-shell): fix llvm by @maxbrunet in #468
- misc: Local dev fixes by @manojVivek in #626
- deploy: Tolerate any taint by @brancz in #632
- profiler: Fix race condition in the profile's buffer by @javierhonduco in #641
- profiler: Remove BPF stack helper error logging by @javierhonduco in #643
- profiler: Minor documentation fixes by @javierhonduco in #647
- docs: System-wide profiling related updates by @javierhonduco in #649
- profiler: Add cgroup name to the process metadata by @javierhonduco in #651
- Remove deprecated tmpdir flag by @javierhonduco in #659
- debuginfo: Increase exists cache size by @javierhonduco in #662
- feat: add snap packaging by @jnsgruk in #689
- Add API for the kernel config checks by @v-thakkar in #686
- Refactor after and cleanup system-wide profiling changes by @kakkoyun in #663
- metadata: Add provider for compilers by @kakkoyun in #695
- pkg/kconfig: Check for BPF_JIT_DEFAULT_ON by @v-thakkar in #701
- cmd/parca-agent: Fix bearer token handling by @brancz in #706
- symbolizer: Fix Kernel symbolication and improve performance by @javierhonduco in #708
- Ksym cache: Use a bounded cache by @javierhonduco in #711
- Remove force type asserts linter exclusions by @javierhonduco in #713
- pkg/profiler/cpu: Lower log level when failing to symbolize by @brancz in #716
- pkg/perf: Clarify the not found error is about perf-maps by @brancz in #717
- profiler/cpu: Preallocate samples slice by @javierhonduco in #720
- fix: ability to specify alt kernel config options by @jnsgruk in #734
- Add time expiration on debuginfo cache by @Pryz in #721
- perf: split perf-map and proc status not found errors by @Pryz in #756
- fix: add more context to profile log messages by @maxbrunet in #755
- pkg/elfwriter: Update tests due to elfutils API changes by @marselester in #797
- fix(file-writer): prefix file name with PID by @maxbrunet in #804
- fix(symbol): ignore ErrPerfMapNotFound error by @maxbrunet in #805
- revert: downgrade github.com/aquasecurity/libbpfgo to v0.3.0-libbpf-0.8.0 by @maxbrunet in #827
- pkg/debuginfo: Add debug info dirs as CLI argument by @heylongdacoder in #837
- pkg/metrics: Add license header by @javierhonduco in #859
- cmd/parca-agent: add component pprof label by @heylongdacoder in #846
- .eh_frame: Add DWARF unwind information parser by @javierhonduco in #863
- Add system metadata by @javierhonduco in #858
- pkg/objectfile: Add lint ignore for dup word by @javierhonduco in #868
- go.mod: Update delve by @javierhonduco in #870
- .eh_frame: Unwind table generation by @javierhonduco in #867
- Remove Rust/Aya-based toolchain by @kakkoyun in #869
- main: Do not exit if feature detection fails by @javierhonduco in #875
- fix(discovery): ensure systemd units which have disappeared are accounted for by @maxbrunet in #834
- kconfig: Add tried paths to the error message by @kakkoyun in #877
- build(eh-frame): build with osusergo by @maxbrunet in #879
- feat(ui): bring back target list by @maxbrunet in #767
- feat: support relabeling by @maxbrunet in #887
- Handle multiple .shstrtab sections in a file by @kakkoyun in #894
- test: Re-enable profiler/tests by @kakkoyun in #895
- pkg/agent: add writeRaw retries and overall latency metrics by @heylongdacoder in #888
- kconfig: Mount required directories for kubernetes config by @kakkoyun in #892
- symbolizer: Allow partial symbolization by @kakkoyun in #898
- libbpf: Upgrade to libbpf v1.0.1 by @javierhonduco in #901
- Adjust snap package to use classic confinement by @jnsgruk in #918
- .eh_frame: Add unwinding table tests by @javierhonduco in #917
- .eh_frame: Bubble up DWARF expressions and value registers by @javierhonduco in #922
- pkg/stack: Add benchmark for unwind table generation by @javierhonduco in #925
- pkg/metadata: Cache compiler metadata output by @javierhonduco in #902
- pkg/discovery: fix discovery manager startProvider log mistake by @heylongdacoder in #912
- pkg/profiler/cpu: check if bpf program and map type are supported by @heylongdacoder in #930
- pkg/ksym: Add benchmarks for the kernel symbolizer by @javierhonduco in #931
- pkg/metadata: add 'comm' label for process by @Sylfrena in #932
- feat(deploy): support agent config by @maxbrunet in #907
- feat: auto-reload configuration by @maxbrunet in #906
- feat: add simple health HTTP endpoints by @maxbrunet in #963
- feat: set default node name by @maxbrunet in #972
- elfwriter: Add test to check the preservation of links by @v-thakkar in #980
- refactor(discovery): use systemd D-Bus API by @maxbrunet in #971
- feat(metadata): cache label sets by @maxbrunet in #960
- elfwriter_test: Add all types in the symbol table by @v-thakkar in #988
- ui: Round time duration in Next Profile Started by @Sylfrena in #989
- *: Add ability to set memlock rlimit by @kakkoyun in #990
- .eh_frame: Reduce size of the stack aggregation key by @javierhonduco in #996
- .eh_frame: Initial ASLR support by @javierhonduco in #997
- .eh_frame: Shard unwind table by @javierhonduco in #999
- .eh_frame: Improve RBP handling by @javierhonduco in #1004
- elfwriter-test: Clean the files by @v-thakkar in #1005
- *: Add flag to allow skipping stripping of binaries by @brancz in #1007
- ci(e2e): simplify setup by @maxbrunet in #1000
- Improve the agent metrics and add native histograms by @metalmatze in #1010
- metadata: Add missing container labels back by @kakkoyun in #1013
- Reintroduce local temp state by @kakkoyun in #1017
- debuginfo: Make debuginfo upload cache configurable by @kakkoyun in #1019
- metad...
v0.10.0-rc.1
Changelog
- 3dcac74: Add missing path prefixes to PodSecurityPolicy (#1033) (@kakkoyun)
- 3c3daea: Introduce debug-process-names and experimental-enable-dwarf-unwinding (#1034) (@kakkoyun)
- 3287e99: Make sure uploads do not block (#1040) (@kakkoyun)
- 56bd748: Parentheses are our friends (@kakkoyun)
- 3467f51: Pin clang version (#1046) (@kakkoyun)
- e127ebf: Reduce systemd polling interval (#1043) (@kakkoyun)
- b7d5858: Remove host port (#1032) (@kakkoyun)
- 81252b1: Run actions on release branches (#1039) (@kakkoyun)
- 96f6af0: bpf: Reduce BPF map memory usage (@javierhonduco)
- f6d6bab: ci: fix snap build for tags (#1029) (@jnsgruk)
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.10.0-rc.1
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.10.0-rc.0
Highlights
- Migrate from cgroup profiling to system-wide profiling by @javierhonduco in #627
- Native stack walking with DWARF v1 by @javierhonduco in #948
- Native stack walking with DWARF v2 by @javierhonduco in #978
What's changed
- target discovery: Close k8s resources by @kakkoyun in #596
- deploy: Remove kubernetes arch label restriction by @brancz in #607
- deploy: Added a missing host path to the agent PodSecurityPolicy by @manojVivek in #612
- chore(nix-shell): fix llvm by @maxbrunet in #468
- misc: Local dev fixes by @manojVivek in #626
- deploy: Tolerate any taint by @brancz in #632
- profiler: Fix race condition in the profile's buffer by @javierhonduco in #641
- profiler: Remove BPF stack helper error logging by @javierhonduco in #643
- profiler: Minor documentation fixes by @javierhonduco in #647
- docs: System-wide profiling related updates by @javierhonduco in #649
- profiler: Add cgroup name to the process metadata by @javierhonduco in #651
- Remove deprecated tmpdir flag by @javierhonduco in #659
- debuginfo: Increase exists cache size by @javierhonduco in #662
- feat: add snap packaging by @jnsgruk in #689
- Add API for the kernel config checks by @v-thakkar in #686
- Refactor after and cleanup system-wide profiling changes by @kakkoyun in #663
- metadata: Add provider for compilers by @kakkoyun in #695
- pkg/kconfig: Check for BPF_JIT_DEFAULT_ON by @v-thakkar in #701
- cmd/parca-agent: Fix bearer token handling by @brancz in #706
- symbolizer: Fix Kernel symbolication and improve performance by @javierhonduco in #708
- Ksym cache: Use a bounded cache by @javierhonduco in #711
- Remove force type asserts linter exclusions by @javierhonduco in #713
- pkg/profiler/cpu: Lower log level when failing to symbolize by @brancz in #716
- pkg/perf: Clarify the not found error is about perf-maps by @brancz in #717
- profiler/cpu: Preallocate samples slice by @javierhonduco in #720
- fix: ability to specify alt kernel config options by @jnsgruk in #734
- Add time expiration on debuginfo cache by @Pryz in #721
- perf: split perf-map and proc status not found errors by @Pryz in #756
- fix: add more context to profile log messages by @maxbrunet in #755
- pkg/elfwriter: Update tests due to elfutils API changes by @marselester in #797
- fix(file-writer): prefix file name with PID by @maxbrunet in #804
- fix(symbol): ignore ErrPerfMapNotFound error by @maxbrunet in #805
- revert: downgrade github.com/aquasecurity/libbpfgo to v0.3.0-libbpf-0.8.0 by @maxbrunet in #827
- pkg/debuginfo: Add debug info dirs as CLI argument by @heylongdacoder in #837
- pkg/metrics: Add license header by @javierhonduco in #859
- cmd/parca-agent: add component pprof label by @heylongdacoder in #846
- .eh_frame: Add DWARF unwind information parser by @javierhonduco in #863
- Add system metadata by @javierhonduco in #858
- pkg/objectfile: Add lint ignore for dup word by @javierhonduco in #868
- go.mod: Update delve by @javierhonduco in #870
- .eh_frame: Unwind table generation by @javierhonduco in #867
- Remove Rust/Aya-based toolchain by @kakkoyun in #869
- main: Do not exit if feature detection fails by @javierhonduco in #875
- fix(discovery): ensure systemd units which have disappeared are accounted for by @maxbrunet in #834
- kconfig: Add tried paths to the error message by @kakkoyun in #877
- build(eh-frame): build with osusergo by @maxbrunet in #879
- feat(ui): bring back target list by @maxbrunet in #767
- feat: support relabeling by @maxbrunet in #887
- Handle multiple .shstrtab sections in a file by @kakkoyun in #894
- test: Re-enable profiler/tests by @kakkoyun in #895
- pkg/agent: add writeRaw retries and overall latency metrics by @heylongdacoder in #888
- kconfig: Mount required directories for kubernetes config by @kakkoyun in #892
- symbolizer: Allow partial symbolization by @kakkoyun in #898
- libbpf: Upgrade to libbpf v1.0.1 by @javierhonduco in #901
- Adjust snap package to use classic confinement by @jnsgruk in #918
- .eh_frame: Add unwinding table tests by @javierhonduco in #917
- .eh_frame: Bubble up DWARF expressions and value registers by @javierhonduco in #922
- pkg/stack: Add benchmark for unwind table generation by @javierhonduco in #925
- pkg/metadata: Cache compiler metadata output by @javierhonduco in #902
- pkg/discovery: fix discovery manager startProvider log mistake by @heylongdacoder in #912
- pkg/profiler/cpu: check if bpf program and map type are supported by @heylongdacoder in #930
- pkg/ksym: Add benchmarks for the kernel symbolizer by @javierhonduco in #931
- pkg/metadata: add 'comm' label for process by @Sylfrena in #932
- feat(deploy): support agent config by @maxbrunet in #907
- feat: auto-reload configuration by @maxbrunet in #906
- feat: add simple health HTTP endpoints by @maxbrunet in #963
- feat: set default node name by @maxbrunet in #972
- elfwriter: Add test to check the preservation of links by @v-thakkar in #980
- refactor(discovery): use systemd D-Bus API by @maxbrunet in #971
- feat(metadata): cache label sets by @maxbrunet in #960
- elfwriter_test: Add all types in the symbol table by @v-thakkar in #988
- ui: Round time duration in Next Profile Started by @Sylfrena in #989
- *: Add ability to set memlock rlimit by @kakkoyun in #990
- .eh_frame: Reduce size of the stack aggregation key by @javierhonduco in #996
- .eh_frame: Initial ASLR support by @javierhonduco in #997
- .eh_frame: Shard unwind table by @javierhonduco in #999
- .eh_frame: Improve RBP handling by @javierhonduco in #1004
- elfwriter-test: Clean the files by @v-thakkar in #1005
- *: Add flag to allow skipping stripping of binaries by @brancz in #1007
- ci(e2e): simplify setup by @maxbrunet in #1000
- Improve the agent metrics and add native histograms by @metalmatze in #1010
- metadata: Add missing container labels back by @kakkoyun in #1013
- Reintroduce local temp state by @kakkoyun in #1017
- debuginfo: Make debuginfo upload cache configurable by @kakkoyun in #1019
- metad...
v0.9.1
Changelog
- 016c690: Added a missing host path to the agent psp (@manojVivek)
- 3a4176e: Run actions against release branches (@kakkoyun)
- d8f547a: deploy: Remove kubernetes arch label restriction (#607) (@brancz)
- 0e638c9: deploy: Tolerate any taint (#632) (@brancz)
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.9.1
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.9.0
Changelog
- 7d9ddec: Fix pipeline caching issues (#603) (@kakkoyun)
- ebd9e30: Rewrite eBPF profiler in Rust (#377) (@kakkoyun)
- e6d57a2: bpf: Add atomic increments back (#552) (@javierhonduco)
- 7415166: chore: Add minikube install script (#515) (@kakkoyun)
- 8a52655: chore: Build binaries outside multi-stage containers (@kakkoyun)
- 8a7973b: chore: Fix arm64 build (#431) (@v-thakkar)
- cc749c8: Fix build id extraction (#534) (@kakkoyun)
- 8238b7b: Fix multi-arch builds (#415) (@kakkoyun)
- 1284040: bpf: License under GPLv2 (#414) (@vadorovsky)
- d86d507: build: Add race detector flag (#497) (@javierhonduco)
- 03849fd: chore: Local dev build outside (#575) (@kakkoyun)
- 0477f68: chore: add shell.nix file for development (#448) (@maxbrunet)
- 8328a0a: chore: make development environment more portable (#433) (@maxbrunet)
- 6b67638: debuginfo/extractor: Make sure .text section is not uploaded (#531) (@kakkoyun)
- 01ef8e4: debuginfo: Add pure-Go ELF Writer to extract debug information (#454) (@kakkoyun)
- f1167d8: debuginfo: Fix race when extracting debug info files (#444) (@javierhonduco)
- 77f1861: docker: Fix arm64 build (@vadorovsky)
- 5f8f152: fix: set profile duration to real measurement (#429) (@maxbrunet)
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.9.0
New Contributors
- @cpanato made their first contribution in #413
- @vadorovsky made their first contribution in #414
- @maxbrunet made their first contribution in #433
- @importhuman made their first contribution in #476
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
Full Changelog: v0.8.0...v0.9.0
v0.9.0-rc.1
Changelog
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.9.0-rc.1
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.