Skip to content

docs(dotnet): Update OTLP propagation docs for SDK 7.0.0 - #19924

Open
jamescrosswell wants to merge 4 commits into
masterfrom
dotnet-v7-otlp-propagator
Open

jamescrosswell wants to merge 4 commits into
masterfrom
dotnet-v7-otlp-propagator

Conversation

@jamescrosswell

@jamescrosswell jamescrosswell commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

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, AddSentryOtlpExporter no longer installs SentryPropagator, and the defaultTextMapPropagator parameter is gone from it and from UseOtlp (getsentry/sentry-dotnet#5319).

  • Replaces the SentryPropagator bullet and the "Planned Removal" alert with a Trace Propagation section. It covers what gets propagated by default, how to add SentryPropagator for services that rely on sentry-trace, and when PropagateTraceparent helps. A short note covers the pre-7.0.0 behavior.
  • Removes the defaultTextMapPropagator option.
  • Raises the OpenTelemetry floor in Supported Versions to 1.12.0.
  • Replaces the note saying not to set TracesSampleRate with a Sampling section. With UseOtlp() the SDK creates no transactions, so TracesSampleRate and TracesSampler are never read, and the OTLP exporter installs no OpenTelemetry sampler. Sampling is configured on the TracerProvider. 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 version7 branch:

  • PropagateTraceparent doesn'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 send traceparent. OTel's HttpClient instrumentation also overwrites any traceparent that SentryHttpMessageHandler adds first. A local run against a version7 build 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-trace doesn't disappear completely. UseOtlp() stops SentryHttpMessageHandler from creating spans, but its header propagation still runs (SentryMessageHandler.PropagateTraceHeaders). Sentry adds the handler to IHttpClientFactory clients when it's set up through DI. Other requests only carry sentry-trace if the app configures SentryPropagator.
  • The 1.12.0 floor already shipped in 6.11.1 (remove weird usages of non breaking space <0xa0> #5560 was backported in chore(deps): raise the OpenTelemetry floor to 1.12.0 sentry-dotnet#5588), so that line is correct today and has no "before 7.0.0" note.
  • SentryPropagator is still public in Sentry.OpenTelemetry.Exporter on version7, so the snippet doesn't need the deprecated Sentry.OpenTelemetry package. It derives from BaggagePropagator, which is why the composite doesn't list that one separately. The snippet compiles against the version7 build 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-DD with the due date. You can update this information later by editing the PR description.

  • Urgent deadline (GA date, etc.): 2026-11-30
  • Other deadline: YYYY-MM-DD
  • No deadline: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've supplied a deadline.

Thanks in advance for your help!

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

🤖 Generated with Claude Code

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>
@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sentry-docs Ready Ready Preview Oct 13, 2026 3:22am UTC
1 Skipped Deployment
Project Deployment Actions Updated
develop-docs Ignored Ignored Preview Oct 13, 2026 3:22am UTC

Request Review

@codeowner-assignment
codeowner-assignment Bot requested a review from a team October 13, 2026 00:31
@github-actions github-actions Bot added the Priority: Urgent Docs review is needed immediately for an urgent deadline label Oct 13, 2026
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>
Comment thread docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx Outdated
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jamescrosswell
jamescrosswell marked this pull request as ready for review October 13, 2026 03:14
@codeowner-assignment
codeowner-assignment Bot requested a review from a team October 13, 2026 03:14
@cursor

cursor Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

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: sentry-docs.

Mention @change-monitor in a comment to update the plan.

Plan

What changed

The 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.

Risk

New 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 effect

This 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 watch

Watch client failures on this page first. Then watch docs-wide error volume and pageload duration on the shared renderer.

Signal Baseline Window Source Rule
Error events with url:*opentelemetry-otlp* 0-1 events/hour. Measured 0 events/hour in this window. The prior 7 days held 20 events, all titled Event captured as promise rejection. 2026-10-12T03:00:00Z to 2026-10-13T03:00:00Z Sentry org sentry, project docs. Query url:*opentelemetry-otlp* Hold in 0-1 events/hour. A new error title or a rise above 1 event/hour is a regression.
Error events in project docs 0-22 events/hour. Complete-hour min 0 at 2026-10-12T04:00:00Z. Max 22 at 2026-10-12T13:00:00Z. 2026-10-12T03:00:00Z to 2026-10-13T03:00:00Z Sentry org sentry, project docs. Query project:docs Hold in 0-22 events/hour. A rise above 22 events/hour is a regression.
p95 span.duration for span.op:pageload 6.7-23.7s. Complete-hour min 6.7s at 2026-10-12T08:00:00Z. Max 23.7s at 2026-10-13T01:00:00Z. 24h aggregate p95 was 11.2s on 10253 sampled pageloads, mostly transaction /:path*?. 2026-10-12T03:00:00Z to 2026-10-13T03:00:00Z Sentry org sentry, project docs. Query span.op:pageload Hold in 6.7-23.7s. A rise above 23.7s is a regression. If this p95 rises, inspect error events on url:*opentelemetry-otlp* next.

Not observable

Page-level pageload duration is not separable. Almost all pages share transaction /:path*?. An http.url filter for this path returned zero pageload spans. Whether the published HTML contains the 7.0.0 snippet is not in Sentry. Reader SDK misconfiguration is not visible on the docs site.

@ric-oliv

Copy link
Copy Markdown
Member

PR looks good! We should probably keep it as a Draft until the v7.0.0 to avoid any premature merge risk.

@jamescrosswell
jamescrosswell marked this pull request as draft October 13, 2026 21:51
@jamescrosswell
jamescrosswell marked this pull request as ready for review October 13, 2026 22:54
@jamescrosswell

Copy link
Copy Markdown
Collaborator Author

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.

ric-oliv added a commit that referenced this pull request Oct 29, 2026
<!-- 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>

This branch was successfully deployed

1 active deployment
Preview – sentry-docs — 067b6d5d Deployed Oct 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: Urgent Docs review is needed immediately for an urgent deadline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document changes to OTel propagator for v7.0.0

3 participants