From elastic-agent-skills
Migrate .NET apps from classic Elastic APM agent to EDOT SDK with OpenTelemetry. Removes Elastic.Apm packages/config, adds Elastic.OpenTelemetry, updates startup and OTLP env vars.
npx claudepluginhub elastic/agent-skills --plugin elastic-cloudThis skill uses the workspace's default tool permissions.
Read the migration guide before making changes:
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
Read the migration guide before making changes:
Elastic.Apm.* NuGet packages (including Elastic.Apm.NetCoreAll),
UseAllElasticApm() / AddAllElasticApm() calls, the ElasticApm section from appsettings.json, and all
ELASTIC_APM_* env varsElastic.OpenTelemetry and OpenTelemetry.Instrumentation.AspNetCore (for ASP.NET Core apps)builder.AddElasticOpenTelemetry() on the IHostApplicationBuilder (in Program.cs
or equivalent). Without this, no telemetry is collectedOTEL_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)OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, or OTEL_LOGS_EXPORTER — the defaults are already
correctElastic.Apm.*) and EDOT on the same applicationSee the EDOT .NET migration guide for complete examples.