Skip to content

Releases: grafana/pyroscope-dotnet

v0.14.5-pyroscope

13 Apr 07:27
44c0b61

Choose a tag to compare

v0.14.5-pyroscope

Bug Fixes

Dependencies

  • chore(deps): update dependency openssl/openssl to v3.5.6 (#260)
    @korniltsev-grafanista
  • chore(deps): update actions/setup-go digest to 40f1582 (#237) @renovate-sh-app
  • chore(deps): update actions/upload-artifact action to v7 (#234) @renovate-sh-app
  • chore(deps): update grafana/shared-workflows/ action (#228) @renovate-sh-app

Maintenance

v0.14.4-pyroscope

02 Apr 13:03
2ee588c

Choose a tag to compare

What's Changed

  • feat: Poisson-weighted heap profiling with corrected two-layer upscale (#246)

Docker images

Full Changelog: v0.14.3-pyroscope...v0.14.4-pyroscope

v0.14.3-pyroscope

27 Mar 16:19
b7cf177

Choose a tag to compare

What's Changed

  • ci: add .NET 9.0 and 10.0 integration tests (#252)
  • fix: set --openssldir=/etc/ssl so profiler finds system CA bundle (#251)
  • fix: use apk instead of apt-get in musl notification-profiler itest (#249)
  • chore(deps): update module google.golang.org/grpc to v1.79.3 [security] (#248)
  • fix: UB in DebugInfoStore::Get(): re-acquire iterator after map insertion (#244)
  • chore: add profiler/_build/ to .dockerignore (#245)

Docker images

Full Changelog: v0.14.2-pyroscope...v0.14.3-pyroscope

v0.14.3-heap-poisson.1-rc-pyroscope

24 Mar 17:06

Choose a tag to compare

Pre-release
fix: correct two-layer upscale weight for heap sampling

The live-objects profiler had a ~10x undercount because GetUpscaleWeight()
only compensated for our secondary Poisson filter (layer 2) while ignoring
the CLR's own size-proportional AllocationTick sampling (layer 1).

Fix the two bugs together:
- ShouldSample() now decrements by the 100KB AllocationTick window instead
  of objectSize, so the filter operates on the same unit the CLR uses.
- GetUpscaleWeight() now computes w_clr × w_ours: the CLR layer weight
  (allocationWindow/objectSize ≈ 100) times the our-filter layer weight
  (samplingRate/allocationWindow ≈ 5.5), giving a combined ≈550 instead
  of the broken ≈512.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

v0.14.2-pyroscope

11 Mar 05:27

Choose a tag to compare

What's Changed

  • feat: use human-readable frame names instead of pipe-delimited format (#243)
  • itest: add OTEL dual-profiler integration test and notification profiler API (#240)
  • itest: rewrite integration tests in Go with stacktrace assertions (#235)
  • itest: use notification profiler API instead of main profiler slot (#232)
  • profiler: restore C++ unit tests and preserve them during upstream merges (#229)
  • cmake: add USE_STATIC_OPENSSL option for dev builds (#241)
  • shared/native-src: remove unused tracer classes (#231)
  • profiler: replace BoringSSL with system static OpenSSL (#222)
  • profiler: pass correct profile type label to Pyroscope push API (#221)
  • profiler: update cpp-httplib from v0.14.1 to v0.34.0 (#220)
  • profiler: create separate pprof per ProfileType in pprof exporter (#214)
  • profiler: populate time_nanos and duration_nanos in pprof profiles (#216)
  • profiler: remove unused startTime/endTime from PProfExportSink (#215)
  • profiler: replace per-appdomain pprof map with single builder (#213)
  • profiler: centralize and rename SampleValueType definitions (#212)
  • merge upstream v3.39.0 (#242)

Full Changelog: v0.14.1-pyroscope...v0.14.2-pyroscope

v0.14.1-pyroscope

09 Feb 04:30

Choose a tag to compare

What's Changed

  • fix: managed helpers publishing

Full Changelog: v0.14.0-pyroscope...v0.14.1-pyroscope

v0.14.0-pyroscope

09 Feb 04:26
f1d2f04

Choose a tag to compare

What's Changed

  • feat: replace local profile.proto with pyroscope API protos (#186)
  • feat: improve GitHub workflows to support RC releases (#166)
  • feat: add LabelsWrapper.Do() overload with state (#128)
  • fix: replace hyphens with underscores in sample type names (#189)
  • fix: BuildThreadStatPath (#183)
  • fix: workaround for altstack overflow during nested signal handling (#177)
  • fix: only apply -stdlib=libstdc++ for Clang C++ compilation (#176)
  • fix: use default server address when env var is not set (#174)
  • fix: handle RC versions in release workflows (#173)
  • fix: mask SIGPROF during SIGSEGV handling by the coreclr (#157)
  • chore: remove dd managed loader (#165)
  • chore: update spdlog to v1.17, use as submodule (#164)
  • chore: disallow configuring manual profiler type - only timer create allowed (#162)
  • ci: add Makefile for running integration tests locally (#188)
  • merge upstream v3.34.0

Full Changelog: v0.13.0-pyroscope...v0.14.0-pyroscope

v0.14.0-rc.7-pyroscope

04 Feb 10:25

Choose a tag to compare

Fix pthread_sigmask wrapper: use sigismember loop instead of memcmp

memcmp fails due to uninitialized padding bytes in sigset_t structure.
Instead, iterate through signals to check if SIGSEGV is the only signal
in the set before adding SIGPROF.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v0.14.0-rc.6-pyroscope

04 Feb 03:59

Choose a tag to compare

v0.14.0-rc.5-pyroscope

03 Feb 11:59

Choose a tag to compare

include tid as label