observability-edot-dotnet-instrument
Instrument a .NET application with the Elastic Distribution of OpenTelemetry (EDOT) .NET SDK for automatic tracing, metrics, and logs. Use when adding observability to a .NET service that has no existing APM agent.
- 2,708
- installs
- 0 up / 0 down, score 0.00
- votes
- 599
- repo stars
- Updated
- less than a month ago
- In the catalog since
- 1 Oct 2026
- From
- elastic/agent-skills
Skill instructions
Rendered from the published SKILL.md, 28 lines.
EDOT .NET Instrumentation
Read the setup guide before making changes:
Guidelines
- Add NuGet packages:
Elastic.OpenTelemetryandOpenTelemetry.Instrumentation.AspNetCore(for ASP.NET Core apps) - Register EDOT in startup: call
builder.AddElasticOpenTelemetry()on theIHostApplicationBuilder(inProgram.csor equivalent). Without this, no telemetry is collected - Set exactly three required environment variables:
OTEL_SERVICE_NAMEOTEL_EXPORTER_OTLP_ENDPOINT— must be the managed OTLP endpoint or EDOT Collector URL. Never use an APM Server URL (noapm-server, no:8200, no/intake/v2/events)OTEL_EXPORTER_OTLP_HEADERS—"Authorization=ApiKey <key>"or"Authorization=Bearer <token>"
- Do NOT set
OTEL_TRACES_EXPORTER,OTEL_METRICS_EXPORTER, orOTEL_LOGS_EXPORTER— the defaults are already correct - Do NOT manually configure
TracerProviderorMeterProvider—AddElasticOpenTelemetry()handles everything - Never run both classic Elastic APM agent (
Elastic.Apm.*) and EDOT on the same application
Examples
See the EDOT .NET setup guide for complete examples.