open-telemetry / open-telemetry/sig-developer-experience
.NET developer experience survey
Open
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 3
- Forks
- 7
- Avg merge
- 10h 46m
- Merged PRs (30d)
- 3
Description
- differences from upstream spec:
- discrepancies - why?
- .NET has lower level APIs for Logging (ILogger), Metrics (Meter), Tracing (Activity/ActivitySource)
- Much of this is covered by https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md
- should review this list again
- .NET doesn't have a good implementation of context/baggage API, having a baggage span processor
- extra convenience
- Typically try to keep to the spec, and not have extra [convenience] functionality specific to .NET, if it's not in the spec it goes in the contrib repo.
- Integration with
HostingAPIs in .NET which are convenience mechanisms for configuring .NET - UseOtlpExporter - simple way to add OTLP for logs/traces/metrics in one API call
- MetricsBuilder (.NET runtime) enables specifying metrics to listen to based on .NET config files
- Have to explicitly configure which spans to listen to telemetry for (eg.
microsoft.aspnet.*)
- Most requested features
- API
- SDK
- Spec says to always create a spanID - which would mean creating Activities in .NET for each sub operation - as that is a high expense. .NET only creates a root so we have a TraceId/SpanId. (.NET is out of spec compliance because of this, but don't see this as a user issue)
- Where to put a Durable ID for LogRecord - so backends can drop spammy log messages
- Better way to decorate metrics with context - what is the equivalent of a span processor for metrics
- Carry-on baggage - adding additional data to a context that is propagated to each span to in the context.
- Ability to define a scope and then all spans/logs within the scope will include its baggage
- No good way to designate a node as ingress and to ignore all context on requests that come into that node
- Instrumentations/semantic conventions
- (sarcastic) when will they be stable?
- Instrumentation libraries can't be marked as stable as the corresponding conventions are not stable
- things to consider from other telemetry projects
- Some of the Java agent lifecycle extensions should be part of the common spec
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the OpenTelemetry spec compliance matrix and review the listed .NET APIs, including ILogger, Meter, Activity/ActivitySource, UseOtlpExporter, and MetricsBuilder. Compare the requested API, SDK, baggage, metrics, ingress, and lifecycle topics with the Java agent extensions. Done means a current survey of .NET gaps, compliance differences, and requested features.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- developer-experience
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100