Releases: grafana/pyroscope
v1.8.0
Release Notes for Pyroscope 1.8.0
Improvements and Updates
- Add ready command to profilecli (#3497)
Fixes
- Handle context correctly in selectTree during queries on store-gateway with deduplication (#3504)
- Bring back update-contributors but in go (#3512)
- FlameQL: allow dots in tag name (#3479)
- Fix pprof grouping for samples with span_id (#3450)
Documentation Improvements
- Fix broken links from doc 404 report (#3489)
- Clarify which URL to use with profilecli (#3526)
- Add notice about heap profiling (#3494)
- Remove old GF_FEATURE_TOGGLES_ENABLE=flameGraph (#3446)
Full changelog
- e08ff84 Add API and command to fetch information of about a Raft node (#3544)
- d657e80 Add gcflags to debug builds (#3517)
- e19b112 Add ready command to profilecli (#3497)
- c4ed965 Add release notes for v1.7 (#3456)
- d08e108 Bring back update-contributors but in go (#3512)
- b49a128 Build profilecli and pyroscope separately (#3496)
- 07e75f0 Bump Helm chart to point to 1.7.1 (#3458)
- 24e11e6 Check if @pyrobench is in comment body before firing action (#3474)
- 3bc7ca0 Chore: Update contributor workflow (#3514)
- 366d582 Enhance commit retrieval with branch & tag prefix support (#3518)
- ca28b5b Ensure data folder for compactor exists (#3455)
- 398f241 Fix: Handle context correctly (#3504)
- 2864680 New architecture prototype (#3388)
- 1fafaea Now with correct filter term (#3476)
- 1d81a51 Remove update-contributors from yarn (#3513)
- 987f743 Segment writer service (#3498)
- 6819c91 Test backport workflow with branch that doesn't make a GraphQL call (#3551)
- 1e6ef5d Update
make docs
procedure (#3511) - d2b671d Update credentials: Use git directly (#3516)
- 58e9e8b Update parquet-go (#3180)
- 3d63809 [DOC] Fix broken links from doc 404 report (#3489)
- 7709a22 [docs] Clarify which URL to use with profilecli (#3526)
- 854639b adhocprofile: Validate IDs and santize names properly (#3470)
- 4bf223f chore(deps): bump elliptic from 6.5.4 to 6.5.7 (#3492)
- a718d43 chore(deps-dev): bump webpack from 5.77.0 to 5.94.0 (#3528)
- 102e6b4 chore(vcs): refactor getCommits to use errgroup (#3533)
- ed5162d chore: Add dotnet SDKv8 support for examples (#3493)
- 80e8ad3 chore: Add relabeling rules flags. (#3462)
- 4568d68 chore: Allow update-contributors to force push changes
- 7f0dc70 chore: Another try to fix update-contributors (#3515)
- bdc0079 chore: Apparently github broke docker compose: (#3466)
- 0e62d09 chore: Move paths from docs/phlare to docs/pyroscope (#3460)
- 1e372a1 chore: Refactor block listing. (#3465)
- c712e86 chore: Update rideshare example docker builds and makefile (#3509)
- 04923f5 chore: add experimental modules (#3480)
- 7d15c5c chore: bump go to 1.22.7 (#3545)
- c85a30a chore: bump upload-artifact CI action to v4 (#3552)
- 060b2b8 chore: cleanup pkg/og/storage/segment (#3453)
- 5d10c2a chore: refine metastore API (#3502)
- 5c15835 chore: replace handwriten mocks with mockery (#3520)
- 77c30fc chore: update godeltaprof and examples (#3486)
- b4ad60d chore: upgrade cillium (#3547)
- c40ee84 docs: Add notice about heap profiling (#3494)
- 2dd9b77 docs: updates the list of contributors in README [skip ci]
- c46bfc4 docs: updates the list of contributors in README [skip ci]
- b8f087c docs: updates the list of contributors in README [skip ci]
- 0157bd9 feat(v2): extend period for truncation, do not truncate all blocks (#3548)
- 730598c feat(v2): implement GetProfileStats (#3546)
- d876d37 feat: Add Pyrobench (#3472)
- 336d198 feat: Embed a grafana and explore-profiles instance into pyroscope (#3428)
- 45c58c3 feat: add GetCommits endpoint for efficient multi-commits fetching (#3529)
- b190683 feat: add segment writer client (#3505)
- bf6f9c5 feat: do not recover from panics with fatal errors (#3534)
- 32621d5 feat: improve compaction job state management (#3519)
- e5ba001 feat: query-backend read path (#3524)
- c25e699 feat: support submodules for github integration (#3531)
- 26210f5 fix (v2): add support for ProfileTypes requests (#3541)
- 4bddf2c fix (v2): remove outdated compaction jobs from storage (#3543)
- 0bf22a4 fix(ci): remove reviewdog hack (#3477)
- 857ec2e fix(docs): remove old GF_FEATURE_TOGGLES_ENABLE=flameGraph (#3446)
- b16b27a fix(flameql): allow dots in tag name (#3479)
- b2ce6a2 fix(metastore): local raft server id (#3530)
- 60c0b09 fix: compaction block queue persistence (#3532)
- e97c746 fix: int overflow on arm7 (#3499)
- 96cad4a fix: pprof grouping for samples with span_id (#3450)
- 6ce2da6 fix: use ubuntu-24.04 in goreleaser-weekly (#3501)
- ad91b32 memdb: like phlaredb but not using fs (#3506)
- 1928bb1 symdb: add WritePartitionV3 function (#3503)
- 659194e trigger ci
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.8.0
v1.7.1
Release Notes for Pyroscope 1.7.1
This is a maintenance release addressing an issue with compactors in single binary mode.
Changelog
As always, feedback is 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.7.1
v1.7.0
Release Notes for Pyroscope 1.7.0
Improvements and Updates
- Ability to relabel profiles at ingest (#3369)
- Use Grafana Alloy (instead of Grafana Agent) in the Helm chart (#3381)
- Per-app usage metrics (#3429)
- Add stacktrace selectors to query merge (#3412)
pprof
export for Go PGO (#3360)- Custom binary format for symdb (#3138)
- Repair truncated Go CPU profiles (#3344)
- Add initial load tests (#3331)
- Align default step for
/render
with Grafana (#3326) - Allow use of different protocols in
profilecli
(#3368) - Various performance improvements (#3395, #3345, #3349, #3351, #3386, #3348, #3358)
- Improve readiness check for ingesters and frontend (#3435)
Fixes
- Fix error handling in filterProfiles (#3338)
- Fix frontend header handling (#3363)
- Fix line numbers for pyspy (#3337)
- Don't compute delta on relabeled
godeltaprof
memory profiles (#3398) - Honor stacktrace partitions at downsampling (#3408)
- Fix infinite loop in index writer (#3356)
Documentation Improvements
- Add a Grafana installation to all examples (#3431)
- Fix broken links (#3440)
- Remove
--stability-level
for Alloy v1.2 (#3382) - Add parameters from otel-profiling-java (#3444)
- Add supported languages for eBPF (#3434)
- Link to supported languages (#3432)
- Update link to play.grafana.org (#3433)
Full changelog
- c0fb2b0 Add alloy instead of agent (#3381)
- 283b7c4 Add changelog for v1.6.0 (#3327)
- 4837be6 Add initial load tests (#3331)
- 0169ee5 Add stacktrace selectors to query merge (#3412)
- 0fb0acf Align default step for /render with Grafana (#3326)
- e464466 Build weeklies with debug information (#3415)
- 2c6d5c2 Change protocol default for profilecli (#3370)
- 35c25b4 Drop linux/arm/v6 architecture (#3447)
- 1f7d0f1 Ensure we use a fixed goreleaser version in github actions (#3377)
- a839566 Fix error handling in filterProfiles (#3338)
- e74f3b8 Fix frontend header handling (#3363)
- 30af212 Fix truncated Go CPU profiles (#3344)
- 0c63617 Improve block plan creation for standalone binary mode (#3325)
- 25f0771 Omit replicas for components with HPA enabled (#3346)
- ce3f59b Only mount UI index at known paths (#3362)
- c697f0d Reject queries without a time range (#3395)
- eaa53a2 Return error when GH configuration is missing (#3334)
- adcfb72 Update
make docs
procedure (#3396) - b9a114e Update alpine version to 3.18.7 (#3364)
- 08bd31b Update azure identity (#3366)
- fd207b1 Update golang version to 1.21.11 (#3365)
- 02f2ded Update golang version to 1.21.12 (#3424)
- 8348529 Update helm chart version and appRelease (#3328)
- 17534d5 Update helm to point to version v1.6.1 (#3380)
- 4ff5438 Update kubeVersion and branch to main (#3403)
- fa05d6b Update outdated java span profile information (#3339)
- a7a0a82 Update release workflow to be v2 compatible (#3375)
- 1c3ce19 [DOC] Fix broken links (#3440)
- dfd129c [DOC] Remove --stability-level for Alloy v1.2 (#3382)
- 924f8ab chore(deps): bump braces from 3.0.2 to 3.0.3 (#3357)
- 074dce2 chore(deps): bump fast-loops from 1.1.3 to 1.1.4 (#3410)
- aac2a88 chore: Deploy tenant-settings and adhoc-profiles microservices (#3417)
- 1a735a9 chore: Fix template issue with Helm 3.8.1 (#3379)
- e5fffac chore: Fix the helm-ci workflow (#3332)
- d2ba4ec chore: Replace alpine with distroless (#3437)
- a9ae4a9 chore: Upgrade golangci-lint to v1.59.1 (#3425)
- 0d7e66a chore: remove Persister[].SortingColumns method (#3383)
- e55d2de chore: support dots in label names (#3335)
- 126da8a docs: Add parameters from otel-profiling-java (#3444)
- 4722e80 docs: Add supported languages for eBPF (#3434)
- 5238b25 docs: Link to supported languages (#3432)
- 336b7dd docs: Update link to play.grafana.org (#3433)
- df6e58c docs: adds grafana to all examples (#3431)
- b6816e3 feat(distributor): Relabel profiles at ingest (#3369)
- 4349c1e feat(profilecli): Allow to use different protocols (#3368)
- e3e2777 feat: Per-app usage metrics (#3429)
- 3fb6d31 feat: implement parent pointer tree recovery (#3390)
- fc023da feat: optimize series order (#3345)
- 13ff2b5 feat: pprof export for Go PGO (#3360)
- 359ecf1 feat: symdb custom binary format (#3138)
- b592810 fix(ingest): line numbers for pyspy (#3337)
- e7cb452 fix: don't compute delta on relabeled godeltaprof_memory->memory profiles (#3398)
- cb303c1 fix: goreleaser compatibility issue (#3347)
- 5eda406 fix: group by with enforced labels order (#3352)
- 0481b28 fix: honor stacktrace partitions at downsampling (#3408)
- 251d619 fix: infinite loop in index writer (#3356)
- feefa81 fix: readiness check for ingesters and frontend (#3435)
- 269ea6d fix: remove unused stacktracesPartition.header field (#3371)
- a5aebf6 fix: revert rewriter LRU cache size (#3413)
- 3509421 fix: stack trace selector ignores conflicting functions (#3414)
- e178664 perf: eliminate flamegraph merge (#3349)
- efc7f2a perf: optimize deduplication (#3351)
- b62930e perf: optimize tree processing (#3386)
- 1bd65d1 perf: optimize tree resolve (#3348)
- 96c3860 perf: tune async batch iterator (#3358)
- dd0aa0c profileStore: add err check, return err if phlareparquet.CopyAsRowGroups returns err (#3421)
- 59d8af6 profileStore: fix unlocking rowsLock (#3422)
- 81f22bf profilecli: Add a label values cardinality subcommand (#3354)
- dbc8af1 profiles parquet encoding: fix profile column count (#3420)
As always, feedback is 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.7.0
v1.6.1
Release Notes for Pyroscope 1.6.1
This is maintenance release updating Go to version 1.21.11 and our base image Alpine to 3.18.7.
Improvements and Updates
- a4971b2 Update alpine version to 3.18.7 (#3364) (#3373)
- bf5a573 Update azure identity (#3366) (#3367)
- 0bc9094 Update golang version to 1.21.11 (#3365) (#3374)
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.6.1
v1.6.0
Release Notes for Pyroscope 1.6.0
Improvements and Updates
- eBPF: Allow resizing maps (#3181)
- Performance: optimize tree node insertion (#3105)
- Performance: tune row iterator buffer size (#3266)
- Compactor: Add a compactor rewriter LRU cache (#3165)
- Helm: Add HPA Support for all Pyroscope components (#3157)
- API: Call for exposing query analysis (#3276)
- API: Use custom codec for vtproto within connect-go (#3310)
- Config: Add S3 force-path-style parameter (#3158)
- Config: Add flag to disable printing banner (#3123)
Fixes
- Fix bug in query frontend diff handling (#3315)
- Fix panic when dealing with missing mapping ID (#3188)
- Fix empty string handling in pprof (#3204, #3244)
- Fix panic recovery interceptor (#3246)
- Fix pprof merge profiles ignoring sample type stub (#3198)
- eBPF: Fix issue when a cls arg is a cell (#3280)
- eBPF: handle case when self is put in cell (#3284)
Documentation Improvements
- Add changes from Cloud Profiles UI to OSS docs (#3243)
- Add links to supported profile types in SDKs (#3228)
- Add note for Agent to Alloy to docs (#3201, #3272)
- Add Pyroscope landing page for doc (#3176)
- Update screenshots in Pyroscope UI' (#3234)
Changelog
- f4f2c43 API for exposing query analysis (#3276)
- 94c1b65 Adapt disk util to FreeBSD (#3132)
- 4fdd876 Add HPA Support for all Pyroscope components (#3157)
- 3a8ea67 Add an option to override the profile timestamp before upload (#3161)
- ed202fa Add check for negative name indices in flamebearer profiles (#3324)
- dd7856c Add integration testing of microservices/replication for label queries (#3130)
- db80171 Add link to use pprof and go sdk simultaneously (#3160)
- 14bcf58 Add profilecli command to dump the tsdb index (#3189)
- a868886 Add release notes for v1.5 (#3120)
- 7aaf8e1 Add warning about environment variables (#3291)
- c3164c3 Allow fuzzer to run manually (#3245)
- 175f592 Bump helm chart to 1.5.0 (#3121)
- 5c34f63 Ensure the ebpf debug info supports both river and alloy (#3253)
- 635b42c Example and docs for .NET span profiles (#3224)
- 960fc32 Example and docs for Python span profiles (#3252)
- 1a3a8a1 Fix bug in query frontend diff handling (#3315)
- 8575ca6 Fix debug info attribute (#3258)
- f868427 Fix example links in README.md (#3141)
- 25724eb Fix link to Tempo data source (#3297)
- b79c573 Fix link to spanprofiler (#3311)
- aca54af Fix panic when dealing with missing mapping ID (#3188)
- 3866594 Fix some comments (#3119)
- 77f3e43 Handle 0 references for locations,mappings,functions (#3217)
- 692323c Implement fuzzer for Merge_Single (#3222)
- 83de13f Improve wording in docs / examples (#3200)
- 54434e2 Include documentation updates in generated changelogs (#3155)
- e845a6b Remove ":" from testdata (#3210)
- 990624b Remove tenant-settings from Ingress (#3221)
- cf9b77d Signed-off-by: stayweek jiangtengtao@outlook.com (#3152)
- 2383667 Stop Disk cleaner when storage bucket is not defined (#3135)
- f4dd4b7 Support pyston based environment (#3126)
- 6e2d580 Update Java OTEL library version in examples and docs (#3174)
- dc1b000 Update
make docs
procedure (#3241) - 774085f Update
make docs
procedure (#3303) - 5d5abe9 Update
make docs
procedure (#3321) - 83e0de8 Update alpine version to 3.18.6 (#3086)
- e046dcd Update golang version to 1.21.9 (#3162)
- 53f7de2 Update golangci-lint and refactor code after update to 1.21 standards (#3313)
- 4df8fd2 Update helm, helm-docs and kubeconform versions (#3146)
- 1d67e05 Update helm/kubeversion in CI checks (#3159)
- 483fe79 Update protobuf/vtproto/buf (#3304)
- 75bb639 Update pyroscope-nodejs integration (#3308)
- e3e48ee Upgrade golang.org/x/net (#3170)
- 0f58360 Upgrade prometheus to v2.51.2 (#3205)
- 616e81a Use custom codec for vtproto within connect-go (#3310)
- 24a46e4 Use dynamic labels for nodejs examples and docs (#3309)
- e03542a Use logfmt for http request logs and collect request size (#3298)
- 589b4c5 [DOC Update flamegraphs.md (#3233)
- bf51cd8 [DOC] Add changes from Cloud Profiles UI to OSS docs (#3243)
- ecc6374 [DOC] Add links to supported profile types in SDKs (#3228)
- 4cb01d6 [DOC] Add note for Agent to Alloy to docs (#3201)
- eb9dd3c [DOC] Fix page weights for the table of contents (#3301)
- 71e2fbd [DOC] Pyroscope landing page for doc (#3176)
- b58be93 [DOC] Update index and java for Alloy (#3272)
- 9791276 [DOC] Update screenshots in Pyroscope UI' (#3234)
- 55bb0be [DOC] Update the README for examples (#3302)
- d111cdf [DOC] Update the demo links on the SDK pages (#3240)
- 9da955c [documentation] update config.river sample for k8s ebpf use case (#3128)
- 65ad9d6 chore(deps): bump axios from 0.26.1 to 0.28.0 in /examples/language-sdk-instrumentation/nodejs/express-ts-inline (#3322)
- 8b0c055 chore(deps): bump express from 4.18.2 to 4.19.2 (#3142)
- c9bf04a chore(deps): bump golang.org/x/net from 0.17.0 to 0.23.0 in /og (#3230)
- 208c52b chore(deps): bump golang.org/x/net in /examples/golang-pgo (#3231)
- d7fb605 chore(deps): bump protobufjs from 7.2.4 to 7.2.5 (#3191)
- b7ed17d chore(deps): bump tar from 6.1.15 to 6.2.1 (#3186)
- 5eb0605 chore(deps-dev): bump rdoc (#3133)
- a189d57 chore: Add .gitignores to dotnet examples (#3281)
- a14f62d chore: Add data-shared to gitignore (#3229)
- 94564fa chore: Move mock struct to test file (#3177)
- 197426d chore: Update golang version to 1.21.10 (#3283)
- 2c3e8b7 chore: remove repetitive words (#3106)
- add5891 chore: update examples (#3183)
- 8262e1d chore: use pyroscope:latest in tracing integration demo (#3115)
- cf55c09 connect: Use klauspost/compress/gzip decompression (#3314)
- e23c664 doc(): fix typo and broken link (#3278)
- 65be0e0 docs: Fix invalid references to
targets
in discovery.relabel (#3153) - bbb6aea docs: Fix some broken links (#3290)
- c306337 docs: Update grafana agent java example readme (#3136)
- f6de564 docs: adds README for node (#3212)
- a767e2c docs: adds node inline source maps example (#3318)
- 58f66fc docs: improves S3 example config (#3275)
- 032c28b docs: updates node examples to use the latest (0.3.3) version of pyroscope-node (#3202)
- 3778701 ebpf: allow resizing maps (#3181)
- 5d96eb2 feat: Add S3 force-path-style parameter (#3158)
- 95cc78f feat: Add flag to disable printing banner (#3123)
- 677729d feat: Auto-refresh github token (#3185)
- 2063655 feat: Track metrics around usage of the GitHub API (#3273)
- f63de9b feat: compactor rewriter LRU cache (#3165)
- 200bc5a fix(ebpf): cleanup testdata (#3274)
- 6e7a297 fix(ebpf): fix issue when a cls arg is a cell (#3280)
- 658bef5 fix(ebpf): handle case when self is put in cell (#3284)
- 5aed1e5 fix(ebpf): python backport fixes (#3268)
- 14fd653 fix(helm): kubernetes_pods_*_default_name keep only targets(containers) with needed port (#3279)
- 09f0787 fix: deprecate pprof MergeNoClone (#3251)
- ff97953 fix: discard invalid samples at read (#3193)
- cc98cb4 fix: ensure pprof strings[0] is always "" (#3204)
- 232b07a fix: panic recovery interceptor (#3246)
- ae6c110 fix: pprof merge profiles ignoring sample type stub (#3198)
- 0f4662c fix: pprof multiple zero strings (#3244)
- f2022b7 fix: remove redundant tag override that was not updated to 1.5.0 (#3137)
- 6f58772 fix: sanitize pprof references (#3218)
- e3a643b integration: Check distributor health before push (#3167)
- 316013f perf: optimize tree node insertion (#3105)
- dc3c913 perf: tune row iterator buffer size (#3266)
- f1b5d3a s/pryoscope/pyroscope (#3206)
- 9e2bb77 vcs: Derive per tenant key (#3293)
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.6.0
v1.5.0
Release Notes for Pyroscope 1.5.0
Improvements and Updates
- Repair Go stack traces (#3014)
- eBPF: Aggregate python stacks in kernel space instead of user space (#2996)
- eBPF: Propagate PID namespace to kernel space (#3008)
- eBPF: Run tests on many kernels (#3025)
- eBPF: Add support for more Python versions (#3035)
- Improve trace span propagation in streaming requests (#2992)
- Drop type params from Go function names (#3010)
- Disable vt proto pools (#3034)
- Allow running multiple rideshare examples in the same network namespace (#2990)
Fixes
- Wait for ongoing queries to finish at close (#3030)
- Fix data duplication in the read path (#3100, #3103)
- Fix merging of empty pprof samples (#3031)
- Correctly format makefile help rule (#3021)
Documentation Improvements
- Reorganize examples folder to match documentation structure (#3026)
- Update Configure the client and span profiles doc (#3028)
- Improve intro and span profiles docs (#3089, #3099)
- Update
make docs
procedure (#2994, #3011, #3059)
Changelog
- 4e4192b Add QuerierService.GetProfileStats (#3090)
- fc19d28 Add an example for using PGO in the Go Rideshare app (#3006)
- 102fd86 Add note about backports (#3019)
- 2fc05e8 Add workaround for broken span propagation in streaming requests (#2992)
- 75160cf Experimental: Adds a Github Integration to fetch profiled code (#2965)
- 9524860 Fix downsampler debug log (#2997)
- abcea72 Fix invalid php-fpm host (#2995)
- aa403a7 Fixes merge of empty samples in pprof (#3031)
- bcf5d04 Minor Java doc improvements (#3000)
- 93988db Update
make docs
procedure (#2994) - 8cfb617 Update
make docs
procedure (#3011) - 361b687 Update
make docs
procedure (#3059) - db14878 Update docs-validator version (#3091)
- 48d0e99 Update golang version to 1.21.8
- a0cfe0f Upgrade pyroscope-nodejs to v0.2.9 (#3032)
- 2988c43 [DOC] Add traces to profile content (#2980)
- 16e76e9 [DOC] Fix minor issues in Span profiles doc (#3099)
- 17f53f8 [DOC] Set up profiling and tracing intro for sharing (#3073)
- 87423e4 [DOC] Update Configure the client and span profiles doc (#3028)
- 75db8b0 [DOC] Update links for new examples folder (#3027)
- 58f4cab [DOC] Updates to correct minor issues in intro doc (#3089)
- d25d50f [DOC] replace video for get started (#3076)
- e10b32c chore(deps): bump django (#3042)
- 7a6a0a9 chore(deps): bump django (#3114)
- 891146f chore(deps): bump follow-redirects (#3108)
- 3059fbc chore(deps): bump follow-redirects (#3109)
- 892e055 chore(deps): bump follow-redirects (#3110)
- 331cc23 chore(deps): bump follow-redirects from 1.15.4 to 1.15.6 (#3107)
- 11256b1 chore(deps): bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp (#3009)
- 5c4c9e3 chore(deps): bump google.golang.org/protobuf (#3098)
- 71102c0 chore(deps): bump ip from 2.0.0 to 2.0.1 (#3013)
- 9f23b04 chore(deps): bump nokogiri (#3043)
- 1c89d17 chore(deps): bump puma (#3046)
- 18ddf2c chore(deps): bump rack (#3056)
- 2012d9d chore(deps): bump rack (#3057)
- 38218a8 chore(deps): bump rails (#3050)
- 21e33e7 chore: Update image tag in helm chart to 1.4.0 (#3023)
- 14f90bf chore: adds ability to add an extra button and a panel (#2998)
- 6c4b94f chore: bump google.golang.org/protobuf (#3104)
- 6d987ed chore: bump jfr-parser (#2968)
- cd03eca chore: update rust example dependencies (#3116)
- c723cba docs(fix): Environment variables in configuration files have default values (#3055)
- c08b736 ebpf(python): update offsets for new pythons (#3035)
- 2a03044 ebpf: Public PID and EXE labels for debugging (#3053)
- 764a83f ebpf: aggregate python stacks in ebpf program instead of userspace (#2996)
- b6b7d6e ebpf: run tests on many kernels (#3025)
- d58b751 epbf: Propagate PID namespace to kernel space (#3008)
- 1be43f7 examples: fix k8s config mistake (#3051)
- 9baa913 examples: update rideshare examples (#2990)
- c286ca2 feat: repair Go stack traces (#3014)
- 30d1c74 fix: Correctly format makefile help rule (#3021)
- bbb5f55 fix: Panics when passing a malformed GitSession (#3058)
- c1ccb50 fix: disable vt proto pools (#3034)
- 6a47d01 fix: drop type params from Go function names (#3010)
- 4785860 fix: head data duplication (#3103)
- 26b2735 fix: query plan optimisation (#3100)
- 163b940 fix: skip recursive stacks (#3052)
- 685506f fix: wait for ongoing queries to finish at close (#3030)
- f13bbf9 refactor(TagExplorer): Extract ExploreHeader component (#3038)
- e683e87 test(ComparisonDiff): Add missing data-testid (#3039)
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.5.0
v1.4.0
Release Notes for Pyroscope 1.4.0
New Features
- Adhoc profiles API (#2963)
- Add query-tracer to profilecli (#2966)
- Add ServiceMonitor support to helm chart (#2944, #2929, #2967)
- Scope time series to flamegraph node API (#2961)
Improvements and Updates
- Improve release workflows and documentation (#2954, #2989, #2948, #2952, #2960, #2975)
- Improve block grouping in admin block viewer (#2947)
- Remove tenant settings from microservices deploy (#2962)
- Add test ids (#2957)
- Bump chart app version (#2940)
- Bump godeltaprof and jfr-parser dependencies (#2955)
- Update default image tag in chart (#2941)
- Per target configuration with labels (#2977)
- Async profile row iterator (#2953)
- Disable Go names decoration (#2976)
Fixes
- Add missing module dependencies (#2969)
- Fix missing icon assets (#2985)
- Store-gateway: Handle index read error properly (#2959)
- Use correct field in mappingsKey (#2964)
- Bump golang.org/x/net (#2986)
- Fix elf base for unaligned PT_LOAD offset, make build id error not fatal (#2983)
Documentation Improvements
- Add 1.3 release notes for docs (#2949)
- Add span profiles documentation (#2982)
- Update eBPF and Java documentation (#2972, #2973)
Changelog
- f59c959 Ad Hoc Profiles (#2963)
- 060f8bd Add 1.3 release notes for docs (#2949)
- 1cdfc1f Add backport workflow to cherry-pick PR merge commits to other long-lived branches (#2954)
- bf110f5 Add missing module dependencies (#2969)
- b741f49 Add query-tracer to profilecli (#2966)
- f8e6d8b Add span profiles documentation (#2982)
- 90b411f Fix missing icon assets (#2985)
- 9c795e4 Fix workflow to only trigger on
release/v<MAJOR>.<MINOR>
branches (#2989) - c68eef0 Improve block grouping in admin block viewer (#2947)
- dc576e7 Remove tenant settings from microservices deploy (#2962)
- 07df86f Store-gateway: Handle index read error properly (#2959)
- a07d305 Update RELEASE.md (#2948)
- 1ce0837 Update
make docs
procedure (#2952) - 5206299 Update
make docs
procedure (#2960) - 25c4dc3 Update deployment diagram (#2975)
- d2a3e03 Use correct field in mappingsKey (#2964)
- 60f4538 bump chart version (#2944)
- 9d30590 chore(Panel): Add test ids (#2957)
- 7d318f4 chore: Bump golang.org/x/net (#2986)
- e6ccef9 chore: bump chart app version (#2940)
- ae1f497 chore: bump godeltaprof and jfr-parser dependencies (#2955)
- c5ec9ac chore: update default image tag in chart (#2941)
- 35d451f docs(grafana-agent,ebpf): do not use undocumented features, used discovery.process (#2972)
- 1b5d8dd docs(pyroscope.java): add pyroscope.java agent docs (#2973)
- 5f808d3 ebpf: fix elf base for unaligned PT_LOAD offset, make build id error not fatal (#2983)
- 3713fae ebpf: per target configuration with labels (#2977)
- f658f05 feat: Add ServiceMonitor support to helm chart (#2929)
- 5b2758d feat: async profile row iterator (#2953)
- 4d4dc67 feat: flamegraph node time-series (#2961)
- ba9d6e7 fix: Double scraping with servicemonitor due to headless service (#2967)
- 369ca83 fix: disable Go names decoration (#2976)
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.4.0
v1.3.0
Release Notes for Pyroscope 1.3.0
New Features
- Enhanced symbol compaction process: Improved performance and storage efficiency with the new symbol compaction process (#2864).
- Introduced function selector in pprof query: More precise profiling with the addition of a function selector (#2878).
- Support for time-based downsampling during compaction: Optimized data processing with time-based strategies (#2880).
- Added tracing integrations to compaction: Better observability in the compaction process (#2876).
- Added language mapping for Grafana agent in Java: Expanded profiling capabilities (#2866).
Improvements and Updates
- Updated Alpine and Golang versions: Enhanced security and performance with the latest versions of Alpine (3.18.5) and Golang (1.21.5) (#2901, #2902).
- Injected JFR labels into pprof: Enriched profiling data for better insights (#2868).
- Streamlined Makefile and go.mod: Better build process with updated Makefile and tidied go.mod (#2900).
- Updated agent configuration in Helm: More flexible deployments in Kubernetes environments (#2879).
- Refactored ebpf installation documentation: Improved clarity and usability in ebpf documentation (#2849).
- Upgraded connect-go, protobuf, and buf: Improved system interoperability (#2909).
- Enhanced compaction shutdown process: Improved system stability during shutdowns (#2903).
- Implemented profilecli compact command: Efficient data management with the new command (#2869).
Fixes
- Fixed panic in compaction benchmark: Addressed issues causing system instability (#2918).
- Resolved block cleanup process issues: Ensured system integrity and stability (#2916).
- Fixed pprof profile builder panics: Enhanced system stability (#2917).
- Corrected profile types call handling: Better data management without bucket store (#2910).
- Removed delta reserved labels from storage: Optimized the storage system (#2920).
- Increased parquet read buffer size: Improved data processing efficiency (#2924).
Documentation Improvements
- Enhanced memory overhead documentation: Deeper insights into system performance (#2895).
- Updated NodeJS documentation: Fixed Markdown link issues for better clarity (#2890).
- Expanded java.md documentation: Comprehensive Java profiling guidance (#2904).
- Removed dependency on Grafana agent: Streamlined Pyroscope architecture (#2913).
- Updated various sections: Intro, analyze, sampling, and SDK pages now offer clearer and more detailed information (#2855, #2844, #2854, #2851, #2861).
- Launched a 1-minute YouTube short on ebpf: Providing a quick and informative overview of ebpf (#2893).
Changelog
- a7504f4 Add grafana-agent.java language mapping (#2866)
- 23b4bb3 Add memory overhead doc (#2895)
- ee2b23a Add self vs total docs (#2884)
- 040609d Add support to set readinessProbe.initialDelaySeconds in Helm (#2865)
- c5ce1c9 Avoid loading all symbols for each partition destination (#2825)
- 87ad94c Correct river config in go_pull.md (#2939)
- 8259ac5 Create release notes for v1.2.1 (#2860)
- cc1b33e Fix compactor metrics (#2894)
- 52b7da5 Fix deployming
make deploy-micro-services
aftermake deploy
(#2921) - 6c8a6f1 Handle profile types call properly without bucket store (#2910)
- 25cf17e Helm: update agent configmap creation condition (#2879)
- 8dc2739 Helm: update doc link in agent configmap (#2886)
- c606b80 Helm: update ingress template's pathTypes (#2887)
- cea7b25 Increase parquet read buffer size (#2924)
- 3087725 Listen on 127.0.0.1 in tests to avoid firewall popups on MacOS (#2882)
- 7faadde Refactor: Upgrade connect-go, protobuf and buf (#2909)
- ec3deff Remove tenant-settings micro-service (#2922)
- c6646db Time based downsampling during compaction (#2880)
- d98b4a3 Update alpine version to 3.18.5 (#2901)
- 678c8d1 Update deployment diagram link (#2885)
- 318f600 Update golang version to 1.21.5 (#2902)
- 2402565 Update golang version to 1.21.6 (#2932)
- 2d72a4d Update java.md (#2904)
- 1912354 Use LabelValues for ProfileTypes call in querier (#2912)
- c923c15 Use api/v0.4.0 after releasing it with connect-go (#2911)
- 3d54b5f [DOC] Updated intro and analyze sections (#2855)
- f6dda62 add 1 min youtube short video on ebpf (#2893)
- 6a1f0ba bugfix: Fixes panic in compaction benchmark (#2918)
- 9e88e1f bugfix: Properly cleanup dst folder on compaction (#2870)
- e6b1693 bugfix: Warn only when deleting twice during compaction (#2874)
- 506c6fe chore(deps): bump follow-redirects from 1.15.2 to 1.15.4 (#2898)
- 740b3a6 chore(deps): bump follow-redirects in /examples/nodejs/express-pull (#2897)
- 35d4dc6 chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#2867)
- 2a87d84 chore: Makefile cleanup go.mod tidying (#2900)
- e9b80b1 chore: add otel-profiling-java example (#2872)
- c054c6b chore: bump dskit dependency (#2873)
- 50f11fa doc: Add sampling diagram (#2861)
- 40ccc05 docs(examples): Grafana agent java example (#2930)
- 417f420 docs(lambda): AWS Lambda extension SDK support (#2931)
- de89897 feat: Add tracing integrations to compaction (#2876)
- ba25f23 feat: Adds the compactor for the all target (#2875)
- cabb3d2 feat: Clean up uploaded blocks in ingesters (#2816)
- fbd1561 feat: Extract main binary version from labels (#2914)
- 749ad99 feat: Improve compaction shutdown (#2903)
- cb15308 feat: Improve symbols compaction (#2864)
- f36b5ce feat: Only load all symbols when splitting (#2871)
- da19f44 feat: Use object storage to save tenant settings (#2905)
- bbcb729 feat: add function selector to pprof query (#2878)
- 816d7b4 feat: profilecli compact command (#2869)
- ed65138 fix FQDN to short names (#2684)
- 00847ab fix NodeJS Docs Markdown link (#2890)
- 59904f7 fix: Skip non-tenant directories during block cleanup (#2916)
- ae00c5b fix: inject JFR labels into pprof (#2868)
- 5280a97 fix: pprof profile builder panics (#2917)
- 9ef1044 helm: update pyroscope to v1.2.1 (#2857)
- d5c9096 move jfr-pprof conversion code from pyroscope repo to jfr-parser module (#2892)
- 7007d52 refactor: Removes the delta reserved labels from storage. (#2920)
- b4d686b remove dependency on grafana agent (#2913)
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.3.0
v1.2.1
Release Notes for Pyroscope 1.2.1
New Features
- Add a way to control the aggregation type for the SelectSeries API (#2758)
- Add admin module serving the bucket web tool (#2724)
- Add block compaction level to bucket index (#2721)
- Introduce the first release of the Cluster API Versioning (#2780)
- Implement Settings API (#2711)
- Develop optimized pprof symbolication and pprof truncation (#2679, #2754)
- Add the first iteration of the blocks viewer cli tool (#2697)
Improvements and Updates
- Improve SelectMatchingProfiles performance (#2734)
- Enhance language detection performance (#2823)
- Refactor Azure bucket configs (#2742)
- Update various dependencies and libraries (#2741, #2744, #2826, #2827, #2832)
- Switch to relative links in block viewer to address issue with alternate base URLs (#2763)
- Update styling to match Grafana (#2827)
Fixes
- Fix duplicate @emotion/react import and favicon (#2798)
- Resolve query split logic issues for LabelNames, LabelValues, and ProfileTypes (#2852)
- Rename Phlare to Pyroscope (#2722)
- Fix span name for BlockSelect from store-gateway (#2842)
- Address issues in version merging in memberlist (#2815)
- Correct handling of overriding extraArgs in components (#2751)
- Remove go.mod replace for golang.org/x/exp (#2848)
- Remove parquet page file buffer in symbdb (#2820)
- Fix various issues in ebpf, ReduxQuerySync, and UI units (#2703, #2761, #2778, #2788, #2789, #2812, #2838)
- Fix ingress for Pyroscope UI (#2807)
Documentation Improvements
- Add initial docs for the /pyroscope/render API endpoint (#2837)
- Create "Ingest and analyze profile data" section in docs (#2828)
- Add upgrade from standard pprof example (#2829)
- Add compactor to docs (#2720)
- Migrate from Standard pprof to Pyroscope for Continuous Profiling (#2830)
- Add introductory material and placeholder pages for Pyroscope documentation (#2834, #2836, #2839)
As always, feedback is more than welcome. Feel free to open issues or discussions. You can reach out to the team using the provided channels.
Changelog
- b9966bd Add a way to control the aggregation type for the SelectSeries API (#2758)
- 9e55dd1 Add admin module serving the bucket web tool (#2724)
- 21e0892 Add block compaction level to bucket index (#2721)
- cc87e23 Add compactor to docs (#2720)
- affe34d Add initial docs for the /pyroscope/render API endpoint (#2837)
- d87e810 Add the first iteration of the blocks viewer cli tool (#2697)
- 30f69c4 Add upgrade from standard pprof example (#2829)
- 3f6c051 Create "Ingest and analyze profile data" section in docs (#2828)
- dfbe9a8 Fallback to deduplication when hitting problem block planning (#2732)
- 0cf0bca Fix duplicate @emotion/react import and favicon (#2798)
- 178e882 Fix query split logic for LabelNames, LabelValues and ProfileTypes (#2852)
- 6e57253 Fix: Rename Phlare to Pyroscope (#2722)
- f095b8d Fixes span name for BlockSelect from store-gateway (#2842)
- f262b24 Fixes versions memberlist merging. (#2815)
- 59fff4c Handle overriding extraArgs in components correctly (#2751)
- 17b66ce Improve SelectMatchingProfiles performance (#2734)
- a338417 Improve language detection performance (#2823)
- 09d605e Merges stacktraces without sorting and pulling labels. (#2673)
- e1a13ca Migrate from Standard pprof to Pyroscope for Continuous Profiling (#2830)
- 2bfe620 Refactor Azure bucket configs (#2742)
- f2e64d7 Remove go.mod replace for golang.org/x/exp (#2848)
- d8e5089 Removes parquet page file buffer in symbdb (#2820)
- d0e9c5d Support discovering docker swarm tasks for ebpf. (#2843)
- f7b8e52 Switch to relative links in block viewer to address issue with alternate base URLs (#2763)
- f803526 Update github.com/thanos-io/objstore to latest (#2741)
- 974bb92 Update go_pull.md (#2744)
- fa0cc37 Update metric in profile-metrics.json (#2826)
- a2c6553 Update styling to match grafana (#2827)
- 5bb9116 Update supportd .NET platforms / versions (#2832)
- fbec955 Use the request context for the admin handlers (#2824)
- 5b8ab0e Xiyu/css fix dependency update (#2765)
- 31ec2d0 [DOC] Add intro material for Pyroscope (#2839)
- 053ca72 [DOC] Add placeholder pages for intro (#2834)
- 80959ae [DOC] Add release notes (#2836)
- c25850f [profilecli/canary-exporter] Fix probe_success metric description (#2810)
- 6c1e141 chore(chart): bump version (#2713)
- d56e6d7 chore(deps): bump @adobe/css-tools from 4.3.1 to 4.3.2 (#2790)
- 4ddcd54 chore: adds ability to render profile in dot format (#2808)
- 1071f56 chore: bump godeltaprof dependency (#2784)
- 8838f5a chore: disable collapsing for now (#2750)
- b9bb769 chore: polish span profiler (#2811)
- a4c1438 chore: remove old tracing integration examples (#2801)
- 370e49f chore: update tracing demo (#2791)
- deaa1ec chore: updates grafana/flamegraph dependency - fixes slow comparison view renders (#2749)
- fd89bda feat: Cluster API Versioning (#2780)
- fce54f9 feat: Logs push failure information (#2835)
- e3eec1a feat: Settings API (#2711)
- 104465c feat: optimized pprof symbolication (#2679)
- 000930f feat: pprof truncation (#2754)
- d8f8194 fix ingress for pyroscope UI (#2807)
- 82a7d75 fix(ReduxQuerySync): Register the sync as soon as possible (#2723)
- e567d52 fix(Units): Fix incorrect units in the UI (#2733)
- 71ffca5 fix(ebpf): #2788 followup (#2789)
- 8dc366a fix(ebpf): ignore kthreads, do full pids cleanup (#2778)
- 131c5e3 fix(ebpf): merge equal samples (#2788)
- 94d0a6a fix(ebpf): prefer pid targets over container targets (#2761)
- e7f202e fix(ebpf): python arm64 (#2703)
- 9826831 fix(ebpf): start profiling after attaching perf reader (#2812)
- fba9246 fix: Use a pool of LabelPairs to reduce memory allocs (#2838)
- d4b89c1 fix: span query read path (#2822)
- 7f90946 fix: test ebpf ci (#2752)
- 52740c8 helm: release a new version for 1.2 (#2731)
- e8ebeb7 helm: update to Pyroscope 1.2 (#2717)
- a27512a perf: optimize SelectMergeProfile (#2762)
- 6b00f62 perf: optimize select merge span profile read path (#2813)
- 5dcea23 refactor(TagExplorer): Human friendly metric names in the Tag Explorer page (#2787)
- 2a6e094 remove old api key format from example docs (#2619)
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.2.1
v1.2.0
🚀 We are excited to present this release of Grafana Pyroscope packed with 150 commits 🚀
In this release, we've introduced significant enhancements to our microservice mode, aiming to boost performance and streamline operations. The compactor component has been added to optimize block management, improving query speed and reducing replication factor overhead.
Our physical planning has undergone optimization, ensuring that data deduplication occurs only when necessary. Additionally, we've initiated tracing integrations, allowing for the inclusion of span ids in profiling samples and enabling flamegraph filtering.
For users leveraging Function as a Service (FaaS) environments, we've enhanced profiling data ingestion by automatically aggregating profiles. This not only reduces the number of profiles but also contributes to improved overall efficiency.
We've invested substantial effort in optimizing the read path and refining query performance, delivering a smoother user experience.
Trace to profiles integrations
Notable changes are listed below for more details check out the Full Changelog: v1.1.5...v1.2.0
Enhancements
- 728493e feat: Scalable Compactor (#2466)
- d4e3b03 Create a physical plan for block querying (#2586)
- 1488496 Extend profile schema to support spans (#2508)
- 1e7ebd9 Allow to configure pyroscope high disk utilization (#2666)
- 4e8439d Optimize repeated row iterator (#2572)
- f1b82c5 feat(ebpf): add pyperf (#2201)
- 25084ea Randomize sessions after aggregation (#2656)
- 3c5a959 Make max node limit configurable (#2658)
Bug Fixes
- e572d26 Cleanup failed segment before flushing. (#2606)
- be7bc5d Fix symbols resolver race condition (#2665)
- f4b0a60 fix(jfr): merge equal samples (#2652)
Documentation Updates
- We've added documentation for
profilecli
to query and upload pprof files. - We've also documented the store-gateway and compactor component.
New Contributors
- @jeyraof made their first contribution in #2327
- @nlamirault made their first contribution in #2342
- @urgerestraint made their first contribution in #2357
- @bodji made their first contribution in #2363
- @rabunkosar-dd made their first contribution in #2364
- @wilfriedroset made their first contribution in #2424
- @jhedev made their first contribution in #2432
- @mlcdf made their first contribution in #2459
- @grafakus made their first contribution in #2496
- @github-actions made their first contribution in #2493
- @vivekkoya made their first contribution in #2499
- @yuseferi made their first contribution in #2537
- @jjangga0214 made their first contribution in #2502
- @segler-alex made their first contribution in #2557
- @bubu11e made their first contribution in #2560
- @zalintyre made their first contribution in #2536
- @dxsup made their first contribution in #2581
- @nickelghost made their first contribution in #2601
- @aleks-p made their first contribution in #2645
- @knylander-grafana made their first contribution in #2676
- @JakeCooper made their first contribution in #2699
- @AS-Labs made their first contribution in #2705
Your feedback is crucial to us, and we encourage you to explore the improvements in this release, report any issues, and join the discussions to help us continue refining and enhancing Grafana Pyroscope.
Thank you for your ongoing support!
You can reach out to the team using:
Docker Images
docker pull docker.io/grafana/pyroscope:1.2.0
The Pyroscope team
(@kolesnikovae @korniltsev @cyriltovena @simonswine @aleks-p @bryanhuhta @petethepig @Rperry2174)