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
- metadata: Refactor metadata provider by @kakkoyun in #1014
- .eh_frame: Pass the right pidtgid to add_stacks by @javierhonduco in #1021
- bpf: Ensure that the hashing code is unrolled by @javierhonduco in #1023
- debuginfo: Add bounded concurrency for debuginfo uploads by @kakkoyun in #1020
Changelog
- 5593e45: *: Add ability to set memlock rlimit (#990) (@kakkoyun)
- d7cd2c5: *: Add flag to allow skipping stripping of binaries (#1007) (@brancz)
- 6aeeb38: .eh_frame/bpf: Add native stack unwinder in BPF for executables without (@javierhonduco)
- 24d66f7: .eh_frame/docs: Add eh_frame stack unwinding hacking docs (@javierhonduco)
- f081439: .eh_frame: Add .eh_frame/.debug_frame parser (@kakkoyun)
- d6beafb: .eh_frame: Add DWARF utilities (@javierhonduco)
- 500650f: .eh_frame: Add program to debug unwind tables (@javierhonduco)
- d6c8535: .eh_frame: Add stack unwinding test data and test (#917) (@javierhonduco)
- d83e33c: .eh_frame: Add the infrastructure for native stack unwinding with unwind (@javierhonduco)
- 53eca1c: .eh_frame: Add unwind table implementation (@javierhonduco)
- 3731aae: .eh_frame: Bubble up DWARF expressions and value registers (#922) (@javierhonduco)
- 1432982: .eh_frame: Carry over state in all advancelocations (@javierhonduco)
- e15e026: .eh_frame: Evaluate DWARF unwind instructions (@v-thakkar)
- 853e782: .eh_frame: Fix remember and restore state (@javierhonduco)
- 0cbd2f8: .eh_frame: Fixes for the dwarf unwind information parser (@javierhonduco)
- 76b5ca7: .eh_frame: Improve RBP handling (@javierhonduco)
- 579a7de: .eh_frame: Pass the right pidtgid to add_stacks (@javierhonduco)
- 5e51e93: .eh_frame: Reduce size of the stack aggregation key (@javierhonduco)
- 03495a0: .eh_frame: Reduce unwind table's row size (@javierhonduco)
- ecb3924: .eh_frame: Remove bpf_loop (@javierhonduco)
- 507138d: .eh_frame: Shard unwind table (#999) (@javierhonduco)
- 217812b: .eh_frame: Store unwind information for every instruction (@javierhonduco)
- 7346b3d: .eh_frame: Table generation fixes (@javierhonduco)
- 07732ee: Add API for the kernel config checks (#686) (@v-thakkar)
- 99d1c79: Add bounded concurrecy for debuginfo uploads (#1020) (@kakkoyun)
- d3dcd97: Add codeowners (#698) (@kakkoyun)
- 8fa7306: Add metadata provider for compilers (#695) (@kakkoyun)
- 4d7c4e8: Add missing target groups for the process (@kakkoyun)
- fc3fc00: Add native histograms for profiler attempts and symbolize durations (@metalmatze)
- 0f2c983: Add system metadata (@javierhonduco)
- e23fb9b: Add time expiration on debuginfo cache (#721) (@Pryz)
- 3ad2cd5: Add tried paths to kernel config check (#877) (@kakkoyun)
- b3138d8: Added a missing host path to the agent psp (@manojVivek)
- b1162cf: Adjust snap package to use classic confinement (#918) (@jnsgruk)
- 41c7a15: Allow partial symbolization (#898) (@kakkoyun)
- 1698f26: Close k8s resources (#596) (@kakkoyun)
- 6eabe98: Combine profiler metrics into parca_agent_profiler_attempts_total (@metalmatze)
- 1e9a07e: Fix (@maxbrunet)
- dabf039: Fix docker socket issue (#595) (#598) (@kakkoyun)
- de92bb6: Fix linter issues (@kakkoyun)
- 22277c3: Handle multiple shstrtabs (#894) (@kakkoyun)
- 1af24d4: Local dev fixes (#626) (@manojVivek)
- f5f241b: Make sure profiles are merged by PID (@kakkoyun)
- 4772d95: Migrate from cgroup profiling to system-wide profiling (#627) (@javierhonduco)
- 1ce2d9a: Mount required directories for kubernetes config (#892) (@kakkoyun)
- 06a7ee9: Re-enable profiler/tests (#895) (@kakkoyun)
- 0e07172: Refactor after and cleanup system-wide profiling changes (#663) (@kakkoyun)
- 7848195: Reintroduce local temp state and extract stripped debug info into filesystem (@kakkoyun)
- 4ba5c0a: Remove Rust/Aya-based toolchain (#869) (@kakkoyun)
- b75e877: Remove debug-info (#653) (@kakkoyun)
- 9490c39: Remove deprecated tmpdir flag (@javierhonduco)
- 51a1008: Remove force type asserts linter exclusions (#713) (@javierhonduco)
- 148d394: Unify naming of debuginfo (@kakkoyun)
- ccf305a: Update jsonnet dependencies (#636) (@kakkoyun)
- fc13e6d: Upgrade golangci-lint to 1.47.1 (#610) (@kakkoyun)
- 3e23e94: pkg/metadata: add 'comm' label for process (#932) (@Sylfrena)
- 5cefae0: bpf: Ensure that hashing code is unrolled (@javierhonduco)
- b3317c9: build(eh-frame): build with osusergo (#879) (@maxbrunet)
- cbada34: chore(nix-shell): fix llvm (#468) (@maxbrunet)
- edf9dfe: cmd/parca-agent: Fix bearer token handling (@brancz)
- 4ed0d97: cmd/parca-agent: add component pprof label (#846) (@heylongdacoder)
- 8cb7469: debuginfo: Increase exists cache size (#662) (@javierhonduco)
- 4e51a6d: debuginfo: Make debuginfo upload cache configurable (#1019) (@kakkoyun)
- cc19467: deploy: Remove kubernetes arch label restriction (#607) (@brancz)
- bcee23d: deploy: Tolerate any taint (#632) (@brancz)
- d8fa44b: elfwriter-test: Clean the files (#1005) (@v-thakkar)
- 4c452a6: elfwriter: Add test to check the preservation of links (#980) (@v-thakkar)
- be49dd1: elfwriter_test: Add all types in the symbol table (@v-thakkar)
- c0ab79a: feat(deploy): support agent config (#907) (@maxbrunet)
- 7121d0d: feat(metadata): cache label sets (#960) (@maxbrunet)
- c869910: feat(ui): bring back target list (#767) (@maxbrunet)
- 616aa75: feat: add simple health HTTP endpoints (#963) (@maxbrunet)
- 66839c0: feat: add snap packaging (#689) (@jnsgruk)
- 91a6fa3: feat: auto-reload configuration (#906) (@maxbrunet)
- f1fa49c: feat: set default node name (#972) (@maxbrunet)
- 62fda67: feat: support relabeling (#887) (@maxbrunet)
- 22d25e7: fix(discovery): ensure systemd units which have disappeared are accounted for (#834) (@maxbrunet)
- e57c9d8: fix(file-writer): prefix file name with PID (#804) (@maxbrunet)
- 78837cd: fix(symbol): ignore ErrPerfMapNotFound error (#805) (@maxbrunet)
- 33d38c8: fix: ability to specify alt kernel config options (@jnsgruk)
- 8590862: fix: add more context to profile log messages (#755) (@maxbrunet)
- d5d0fe4: fix: replace CONFIG_BPF_JIT_DEFAULT_ON (@jnsgruk)
- 1ba7f87: go.mod: Update delve (@javierhonduco)
- dde0fc8: ksym: Use a bounded cache (@javierhonduco)
- df55bec: libbpf: Upgrade to libbpf v1.0.1 (#901) (@javierhonduco)
- d913c3c: main: Do not exit if feature detection fails (#875) (@javierhonduco)
- f66bb89: metadata: Refactor metadata provider (#1014) (@kakkoyun)
- 5d97b4f: perf: split perf-map and proc status not found errors (#756) (@Pryz)
- 3b449db: pkg/agent: add writeRaw retries and overall latency metrics (#888) (@heylongdacoder)
- 9141a5b: pkg/debuginfo: Add debug info dirs as CLI argument (@heylongdacoder)
- 65d1a45: pkg/discovery: fix discovery manager startProvider log mistake (#912) (@heylongdacoder)
- 13532d4: pkg/elfwriter: Update tests due to elfutils API changes (#797) (@marselester)
- 8500b34: pkg/executable: Add ASLR check for PIE executables (@javierhonduco)
- c6e205a: pkg/kconfig: Check for BPF_JIT_DEFAULT_ON (@v-thakkar)
- 04e2042: pkg/ksym: Add benchmarks for the kernel symbolizer (#931) (@javierhonduco)
- 80c9a4f: pkg/metadata: Cache compiler metadata output (#902) (@javierhonduco)
- 48933a4: pkg/metrics: Add license header (#859) (@javierhonduco)
- 93deede: pkg/objectfile: Add lint ignore for dup word (@javierhonduco)
- dd5e40d: pkg/perf: Clarify the not found error is about perf-maps (@brancz)
- df2214d: pkg/profiler/cpu: Lower log level when failing to symbolize (#716) (@brancz)
- 4ab2341: pkg/profiler/cpu: check if bpf program and map type are supported (#930) (@heylongdacoder)
- 03ca59b: pkg/stack: Add benchmark unwind table generation (#925) (@javierhonduco)
- 0d4f310: profiler/cpu: Preallocate samples slice (@javierhonduco)
- 2e115f7: profiler/cpu: Reenable tests (@javierhonduco)
- adb19eb: profiler: Add cgroup name to the process metadata (@javierhonduco)
- c3308e2: profiler: Fix race condition in the profile's buffer (#641) (@javierhonduco)
- 1e00bb8: profiler: Minor documentation fixes (@javierhonduco)
- 461f328: profiler: Remove BPF stack helper error logging (#643) (@javierhonduco)
- 63590da: refactor(discovery): use systemd D-Bus API (#971) (@maxbrunet)
- 125f276: symbolizer: Fix Kernel symbolication and improve performance (#708) (@javierhonduco)
- b5b0873: ui:Round time duration in Next Profile Started (#989) (@Sylfrena)
Docker images
docker pull ghcr.io/parca-dev/parca-agent:v0.10.0-rc.0
Thanks!
Join our Discord server;
Follow us on Twitter;
Read the documentation.
New Contributors
- @manojVivek made their first contribution in #612
- @jnsgruk made their first contribution in #689
- @Pryz made their first contribution in #721
- @marselester made their first contribution in #797
- @heylongdacoder made their first contribution in #837
Full Changelog: v0.9.0...v0.10.0-rc.0