Repository navigation
Conversation
Traces, metrics and logs leave over OTLP when OTEL_EXPORTER_OTLP_ENDPOINT is set. A TelemetryBehaviour gives every use case a span and two metrics, a command interceptor gives every SQL command a span, and Serilog sends its logs with the trace they belong to. The MCP SDK's own spans and metrics are switched on, so a tool call reads as one trace. Docker Compose swaps Seq for an OpenTelemetry Collector that forwards to the Aspire dashboard.
Contributor
Build Pipeline✅ Ready to merge. Every stage passed.
Commit |
Keeps the telemetry and serilog skills identical across the five templates.
The test server can return the response a moment before the ASP.NET Core request span stops, which failed the trace test in the template verification run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Traces, metrics and logs now leave the server over OTLP, and only OTLP, whenever
OTEL_EXPORTER_OTLP_ENDPOINTis set. The MCP SDK's ownExperimental.ModelContextProtocolspans and metrics are switched on, so a tool call reads as one trace from the HTTP request through the tool, the use case and every SQL command. Every use case gets a span and two metrics from the sharedTelemetryBehaviour, every SQL command gets a span from a small EF Core interceptor (the official EF Core instrumentation is still prerelease), and Serilog sends its logs with the trace they belong to. Docker Compose swaps Seq for an OpenTelemetry Collector that forwards to the Aspire dashboard container, and Aspire appears nowhere else. Version info was already behind auth here, so the server info now just carries the real version.TelemetryBehaviour,DatabaseCommandInterceptor, EF Core's built-in meter).service.versionon everything. EF Core command logs drop to Warning, since each command has a span now.otel-collector.yaml(OTLP receiver, memory limiter, batch, one exporter to swap for a real backend) ships in the template package.telemetryskill, with a watch list for EF Core instrumentation, profiles and the events API.serilog,mediator,docker-and-compose,health-checks,optional-token-auth,configuration-and-environmentsandmcp-inspectorupdated.Type of change
Shared layers
Checklist
dotnet buildanddotnet testpass locally with no warnings..agents/skills.