-
-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.NET SDK powered by OTel #3159
Comments
A couple of thoughts:
Overall, this seems like a really really big piece of work. We might need to break it down into bite sized chunks. Possibly merging Spans and Transactions would be a good first step? |
This remains to be discussed. Ideally, users would not need to know or care where spans come from.
There is quite a big gap in what versions are supported by Sentry vs OTel. I'd go on a case-by-case basis to go with the one offering more/better/more detailed support. |
Transaction vs Span+ AddBreadcrumb(Breadcrumb breadcrumb) : void
+ Breadcrumbs : IReadOnlyCollection<Breadcrumb>
+ Contexts : SentryContexts
Description : string?
+ Distribution : string?
EndTimestamp : DateTimeOffset?
+ Environment : string?
+ EventId : SentryId
Extra : IReadOnlyDictionary<string,object?>
+ Fingerprint : IReadOnlyList<string>
GetTraceHeader() : SentryTraceHeader
IsFinished : bool
+ IsParentSampled : bool?
IsSampled : bool?
+ Level : SentryLevel?
Measurements : IReadOnlyDictionary<string,Measurement>
+ Name : string
+ NameSource : TransactionNameSource
Operation : string
ParentSpanId : SpanId?
+ Platform : string?
+ Release : string?
+ Request : SentryRequest
+ SampleRate : double?
+ Sdk : SdkVersion
SetExtra(string key, object? value) : void
SetMeasurement(string name, Measurement measurement) : void
SetTag(string key, string value) : void
SpanId : SpanId
+ Spans : IReadOnlyCollection<SentrySpan>
StartTimestamp : DateTimeOffset
Status : SpanStatus?
Tags : IReadOnlyDictionary<string,string>
TraceId : SentryId
UnsetTag(string key) : void
+ User : SentryUser
WriteTo(Utf8JsonWriter writer, IDiagnosticLogger? logger) : void
- SentrySpan(ISpan tracer)
- SentrySpan(SpanId? parentSpanId, string operation)
+ SentryTransaction(ITransactionTracer tracer)
+ SentryTransaction(string name, string operation, TransactionNameSource nameSource)
+ SentryTransaction(string name, string operation)
-FromJson(JsonElement json) : SentrySpan
+FromJson(JsonElement json) : SentryTransaction Additionally |
Description:
See parent ticket for more project background.
We would like to investigate using OpenTelemetry's .NET SDK to replace Sentry performance package in our own SDK. This would allow our users to benefit from all of the instrumentation of the open standard's SDK, while allowing us to tailor the experience.
Requirement:
The OTel SDK should run the show in terms of instrumentations and collecting telemetry, our SDK should only do some fine tuning to ensure data is flagged for ingestion properly (OTel attributed as tags for example)
Open Point:
Information:
Updated requirements
See Discord chat for context.
Sentry Transactions with OTEL Child Spans
Currently leads to unexpected outcomes.
The Sentry transaction gets ignored. If we turn on Debug mode we see the following warning:
And as a result the two Activities show up as separate transactions:
We could run into this if people wanted to use OTel to take advantage of automatic tracing for some tech (e.g. Redis) but otherwise they had been instrumenting their app for performance using Sentry... so we probably need to fix this.
Scopes
The text was updated successfully, but these errors were encountered: