mcpbeat

Observability Edot Java Migrate

elastic/observability-edot-java-migrate

> Migrate a Java application from the classic Elastic APM Java agent to the EDOT Java agent. Use when switching from elastic-apm-agent.jar to elastic-otel-javaagent.jar.

523 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-java-migrate

The instruction itself

3 sections, as written by the author

EDOT Java Migration

Read the migration guide before making changes:

Guidelines

  • Remove ALL classic APM references: elastic-apm-agent.jar, elasticapm.properties, all ELASTIC_APM_* env vars,

and any co.elastic.apm Maven/Gradle dependencies

  • Use elastic-otel-javaagent.jar (download from

Maven Central, not a Maven/Gradle

compile dependency)

  • Attach via -javaagent:/path/to/elastic-otel-javaagent.jar or

JAVA_TOOL_OPTIONS="-javaagent:/path/to/elastic-otel-javaagent.jar" — without this the agent does nothing

  • Set exactly three required environment variables:
  • OTEL_SERVICE_NAME (replaces ELASTIC_APM_SERVICE_NAME)
  • OTEL_EXPORTER_OTLP_ENDPOINT — must be the managed OTLP endpoint or EDOT Collector URL. Do NOT reuse the

old ELASTIC_APM_SERVER_URL 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 / API_KEY)

  • 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 and EDOT agent on the same JVM

Examples

See the EDOT Java migration guide for

complete examples.

How to use it

Copy the folder

Take elastic/observability-edot-java-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.