mcpbeat

Observability Edot Dotnet Migrate

elastic/agent-observability-edot-dotnet-migrate

> Migrate a .NET application from the classic Elastic APM .NET agent to the EDOT .NET SDK. Use when switching from Elastic.Apm.* packages to Elastic.OpenTelemetry.

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

532 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-migrate

The instruction itself

3 sections, as written by the author

EDOT .NET Migration

Read the migration guide before making changes:

Guidelines

  • Remove ALL classic APM references: Elastic.Apm.* NuGet packages (including Elastic.Apm.NetCoreAll),

UseAllElasticApm() / AddAllElasticApm() calls, the ElasticApm section from appsettings.json, and all

ELASTIC_APM_* env vars

  • 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 (replaces ELASTIC_APM_SERVICE_NAME / ElasticApm:ServiceName)
  • OTEL_EXPORTER_OTLP_ENDPOINT — must be the managed OTLP endpoint or EDOT Collector URL. Do NOT reuse the

old ELASTIC_APM_SERVER_URLS value. 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>" (replaces

ELASTIC_APM_SECRET_TOKEN)

  • Do NOT set OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, or OTEL_LOGS_EXPORTER — the defaults are already

correct

  • Never run both classic Elastic APM agent (Elastic.Apm.*) and EDOT on the same application

Examples

See the EDOT .NET migration guide for

complete examples.

How to use it

Copy the folder

Take elastic/agent-observability-edot-dotnet-migrate 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.