mcpbeat

Observability Edot Dotnet Instrument

elastic/agent-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.

This is a copy. The original lives at elastic/observability-edot-dotnet-instrument.

467 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
546
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/elastic/agent-skills --skill observability-edot-dotnet-instrument

The instruction itself

3 sections, as written by the author

EDOT .NET Instrumentation

Read the setup guide before making changes:

Guidelines

  • Add NuGet packages: Elastic.OpenTelemetry and OpenTelemetry.Instrumentation.AspNetCore (for ASP.NET Core apps)
  • Register EDOT in startup: call builder.AddElasticOpenTelemetry() on the IHostApplicationBuilder (in Program.cs

or equivalent). Without this, no telemetry is collected

  • Set exactly three required environment variables:
  • OTEL_SERVICE_NAME
  • OTEL_EXPORTER_OTLP_ENDPOINT — must be the managed OTLP endpoint or EDOT Collector URL. Never use an APM

Server URL (no apm-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, or OTEL_LOGS_EXPORTER — the defaults are already

correct

  • Do NOT manually configure TracerProvider or MeterProviderAddElasticOpenTelemetry() 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.

How to use it

Copy the folder

Take elastic/agent-observability-edot-dotnet-instrument from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.