Skip to content

v2.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Aug 22:35
· 3 commits to main since this release
v2.3.0
6db589a

Features and enhancements

  • Added a balanced query planner (#5501).
  • Added symbol-ref tree support across the read path: a new symbolref model package, production and aggregation in symdb and the query backend, and resolution in the frontend after the final merge (#5321, #5322, #5334).
  • Made experimental asynchronous queries resumable (#5442).
  • Allowed compaction to read block metadata from object storage, adding the metadata_source and metadata_fetch_timeout options (#5427).
  • Improved debuginfod client resilience and observability in the symbolizer, adding the resolve_timeout option (#5449).
  • Added SDK scope usage tracking to the distributor (#5366).
  • Added replay dump and replay push commands to profilecli (#5374).
  • Improved read-path performance by optimizing the index symbol cache layout and aligning the symdb sample appender (#5534, #5535).
  • Improved metastore and compaction performance by scanning block bounds before decoding and avoiding deep label clones when building block indexes (#5407, #5398).
  • Reduced allocations in timeseries build and merge (#5311).

Bug fixes

  • Stopped a single bad DLQ object from blocking metastore recovery (#5371).
  • Disabled raft pipeline replication in the metastore (#5518).
  • Fixed a double prefix on metastore index cache and DLQ metrics (#5543).
  • Allowed the segment writer shard shuffle table to grow past 4096 entries (#5519).
  • Served profile-type Series queries from metadata when the selector is empty (#5483).
  • Used raft_log.CompactionJobStatusUpdate instead of metastorev1.CompactionJobStatusUpdate in compaction (#5465).
  • Keyed adaptive placement distribution stats by tenant and dataset (#5450).
  • Collapsed stripped profiles to a single sample in the distributor (#5409).
  • Treated a JFR profile size limit of 0 as unlimited (#5502).
  • Excluded the pre-window boundary point from profilecli query top totals (#5359).
  • Pointed v2 dashboard event annotations at the Alloy events stream (#5499).
  • Fixed the missing namespace in Helm discovery RBAC objects (#5447).

Security updates

  • Updated Go to 1.25.13 (#5520).
  • Updated go.etcd.io/etcd/client/pkg/v3 to v3.6.14 (#5526).
  • Updated golang.org/x/mod to v0.40.0 (#5521).
  • Bumped nanoid to 3.3.18 in the UI (#5522).
  • This release also includes every security fix from 2.2.1.

Documentation updates

  • Added Node.js to the source code integration docs (#5490).
  • Documented Python memory profiling (#5406).
  • Clarified contributing build targets and the ui/dist requirement (#5457).

Changelog

  • 8098d40 Update golang version to 1.25.13 (#5520)
  • b82524b build: remove go workspace and reduce Renovate to security-only updates (#5397)
  • 06f5e9c chore(deps): bump golang.org/x/mod to v0.40.0 (#5521)
  • 788a581 chore(deps): lock file maintenance (#5418)
  • 37f4757 chore(deps): lock file maintenance (#5452)
  • d1ac3de chore(deps): update parquet-go to v0.30.1 (#5426)
  • 16264e2 chore(examples): bump OpenTelemetry in dotnet examples (#5488)
  • d52797a chore(examples): bump grpc and x/net in go examples (#5486)
  • 098b288 chore(examples): bump puma and sinatra in ruby examples (#5487)
  • 7a6aadd chore(examples): bump starlette in the fastapi example (#5489)
  • 07f92cb chore(examples): pass GITHUB_TOKEN through to the container (#5533)
  • 324b133 chore(examples): patch vulnerable node dependencies (#5485)
  • a549d25 chore(examples): update examples (#5493)
  • 00a46d6 chore(examples): update examples (#5497)
  • 7b2be56 chore(examples): update examples (#5516)
  • cd724d8 chore(ui): bump nanoid to 3.3.18 in the lockfile (#5522)
  • ae04b4a chore: Add more logging to async queries (#5537)
  • 82d8680 chore: bump Helm chart to v2.2.0 (#5400)
  • 0ea0d16 chore: bump Helm chart to v2.2.1 (#5474)
  • ea5d2c7 ci(examples): deploy the images after publishing them (#5500)
  • 661ca37 ci(examples): push rideshare images on a schedule (#5494)
  • 6cb1bda ci(update-contributors): update contributors commits via GitHub API so they are signed (#5455)
  • b720491 docs(contributing): clarify build targets and ui/dist requirement (#5457)
  • 7bd0ca7 docs: Add Node.js to source code integration docs (#5490)
  • 8e4d977 docs: add v2.1.2 release notes (#5469)
  • dfbe475 docs: add v2.2 release notes (#5399)
  • 5ecec75 docs: add v2.2.1 release notes (#5468)
  • 25098eb docs: document Python memory profiling (#5406)
  • 755d7ce docs: updates the list of contributors in README (#5456)
  • fa92a88 examples: enable Python memory profiling (#5421)
  • 1d8fe07 feat(compaction): optionally read block metadata from object storage (#5427)
  • 5f4849c feat(distributor): track SDK scope usage (#5366)
  • f69c4e3 feat(experimental): make async queries resumable (#5442)
  • 3bcd0b1 feat(frontend): resolve symbol-ref trees after the final merge (#5334)
  • b8a5664 feat(model): add symbolref package for symbol-aware tree references (#5321)
  • 87daa75 feat(profilecli): add replay dump/push commands (#5374)
  • a5e7f2d feat(read-path): produce and aggregate symbol-ref trees (model, symdb, query backend) (#5322)
  • 98fb7e1 feat(symbolizer): improve debuginfod client resilience and observability (#5449)
  • 6db589a feat: Implement balanced query planner (#5501)
  • f217135 fix(adaptiveplacement): key distribution stats by tenant and dataset (#5450)
  • ceb071c fix(ci): bump create-github-app-token to v0.3.1 to mask app tokens (#5529)
  • 4059c18 fix(compaction): Use raft_log.CompactionJobStatusUpdate instead of metastorev1.CompactionJobStatusUpdate (#5465)
  • edc6158 fix(deps): bump brace-expansion in /ui [security] (#5466)
  • 26ef03f fix(deps): bump tar, js-yaml, brace-expansion in /ui [security] (#5413)
  • d4b3d29 fix(distributor): collapse stripped profiles to a single sample (#5409)
  • 9a31eec fix(examples): build the golang rideshare images on distroless (#5540)
  • 5056b40 fix(examples): clear the java rideshare CVEs (#5541)
  • b2eeaec fix(examples): create the update commit through the API (#5496)
  • 8216f4a fix(examples): repair the examples update cron (#5492)
  • 07074ce fix(examples): run the nodejs rideshare on a slim base (#5539)
  • b4d7407 fix(helm): missing namespace in discovery RBAC objects (#5447)
  • d50aa87 fix(jfr): treat a profile size limit of 0 as unlimited (#5502)
  • 826f308 fix(metastore): disable raft pipeline replication (#5518)
  • 5a850b1 fix(metastore): don't let a single bad DLQ object block recovery (#5371)
  • 3fe6a45 fix(metastore): double prefix on index cache and DLQ metrics (#5543)
  • c0a71b4 fix(security/critical/): update module github.com/getkin/kin-openapi to v0.144.0 [security] (#5415)
  • 2b10d62 fix(security/high/): update module google.golang.org/grpc to v1.82.1 [security] (#5390)
  • 867e01e fix(security/high/api): update module google.golang.org/grpc to v1.82.1 [security] (#5391)
  • 6e253ea fix(security/unknown/): update module github.com/klauspost/compress to v1.18.7 [security] (#5428)
  • 10608ec fix(security/unknown/): update module go.etcd.io/etcd/client/pkg/v3 to v3.6.14 [security] (#5526)
  • 2a7113d fix(security/unknown/): update module golang.org/x/net to v0.56.0 [security] (#5378)
  • 8507cbc fix(security/unknown/): update module golang.org/x/text to v0.39.0 [security] (#5379)
  • bd1ac11 fix(security/unknown/api): update module golang.org/x/net to v0.56.0 [security] (#5380)
  • 0885dd8 fix(security/unknown/api): update module golang.org/x/text to v0.39.0 [security] (#5381)
  • c87dbfd fix(segmentwriter): allow shard shuffle table to grow past 4096 entries (#5519)
  • 8e535ba fix(ui): adapt to prettier 3.9 and eslint-plugin-react-hooks 7.1 (#5438)
  • 62677fe fix(v2): serve profile-type Series queries from metadata when the selector is empty (#5483)
  • c16819c monitoring: point v2 dashboard event annotations at the Alloy events stream (#5499)
  • 7a51652 optimize index symbol cache layout (#5534)
  • 99fa40d optimize(symdb): align sample appender (#5535)
  • 63cf886 perf(compaction): Avoid deep label clones when building block indexes (#5398)
  • bb7a702 perf(metastore): scan block bounds before decoding (#5407)
  • bbf0965 perf(timeseries): reduce allocations in series build and merge (#5311)
  • 54d0133 profilecli: exclude pre-window boundary point from query top totals (#5359)
  • 1465b70 refactor(compaction): isolate retained labels (#5405)
  • 290d6ae refactor(distributor): extract profile stripping into sampling package (#5441)
  • d6e0710 test(examples): skip profileless compose projects (#5425)
  • 5e01207 test(symbolizer): add symbol-ref tree integration tests and docs (#5335)

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 grafana/pyroscope:2.3.0