Releases: grafana/pyroscope-dotnet
Releases · grafana/pyroscope-dotnet
pyroscope: v1.2.0
pyroscope: v1.1.0
1.1.0 (2026-06-16)
Features
- allocated type as leaf node (#347) (f9e364b)
- tracing: unify OpenTracing and OpenTelemetry into a single release (#345) (a85c963)
Bug Fixes
- avoid double-freeing timer_create unwinder (#349) (230c40f)
- ci: authenticate nuget.org publish via Trusted Publishing (#329) (4f7feca)
- ci: use package-relative paths in release-please tracing extra-files (#335) (0504840)
- reserve dynamic tag key storage (#344) (3de5d32)
- tracing: trigger release of OpenTracing and OpenTelemetry packages (#332) (bb14ea1)
- tracing: trigger release of OpenTracing and OpenTelemetry packages (#332) (#337) (0f6e415)
Performance Improvements
Miscellaneous Chores
- add pyroscope-dotnet-maintainers to CODEOWNERS (#340) (9dd0f0f)
- deps: update dependency openssl/openssl to v3.5.7 (#356) (4bd2eab)
- derive RELEASE_VERSION from manifest and drop dev image publishing (#342) (a16a543)
- fix period for memory pprof, rename alloc profile type to memory (#351) (3dc4557)
- main: release opentelemetry 0.5.0 (#333) (bd77291)
- main: release opentracing 0.4.1 (#334) (e0672e5)
- main: release pyroscope 1.0.0 (#328) (5138535)
- target Pyroscope tracing packages at net8.0 (#339) (115decd)
opentelemetry: v0.5.0
pyroscope: v1.0.0
1.0.0 (2026-06-03)
⚠ BREAKING CHANGES
- replace handwritten release workflows with release-please (#325)
Features
- implement Poisson upscaling in PprofExporter; add tests and comments (96dc769)
- improve GitHub workflows to support RC releases (#166) (feed50d), closes #159
- Poisson-weighted heap profiling with corrected two-layer upscale (752e915)
- Stable Session ID headers for telemetry (#8352) (f5d4398)
- use human-readable frame names instead of pipe-delimited format (#243) (b8a43ae)
Bug Fixes
- BuildThreadStatPath (#183) (551f15f)
- correct frequency expectations in PoissonAllocationSamplerTest (989f685)
- correct two-layer upscale weight for heap sampling (a2e7e52)
- debugger: clarify unbound line probe reasons (#8415) (55ada2a)
- deps: update module connectrpc.com/connect to v1.19.2 (#302) (e4efdad)
- handle RC versions in release workflows (#173) (401df3d)
- itest: add trailing semicolon to CORECLR_NOTIFICATION_PROFILERS for .NET 9+ (7d1f625)
- itest: publish to separate dir for .NET 10 compatibility (a60f8df)
- itest: remove explicit OutputType for .NET 10 compatibility (4a1cc92)
- itest: use explicit Main method for .NET 10 compatibility (7087fad)
- itest: use host.docker.internal instead of host-gateway for TLS test (1b7b0a0)
- mstest: add 4.2.1 adapter signatures (#8475) (0f665fe)
- normalize pyroscope push endpoint path (d57675a)
- only apply -stdlib=libstdc++ for Clang C++ compilation (#176) (d9eddf3)
- replace hyphens with underscores in sample type names (#189) (60d1219)
- security/unknown: update go toolchain directive to v1.26.3 [security] (#320) (cebd09c)
- security/unknown: update go toolchain directive to v1.26.4 [security] (#327) (d01cbb1)
- security/unknown: update module golang.org/x/net to v0.53.0 [security] (#316) (f4ee1b6)
- set --openssldir=/etc/ssl so profiler finds system CA bundle (8eb77f1)
- set --openssldir=/etc/ssl so profiler finds system CA bundle on user machines (d5c4ca7)
- tests: make sure we include the codeowners tag on all tests (#8060) (1b5e971)
- use apk instead of apt-get in musl/Alpine itest-with-otel image (#249) (fe09f34)
- use default server address when env var is not set (#174) (45981ed), closes #167
- wire SetCPUTrackingEnabled to start/stop TimerCreateCpuProfiler (72cbf5b)
Miscellaneous Chores
- add profiler/_build/ to .dockerignore (#245) (8a01bf3)
- Add skill with steps for the release process (6fad282)
- Add skill with steps for the release process (9ec7326)
- ci: publish to GAR instead of dockerhub (#324) (226658a)
- config: migrate config renovate.json (#227) (afaa0e3)
- deps: pin dependencies (508f2b9)
- deps: pin dependencies (16b7369)
- deps: shrink deps (#323) (e24e1b1)
- deps: update actions/checkout action to v4.3.1 (f497839)
- deps: update actions/checkout action to v4.3.1 (43792a1)
- deps: update actions/checkout action to v6 (#151) (12c33ec)
- deps: update actions/checkout digest to de0fac2 (#172) (34bef2d)
- deps: update actions/setup-dotnet digest to 131b410 (#160) (ee03049)
- deps: update actions/setup-dotnet digest to baa11fb (92bd4b7)
- deps: update actions/setup-dotnet digest to baa11fb (eb4407c)
- deps: update actions/setup-go action to v6 (#272) (bf51313)
- deps: update actions/setup-go digest to 40f1582 (#237) (c10e89b)
- deps: update actions/upload-artifact action to v7 (#234) (f5fd0f1)
- deps: update actions/upload-artifact digest to 043fb46 (#268) (3b01c86)
- deps: update busybox docker tag to v1.37.0 ([#146](https...
opentracing: v0.4.1
v0.15.0-pyroscope
Important
Docker container images have moved from pyroscope/pyroscope-dotnet to grafana/pyroscope-dotnet.
What's Changed
- chore(deps): update actions/setup-go action to v6 by @renovate-sh-app[bot] in #272
- chore(deps): update dependency go to v1.26.2 by @renovate-sh-app[bot] in #270
- chore(deps): update actions/upload-artifact digest to 043fb46 by @renovate-sh-app[bot] in #268
- chore(deps): update busybox:1.37.0-glibc docker digest to 3f9777e by @renovate-sh-app[bot] in #269
- merge datadog v3.40.0 by @korniltsev-grafanista-yolo-vibecoder239 in #263
- fix: normalize pyroscope push endpoint path by @korniltsev-grafanista-yolo-vibecoder239 in #276
- chore: remove unused Docker/compose files by @korniltsev-grafanista-yolo-vibecoder239 in #264
- Pyroscope: fix 'occured' -> 'occurred' in EnvironmentHelpers doc comment by @SAY-5 in #291
- tests: Rework integration tests with Go-driven discovery by @korniltsev-grafanista-yolo-vibecoder239 in #273
- merge datadog v3.41.0 by @korniltsev-grafanista-yolo-vibecoder239 in #288
- fix: wire SetCPUTrackingEnabled to start/stop TimerCreateCpuProfiler by @korniltsev-grafanista-yolo-vibecoder239 in #280
- merge datadog v3.42.0 by @korniltsev-grafanista-yolo-vibecoder239 in #293
- ci: drop .NET 6 support by @korniltsev-grafanista-yolo-vibecoder239 in #295
- test: add two integration tests for dynamic CPU profiling toggles by @korniltsev-grafanista-yolo-vibecoder239 in #265
- itest: replace testcontainers-go with docker CLI wrapper by @korniltsev-grafanista-yolo-vibecoder239 in #294
- integration-test: add allocation, exception, and lock profile stacktrace tests by @korniltsev-grafanista-yolo-vibecoder239 in #300
- ci: use public GitHub runners on forks by @korniltsev-grafanista-yolo-vibecoder239 in #303
- chore(deps): update debian docker tag to bullseye-20260406 by @renovate-sh-app[bot] in #284
- chore(deps): update dotnet monorepo by @renovate-sh-app[bot] in #193
- fix(deps): update module connectrpc.com/connect to v1.19.2 by @renovate-sh-app[bot] in #302
- build: publish dev Docker images on main push and labeled PRs by @korniltsev-grafanista-yolo-vibecoder239 in #297
- chore(renovate): restrict dockerfile dependencies to patch-only updates by @korniltsev-grafanista-yolo-vibecoder239 in #305
- ci: automate release workflows with draft-then-publish flow by @korniltsev-grafanista-yolo-vibecoder239 in #304
- Release v0.14.6-pyroscope by @github-actions[bot] in #308
- ci: publish Docker images to grafana/pyroscope-dotnet by @korniltsev-grafanista in #311
- chore(renovate): vulnerabilities-only with openssl allowlist by @korniltsev-grafanista in #313
- ci: use shared dockerhub-login action for Docker Hub auth by @korniltsev-grafanista in #312
- ci: open version-bump PR as draft, rerun CI on ready-for-review by @korniltsev-grafanista in #310
- Release v0.15.0-pyroscope by @github-actions[bot] in #314
New Contributors
- @SAY-5 made their first contribution in #291
- @github-actions[bot] made their first contribution in #308
Full Changelog: v0.14.5-pyroscope...v0.15.0-pyroscope
v0.14.5-pyroscope
v0.14.5-pyroscope
Bug Fixes
- fix: avoid null thread dereference when resetting cpu consumption (#274)
@korniltsev-grafanista-yolo-vibecoder239
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
- chore(config): migrate Renovate config (#227) @renovate-sh-app
- chore: Add skill with steps for the release process (#255) @simonswine
- rename merge-upstream skill to merge-datadog (#256)
@korniltsev-grafanista-yolo-vibecoder239
v0.14.4-pyroscope
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
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
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>