Elastic Stack proporciona dos tipos de SDK para distintos lenguajes que permiten instrumentar aplicaciones:
-
Elastic Official APM agents – Están diseñados específicamente para usarse con Elastic Stack. Actualmente no existe una vía de migración directa para estos SDK. Las aplicaciones que los usan deberán volver a instrumentarse con los SDK de ClickStack correspondientes.
-
Elastic Distributions of OpenTelemetry (EDOT SDKs) – Son las distribuciones de Elastic de los SDK estándar de OpenTelemetry, disponibles para .NET, Java, Node.js, PHP y Python. Si tu aplicación ya usa un SDK de EDOT, no necesitas volver a instrumentar el código. En su lugar, puedes reconfigurar el SDK para exportar datos de telemetría al colector OTLP incluido en ClickStack. Consulta "Migrating EDOT SDKs" para obtener más información.
Migración de EDOT SDKs
Al igual que los SDKs de ClickStack basados en OpenTelemetry, Elastic Distributions of the OpenTelemetry SDKs (EDOT SDKs) son versiones personalizadas de los SDKs oficiales de OpenTelemetry. Por ejemplo, el EDOT Python SDK es una distribución del OpenTelemetry Python SDK personalizada por el proveedor y diseñada para integrarse sin problemas con Elastic Observability.
Como estos SDKs se basan en bibliotecas estándar de OpenTelemetry, la migración a ClickStack es sencilla: no es necesario volver a instrumentar. Solo tiene que ajustar la configuración para enviar los datos de telemetría al ClickStack OpenTelemetry Collector.
La configuración sigue los mecanismos estándar de OpenTelemetry. En Python, esto suele hacerse mediante variables de entorno, como se describe en la documentación de instrumentación sin código de OpenTelemetry.
Una configuración típica de un EDOT SDK podría verse así:
export OTEL_RESOURCE_ATTRIBUTES=service.name=<app-name>
export OTEL_EXPORTER_OTLP_ENDPOINT=https://my-deployment.ingest.us-west1.gcp.cloud.es.io
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey P....l"Para migrar a ClickStack, actualice el endpoint para que apunte al colector OTLP local y cambie el encabezado de autorización:
export OTEL_RESOURCE_ATTRIBUTES=service.name=<app-name>
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
export OTEL_EXPORTER_OTLP_HEADERS="authorization=<YOUR_INGESTION_API_KEY>"La API key de ingesta se genera en la aplicación HyperDX y puede encontrarse en Team Settings → API Keys.
