Skip to content

ADRs for the OpenTelemetry decisions on the otel branch - #7962

Draft
ramonsmits wants to merge 8 commits into
otelfrom
otel-adrs
Draft

ramonsmits wants to merge 8 commits into
otelfrom
otel-adrs

Conversation

@ramonsmits

Copy link
Copy Markdown
Member

Seven architecture decision records (ADRs) extracted from the merged history of the otel branch. They follow docs/decisions/README.md, which is identical on master. One commit per ADR.

ADRs

docs/README.md: the #7825 and #7845 index entries are removed, the ADRs cover them. Entries for #7912 and #7936 are added. The metric tag decisions stay in those pull requests.

Where a record has no rationale, the ADR says so instead of inventing one.

TODO

Records why the MessagePayloadAsTag option and its behaviors were removed
from the otel branch before merge, the conditions a future implementation
has to meet, and the variants raised in review.
Records why handler spans move to NServiceBus.Core.Handler and recoverability
spans get NServiceBus.Core.Recoverability, how source subscription gives the
flat trace of #7284 without a flatten option, and the rejected alternatives.
Records the TraceMode settings per endpoint, per delayed path and per
message, why the decision is stamped by the sender before the routing stage,
the v10 and v11 defaults for publish, and the alternatives rejected in #7867
and #7845.
Records the Logs and SpanAndLogs modes, why OTEL_SEMCONV_EXCEPTION_SIGNAL_OPT_IN
wins over code, the record-once rule through Exception.Data, and the legacy
tags that go away with the v11 behavior.
…arent

Records why NServiceBus writes its own trace parent header next to the W3C
one, the receive-side precedence, why an ambient transport SDK span becomes
the parent under the v11 behavior, and the removed ContextBag path.
Records why PropagateContextToHeaders moved out of the shared routing stage,
which forwarding paths it protected, and the rule that control messages
entering at IRoutingContext propagate explicitly.
Records the seven behaviors behind NServiceBus.Core.OpenTelemetry.UseV11Behavior,
the scope rule that leaves PublishTraceMode out, the obsoletes-vN.cs file
convention, the test attribute, and the per-feature toggles, the UseExisting
trace mode and the JIT-foldable switch that were tried and dropped.
Drop the #7825 and #7845 entries, now recorded in docs/decisions. Add the
#7912 and #7936 entries for the metric tag decisions, which the pull
requests record sufficiently.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants