Repository navigation
docs(dotnet): Update OTLP propagation docs for SDK 7.0.0 - #19924
jamescrosswell wants to merge 4 commits into
Conversation
sentry-dotnet 7.0.0 stops AddSentryOtlpExporter from installing SentryPropagator and removes the defaultTextMapPropagator parameter (getsentry/sentry-dotnet#5319). Describe what gets propagated by default, how to add SentryPropagator for services that rely on sentry-trace, and when PropagateTraceparent helps. Raise the OpenTelemetry floor to 1.12.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
UseOtlp() stops the SDK creating transactions, so TracesSampleRate and TracesSampler are never read, and the OTLP exporter installs no OpenTelemetry sampler. Replace the "do not set TracesSampleRate" note with a Sampling section that points at the TracerProvider's sampler. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The plan checks client errors on the changed page, overall error volume, and pageload duration. An issue escalates when the changed page emits errors or error volume leaves the measured band. Services: Mention PlanWhat changedThe live .NET OTLP page now documents SDK 7.0.0 propagator behavior. AddSentryOtlpExporter no longer installs SentryPropagator and no longer accepts defaultTextMapPropagator. The page shows a CompositeTextMapPropagator snippet for readers who still need sentry-trace headers. sentry-docs must deploy before this change is live. RiskNew MDX can throw in Alert, code tabs, or PlatformLink during render. That failure hits this page first. A shared code-tab failure can also break other pages. Wrong text can make readers drop sentry-trace propagation after they upgrade. Intended effectThis change is documentation text. Telemetry cannot show that the new wording is live. Absent means the page still shows the old Planned Removal warning. Do not treat missing page views as absent intended effect. Regression watchWatch client failures on this page first. Then watch docs-wide error volume and pageload duration on the shared renderer.
Not observablePage-level pageload duration is not separable. Almost all pages share transaction |
|
PR looks good! We should probably keep it as a Draft until the v7.0.0 to avoid any premature merge risk. |
I've left it ready for review as a way to track what's actually complete vs still needs work on all the docs PRs we're planning for v7. I've added an alert warning at the to of the description instead - I think just you and me, we should be able to avoid merging anything by accident. |
<!-- Keep the urgency section so automation can prioritize this PR. You may delete other sections you don't need. --> ## DESCRIBE YOUR PR This PR adds the migration guide for version 7 of the Sentry SDK for .NET, ready for the public release candidate, `7.0.0-rc.2`. It follows the pattern of the Flutter v10 guide from #19390: - A full guide at `/platforms/dotnet/migration/v6-to-v7/`, built from one include per change in `includes/migration/dotnet-v7/`. - An interactive checklist at `/platforms/dotnet/migration/v6-to-v7/interactive/` that renders the same includes through `<MigrationGuide migration="dotnet-v7" />`. - An agent prompt callout that points at the guide's `.md` URL. - A "Migrating to 7.x" section at the top of the existing .NET migration page, which links to both. Both pages live under `common/`, so they render for every .NET guide, such as ASP.NET Core, MAUI, WPF and Serilog. Xamarin uses a separate SDK, so the new pages exclude it. I didn't move the 6.x, 4.x and 3.x sections, so every existing URL and anchor keeps working and the PR needs no redirects. To register the collection, the PR adds `dotnet-v7` to the `MIGRATIONS` map in the `MigrationGuide` component and to the validator's `COLLECTIONS` map, with specs for both. These changes in `src/components/migrationGuide/` and `scripts/` touch code that the JavaScript and Flutter guides share, so they need an approval from the docs team. For reference, msonnb approved the last change to the component in #19729, and andreiborza approved the JavaScript interactive guide that added it in #19076. The checklist shows one step only on the MAUI guide. Every other step applies to every .NET guide, because .NET apps combine integrations, such as a Serilog sink in an ASP.NET Core app. I checked the guide against `7.0.0-rc.2` from nuget.org and against the `version7` branch at getsentry/sentry-dotnet@a56c63455. The guide describes 7.0.0. Where rc.2 still behaves differently, the release candidate note at the top says so. ### Why this goes live during the release candidate I'd like to merge this as soon as it's approved, while 7.0 is still in release candidate. 7.0.0 GA is planned for 2026-11-30. People who try the release candidate need the guide now, and the agent prompt needs a published `.md` URL to point at. Two develop-docs rules pull in different directions here. [Managing Linear projects](https://develop.sentry.dev/sdk/getting-started/playbooks/coordination/managing-linear-projects/#visibility-for-major-releases) says docs "MUST NOT go live before the SDK ships". The [breaking changes playbook](https://develop.sentry.dev/sdk/getting-started/playbooks/sdk-lifecycle/breaking-changes/#6-update-docs-and-changelog) says to publish the migration guide "before or alongside the major release". I read the first rule as protecting users from docs for code they can't get. Version `7.0.0-rc.2` is public on nuget.org, and the guide's first block says it's a release candidate and names that version. Other SDKs made the same call: - The Python 2.0 guide merged on 2024-02-28, while only the `2.0.0a1` alpha was out. Its note at the top said so. - The JavaScript v11 guide merged on 2026-09-08 with `11.0.0-beta.1` out, and its interactive version followed on 2026-09-11. - The Flutter v10 guide merged on 2026-10-05 with `10.0.0-rc.2` out, four days before 10.0.0. ### The release candidate note The guide opens with one `<Alert>`. It says there is no stable 7.0 yet, names `7.0.0-rc.2`, and says the rest of the .NET docs describe 6.x until 7.0.0 ships. It also covers what only the release candidate has: - `Logging.AddSentry()` after `ClearProviders()` doesn't add Sentry's logger providers back yet. That came with getsentry/sentry-dotnet#5776, after rc.2. - `DecompressionMethods` still includes Brotli, which getsentry/sentry-dotnet#5816 takes out of the default after rc.2. The note says how to leave it out until then. - An ASP.NET Core app that sends `ILogger` entries through NLog crashes with `Debug` on, tracked in getsentry/sentry-dotnet#5822. The guide's verify step turns `Debug` on, so the note says to leave it off in those apps. - Its `net11.0` builds depend on the .NET 11 release candidate versions of three `Microsoft.Extensions` packages. The rest of the guide describes 7.0.0 as released. At GA, I'll delete that one block from `includes/dotnet-v7-migration-overview.mdx`, and nothing else needs to change. ### What this PR leaves to other PRs This PR only adds the guide and what it needs. The reference pages are in other PRs, and this one doesn't need any of them to merge first: - Logs and the logging integrations: #19925 - `Microsoft.Extensions.Logging` and ASP.NET Core: #19961 - OpenTelemetry propagation: #19924 - Release and environment: #19960 - Hangfire monitor schedules: #19781 Three links in the guide point to the "Apps That Call UseSentry" sections that #19925 adds to the Serilog, NLog and log4net guides. Until #19925 merges, they open those guides at the top, and the migration guide sums up the same setups itself. There is no page for the new `Sentry.Extensions.Hosting` package yet. I'll link it from the guide once that page exists. Refs https://linear.app/getsentry/issue/NET-860 Refs getsentry/sentry-dotnet#5710 ## IS YOUR CHANGE URGENT? Help us prioritize incoming PRs by letting us know when the change needs to go live. Select exactly one option. For deadlines, replace `YYYY-MM-DD` with the due date. You can update this information later by editing the PR description. - [x] Urgent deadline (GA date, etc.): 2026-11-30 - [ ] Other deadline: YYYY-MM-DD - [ ] No deadline: Not urgent, can wait up to 1 week+ ## PRE-MERGE CHECKLIST _Make sure you've checked the following before merging your changes:_ - [ ] Checked Vercel preview for correctness, including links - [ ] PR was reviewed and approved by any necessary SMEs (subject matter experts) - [ ] PR was reviewed and approved by a member of the [Sentry docs team](https://github.com/orgs/getsentry/teams/docs) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: James Crosswell <jamescrosswell@users.noreply.github.com> Co-authored-by: Alex Krawiec <alex.krawiec@sentry.io>
Warning
Do not merge before sentry-dotnet 7.0.0 is released (planned 2026-11-30).
DESCRIBE YOUR PR
Updates the .NET OTLP page for sentry-dotnet 7.0.0. From 7.0.0,
AddSentryOtlpExporterno longer installsSentryPropagator, and thedefaultTextMapPropagatorparameter is gone from it and fromUseOtlp(getsentry/sentry-dotnet#5319).SentryPropagatorbullet and the "Planned Removal" alert with a Trace Propagation section. It covers what gets propagated by default, how to addSentryPropagatorfor services that rely onsentry-trace, and whenPropagateTraceparenthelps. A short note covers the pre-7.0.0 behavior.defaultTextMapPropagatoroption.TracesSampleRatewith a Sampling section. WithUseOtlp()the SDK creates no transactions, soTracesSampleRateandTracesSamplerare never read, and the OTLP exporter installs no OpenTelemetry sampler. Sampling is configured on theTracerProvider. This is true for 6.x as well.Closes getsentry/sentry-dotnet#5546
Notes for review
Where the page differs from the issue, it follows the source on sentry-dotnet's
version7branch:PropagateTraceparentdoesn't help the OTLP service itself. OpenTelemetry's default propagator (W3C trace context plus baggage, which the OTel SDK installs) and the .NET runtime already sendtraceparent. OTel's HttpClient instrumentation also overwrites anytraceparentthatSentryHttpMessageHandleradds first. A local run against aversion7build sent identical headers with and without the option. The page recommends it for the Sentry-traced services that call the OTLP service, as/concepts/otlp/sentry-with-otel/already does.sentry-tracedoesn't disappear completely.UseOtlp()stopsSentryHttpMessageHandlerfrom creating spans, but its header propagation still runs (SentryMessageHandler.PropagateTraceHeaders). Sentry adds the handler toIHttpClientFactoryclients when it's set up through DI. Other requests only carrysentry-traceif the app configuresSentryPropagator.SentryPropagatoris still public inSentry.OpenTelemetry.Exporteronversion7, so the snippet doesn't need the deprecatedSentry.OpenTelemetrypackage. It derives fromBaggagePropagator, which is why the composite doesn't list that one separately. The snippet compiles against theversion7build with OpenTelemetry 1.12.0.IS YOUR CHANGE URGENT?
Help us prioritize incoming PRs by letting us know when the change needs to go live.
Select exactly one option. For deadlines, replace
YYYY-MM-DDwith the due date. You can update this information later by editing the PR description.SLA
Thanks in advance for your help!
PRE-MERGE CHECKLIST
Make sure you've checked the following before merging your changes:
🤖 Generated with Claude Code