Enhancements
- Metastore auto-join (#4474)
- Bearer token support in profilecli (#4475)
- Helm support for v1/v2 storage (#4417)
- Sample type relabeling in distributor (#4376)
- Stacktrace selector support for
SelectMergeStacktraces
requests (#4380) - Metadata index retention policy (#4148)
- Azure ClientSecretCredential authentication support (#4477)
- Add --max-nodes flag to query profile command in profilecli (#4433)
- Allow to optionally enforce maxNodes through limits (#4436)
- Set querier.max-flamegraph-nodes-max default to 1,048,576 (#4370)
- Annotate sampled profiles (#4375)
- Improve request observability (#4400)
- Serve recording rules from config in tenant-settings (#4299)
- Add block list/inspect to profilecli (#4412)
- Extract signal correlation information from OTEL profiles (#4393)
- Distributor performance improvements: single profile series processing (#4342), new metrics (#4367), multi-stage receive metrics (#4384)
- Performance: Use stacktrace tree for adhoc uploads (#4438)
- Performance: Initialize dataset segment head lazily (#4274)
- Performance: Avoid merging single profiles (#4421)
- Performance: Add searchHint to getSeriesIndex (#4286)
- Reduce memory allocations when rendering diff flamegraphs (#4430)
- Improve distributor sampling rule evaluation (#4347)
Fixes
- Fix panic in query pprof path (#4429)
- Fix panic when handling error in metastore snapshot compaction (#4313)
- Fix JFR: merge EnhancerBySpringCGLIB classes (#4471)
- Fix issue in pprof split when using
relabel.LabelDrop
(#4365) - Fix breaking change in ProfileTypes v2 (#4398)
- Fix GetTenantStats reports wrong stats (#4394)
- Fix goroutine leak in compaction-worker (#4409)
- Fix location with empty lines parquet roundtrip (#4407)
- Fix nil check for empty stacktrace filters (#4308)
- Fix revert unintended change in profile merge (#4410)
- Fix vcs.decodeToken can eat an error (#4336)
- Fix Docker ebpf-otel example matches k8s versions (#4386)
- Fix integration test data of partially symbolized profile (#4446)
- Reapply: Handle duplicate validation correctly when sanitizing (#4265)
- Revert: Correct HasFunctions flags for mixed symbolization profiles (#4457)
Documentation
- Update docs and examples for .NET to add LD_LIBRARY_PATH (#4456)
- Add doc for finding URL, password, and user in Cloud Profiles (#4352)
- Update architecture and OS requirements for .NET (#4334)
- Update ebpf supported languages content (#4338)
- Fix typo and update link for GitHub integration (#4374)
- Update ride share tutorial documentation (#4277)
- Mention the dependency on the compactor feature flag (#4302)
- Fix .NET naming (#4289)
Changelog
- c9dd613 Add missing bracket in profile-cli.md (#4369)
- 661762e Adds configuration option to enable external-dns integration and other ingress labeling use cases. (#4402)
- 11065c2 Cherry pick Aleksandar readpath patches (#4404)
- 2a4608e Fix panic in query pprof path (#4429)
- 73a5c80 Fix panic when handling error in metastore snapshot compaction (#4313)
- 0b02657 Improve distributor sampling rule evaluation (#4347)
- 6f8e0d3 Reapply "Fix: Handle duplicate validation correctly when sanitizing (#4238)" (#4265)
- 3b1c0ba Reduce memory allocations when rendering diff flamegraphs (#4430)
- 6fc5713 Remove frontend package typescript-plugin-css-modules to fix the build (#4312)
- 8d39c53 Replaced tags with hashes to prevent Zizmor complaining (#4479)
- 81e0e5f Revert "fix: correct HasFunctions flags for mixed symbolization profiles (#4413)" (#4457)
- 6da51c8 Update github.com/thanos-io/objstore (#4381)
- dec755e Update golang version to 1.23.11 (#4300)
- c67a176 Update golang version to 1.24.6 (#4382)
- a500e5a Update kubernetes.go (#4371)
- 1a30550 Update supported-languages-ebpf.md (#4363)
- 502d716 Update troubleshooting.md (#4364)
- dd0e10a Use larger agents for builds with strong CPU dependency (#4432)
- 037d7fc [DOC] Add doc for finding URL, password, and user in Cloud Profiles (#4352)
- ae56ec6 chore(.idea): add module (#4445)
- 85b4c07 chore(deps): Update OpenTelemetry protocol to 1.8.0 (#4439)
- 2cf80dd chore(deps): bump form-data (#4309)
- 86247e6 chore(deps): bump form-data from 4.0.2 to 4.0.4 (#4310)
- c1b2ce6 chore(deps): bump github.com/go-viper/mapstructure/v2 (#4319)
- cd02076 chore(deps): bump github.com/go-viper/mapstructure/v2 (#4387)
- 80b19cc chore(deps): bump node (#4460)
- 624ebc1 chore(deps): bump sinatra and thin in /examples/language-sdk-instrumentation/ruby/rideshare (#4306)
- 630dfe0 chore(deps): bump sinatra, thin and pyroscope-otel (#4279)
- 330f7f3 chore(deps): bump the github-actions group across 1 directory with 11 updates (#4462)
- ed432ba chore(deps): bump the github-actions group across 1 directory with 4 updates (#4478)
- 6b354c3 chore(deps): bump tmp from 0.2.1 to 0.2.4 (#4357)
- 0f75877 chore(docs): update docs and examples for .NET to add LD_LIBRARY_PATH… (#4456)
- 43b9032 chore(ebpf): remove ebpf module (#4324)
- f91bdd3 chore(examples): update examples (#4296)
- 88b2152 chore(examples): update examples (#4305)
- b12fb97 chore(examples): update examples (#4328)
- f9c4f2c chore(examples): update examples (#4330)
- 0061130 chore(examples): update examples (#4395)
- 9fb731f chore(examples): update examples (#4443)
- 6980023 chore(examples): update examples (#4468)
- 090f5f5 chore(jfr-parser): bump dependency (#4325)
- 0920249 chore(v2): refactor
experiment
package (#4281) - 15478b3 chore: Add profilecli command to delete v1 blocks (#4320)
- 33e8239 chore: Add release notes and update helm release (#4396)
- 5ed601a chore: Add value for priorityClassName to helm chart (#4317)
- f7aba2a chore: Allow to configure subPaths for metastore and shared (#4476)
- 37c237c chore: Clean up collection rules store (#4341)
- a9646af chore: Ensure tenant gets logged during ingest validation errors (#4304)
- b201c2c chore: Fixes reference in grafana-alloy/ebp/setup-linux.md (#4362)
- afb0309 chore: Handle EOF as part of bidi streaming (#4428)
- c2e798e chore: Improve tracing visibility into distributor (#4361)
- c67b86e chore: Log details about each profile processed (#4401)
- 16eebf2 chore: Prepare for 1.14 release (#4269)
- 21b137e chore: Reactivate backport workflow action (#4343)
- 13a12bc chore: Reactivate update-contributors workflow (#4344)
- 21136ba chore: Remove oauth2-proxy (#4345)
- ddd5ca6 chore: Remove transporttrie.Merge (#4405)
- d41599a chore: Update cypress to latest version (#4346)
- 2b3ece0 chore: Update embedded grafana's verisons (#4297)
- 593479c chore: Update envVar configuration to support custom envs (#4272)
- 581575e chore: Update feature flags to show that functions are supported (#4288)
- 85c16f5 chore: Update golangci-lint and fix issues (#4303)
- 6d0f426 chore: Update prometheus dependency to 3.5.0 (#4301)
- 98427fd chore: Updated workflows to use self-hosted agents (#4427)
- ce9fde2 chore: Validate recording rule's metric name (expect prefix) (#4406)
- 2b36123 chore: add V2 integration test with symbolization support (#4444)
- ef21fb2 chore: add dependabot config (#4455)
- 76a701b chore: add ingest request body size limit (#4278)
- 5abd159 chore: add pyroscope_rule_id label to recording rules exported metrics (#4411)
- b1614a0 chore: cleanup og (#4420)
- 6a4ebf3 chore: include rule id in pyroscope_metrics_exporter_series_sent_total (#4454)
- 710c973 chore: log query params (#4294)
- 9b7d9db chore: remove references to ebpf tests (#4390)
- 7a5af3b chore: simplify embedded frontend UI (#4326)
- 38a40a9 chore: update golang version to 1.24.8 (#4483)
- c731377 chore: upgrade dskit (#4311)
- caccdc3 chore: zizmor failures fix (#4469)
- f57601a distributor: add new metrics (#4367)
- 33b66d6 distributor: collect receive metrics at multiple stages (#4384)
- 10710fc distributor: single profile series processing (#4342)
- 7aee605 docs: Add some more keywords, to trigger a docs publish (#4293)
- 0a97784 docs: Fix .NET naming (#4289)
- 4a18fb2 docs: Mention the dependecy on the compactor feature flag (#4302)
- f3dfb40 docs: Reenable the docs publishing workflow (#4291)
- 0380053 docs: Update architecture and os requirements for .NET (#4334)
- c615871 docs: Update ebpf supported languages content (#4338)
- 936eeef docs: Update ride share tutorial documentation (#4277)
- d156d74 docs: fix typo and update link for GitHub integration (#4374)
- 890b45a examples/ebpf-otel: Fix collector tag (#4425)
- e51b632 examples: update ebpf-otel versions (#4284)
- cbf9983 feat(distributor): sample type relabeling (#4376)
- 8471127 feat(profilecli): Add --max-nodes flag to query profile command (#4433)
- bbb96ea feat(v2): metadata index retention policy (#4148)
- dde90ea feat: Add block list/inspect to profilecli (#4412)
- aabcb26 feat: Added devcontainer config (#4415)
- 9bc2847 feat: Allow to optionally enforce maxNodes through limits (#4436)
- 110323a feat: GitHub App should also return the callback URL (#4295)
- efb1734 feat: Helm support for v1/v2 storage (#4417)
- 98bdfad feat: Improve request observability (#4400)
- 0360777 feat: Set querier.max-flamegraph-nodes-max default to 1,048,576 (#4370)
- 46e8409 feat: Support for bearer tokens in profilecli. (#4475)
- 8f2bb8c feat: Support stacktrace selector for
SelectMergeStacktraces
requests (#4380) - 214733c feat: annotate sampled profiles (#4375)
- 373a528 feat: metastore auto-join (#4474)
- 506840f feat: serve recording rules from config in tenant-settings (#4299)
- df50749 feat: support Azure ClientSecretCredential authentication (#4477)
- 76a7e73 fix issue in pprof split when using
relabel.LabelDrop
(#4365) - 7754cfc fix(jfr): merge EnhancerBySpringCGLIB classes (#4471)
- 3a57a06 fix: Breaking change in ProfileTypes v2 (#4398)
- ac18375 fix: Docker ebpf-otel example matches k8s versions & works (#4386)
- 683321f fix: GetTenantStats reports wrong stats (#4394)
- 7e69171 fix:
pyroscope/build
andprofilecli/build
had undefined rules in Makefile (#4416) - e6cf49a fix: change
settings.v1.SettingsService
pathType to work with grafana (#4292) - 7ee3759 fix: correct HasFunctions flags for mixed symbolization profiles (#4413)
- cab28f7 fix: goroutine leak in compaction-worker (#4409)
- fac6ecc fix: integration test data of partially symbolized profile (#4446)
- 16f040f fix: lint issues in labelset package (#4389)
- 6cc9340 fix: location with empty lines parquet roundtrip (#4407)
- 6d19e2e fix: nil check for empty stacktrace filters (#4308)
- f3dba20 fix: revert unintended change in profile merge (#4410)
- fdb8dc7 fix: vcs.decodeToken can eat an error (#4336)
- edb8331 jetbrains: commit run configurations for v1 and v2 (#4391)
- 86b86b8 optimization: avoid merging single profiles (#4421)
- 4a2d0a8 otel(convert): use GetMappingIndex (#4285)
- f6178fd otel: Extract signal correlation information from OTEL profiles (#4393)
- 9ea9ad3 otel: use server.Config grpc server options (#4358)
- ffc2b91 perf(v2): initialize dataset segment head lazily (#4274)
- 0c06993 perf: Use stacktrace tree for adhoc uploads (#4438)
- 841cdd3 perf: add searchHint to getSeriesIndex (#4286)
- 500efbc refactor: remove sidebar components and dependencies (#4419)
- 0f2b920 remove legacy frontend (#4397)
As always, feedbacks are more than welcome, feel free to open issues/discussions.
You can reach out to the team using:
Docker Images
docker pull docker.io/grafana/pyroscope:1.15.0