observability-edot-java-migrate
>
Works with
---
name: observability-edot-java-migrate
description: >
license: Apache-2.0
---
# EDOT Java Migration
Read the migration guide before making changes:
- [Migration guide](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java/migration)
- [EDOT Java setup](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java/setup)
- [EDOT Java configuration](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java/configuration)
## Guidelines
1. Remove ALL classic APM references: `elastic-apm-agent.jar`, `elasticapm.properties`, all `ELASTIC_APM_*` env vars,
and any `co.elastic.apm` Maven/Gradle dependencies
1. Use `elastic-otel-javaagent.jar` (download from
[Maven Central](https://mvnrepository.com/artifact/co.elastic.otel/elastic-otel-javaagent/latest), not a Maven/Gradle
compile dependency)
1. 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
1. 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`)
1. Do NOT set `OTEL_TRACES_EXPORTER`, `OTEL_METRICS_EXPORTER`, or `OTEL_LOGS_EXPORTER` — the defaults are already
correct
1. Never run both classic Elastic APM agent and EDOT agent on the same JVM
## Examples
See the [EDOT Java migration guide](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java/migration) for
complete examples.More Observability skills
google-agents-cli-observability
google/agents-cli
>
azure-observability
microsoft/azure-skills
Azure Observability Services including Azure Monitor, Application Insights, Log Analytics, Alerts, and Workbooks. Provides metrics, APM, distributed tracing, KQL queries, and interactive reports. USE FOR: Azure Monitor, Application Insights, Log Analytics, Alerts, Workbooks, metrics, APM, distributed tracing, KQL queries, interactive reports, observability, monitoring dashboards. DO NOT USE FOR: instrumenting apps with App Insights SDK (use appinsights-instrumentation), querying Kusto/ADX clusters (use azure-kusto), cost analysis (use azure-cost-optimization).
workers-best-practices
cloudflare/skills
Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.

