Releases: parca-dev/parca-agent
v0.17.0
Changelog
Features:
Enhancements:
- vmtest: Update packages by @javierhonduco in #1517
Bug fixes:
- pkg/discovery: Fix panic when systemd gets corrupted header by @marselester in #1513
- cmd/parca-agent: Make sure log format flag is used by @kakkoyun in #1506
- cmd/parca-agent: Fix debuginfo flags struct by @brancz in #1523
- pkg/profiler/cpu: Fix condition for RequestUnwindInformation by @javierhonduco in #1519
Full Changelog: v0.16.0...v0.17.0
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.17.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.16.0
Changelog
Enhancements:
- symbolizer: Add flag to disable JIT symbolization by @kakkoyun in #1504
- cmd/parca-agent: Refactor flag structs by @kakkoyun in #1503
- pkg/profiler/cpu: Downgrade process name reading error by @javierhonduco in #1492
Bug fixes:
- pkg/profiler: Reset process information if full by @javierhonduco in #1502
Full Changelog: v0.15.0...v0.16.0
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.16.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.15.0
Changelog
Features:
- *: Populate process mappings on-demand by @javierhonduco in #1457
- Add arguments package generated by SWIG tool by @v-thakkar in #1464
Enhancements:
- pkg/debuginfo: Add plt symbol by @zdyj3170101136 in #1351
- pkg/debuginfo: add content length by @zdyj3170101136 in #1481
- pkg/vdso: Support vdso mapping by @zdyj3170101136 in #1455
- pkg/stack/unwind: Filter out jitdump mappings by @javierhonduco in #1477
Bug fixes:
- unwinder/native: Discard stacks with just one frame by @javierhonduco in #1478
- profiler: Improve normalization errors handling by @javierhonduco in #1476
- unwinder/native: Refresh process information by @javierhonduco in #1483
- fix/objectfile: compute right cache key by @zdyj3170101136 in #1454
Full Changelog: v0.14.0...v0.15.0
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.15.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.14.0
Changelog
Features:
- c1e10cc: Discover java processes via hsperfdata (@v-thakkar)
Enhancements:
- 836c146: pkg/discovery: Move github.com/marselester/systemd (#1453) (@marselester)
- bb304d6: Draft of systemd discoverer with less allocs (@marselester)
- 1135ac5: Upgrage libbpf, libbpfgo and go (#1293) (@kakkoyun)
- 0ef6ec6: Adjust log level for "failed to list threads" (@mkuratczyk)
- ed1f20c: Replace systemd discoverer (@marselester)
- 3fb4b39: bpf: Bump max mappings per process to 250 (@javierhonduco)
- f8692ab: bpf: Increase total stats after we've showed them (#1400) (@javierhonduco)
- fcdfbe7: bpf: Print PID on unwind info requests (#1401) (@javierhonduco)
- 863d4ab: build/nix-shell: Use LLVM 14 (@javierhonduco)
Bug fixes:
- 54f2a69: Fix archive filename template (#1404) (@kakkoyun)
- 1727ab5: ci: Do not skip checks if BPF programs or the vmtests change (@javierhonduco)
Full Changelog: v0.13.0...v0.14.0
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.14.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
v0.13.0
Changelog
Features:
- Unwinding for applications without frame pointers enable by default (#1375)
- Support reading symbols from jitdump (#1051)
Enhancements:
- Updated LLVM from 12 to 14 (#1358)
Bug fixes:
- Fix association problems of children processes in (#1348)
- Ensure cached debuginfo path are not stale (#1332)
Full Changelog: v0.12.0...v0.13.0
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.13.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
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...