mcpField
O
observability-edot-dotnet-migrate

observability-edot-dotnet-migrate

github.com/elasticCloud & DevOps6022.7k installsUpdated today
Repository

About observability-edot-dotnet-migrate

A migration skill for moving .NET applications from classic Elastic APM to Elastic Distribution of OpenTelemetry (EDOT). It identifies legacy configuration to remove and guides package setup, startup registration, and OTLP configuration.

Key features

  1. 01Remove classic APM packages and settings
  2. 02Add EDOT NuGet packages
  3. 03Register EDOT during startup
  4. 04Set required OTLP environment variables
  5. 05Avoid running classic APM and EDOT together

Use cases

  1. 01Migrate a .NET application from classic Elastic APM
  2. 02Replace legacy APM configuration with EDOT settings

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/elastic/agent-skills --skill observability-edot-dotnet-migrate

After installing, type/observability-edot-dotnet-migratein Claude Code to confirm it loaded.

Details

From the project README

EDOT .NET Migration

Read the migration guide before making changes:

Guidelines

  1. 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
  2. Add NuGet packages: Elastic.OpenTelemetry and OpenTelemetry.Instrumentation.AspNetCore (for ASP.NET Core apps)
  3. Register EDOT in startup: call builder.AddElasticOpenTelemetry() on the IHostApplicationBuilder (in Program.cs or equivalent). Without this, no telemetry is collected
  4. 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)
  5. Do NOT set OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, or OTEL_LOGS_EXPORTER — the defaults are already correct
  6. 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.

Comments

Markdown supported