Skip to main content
Skip to main content

Migrating SDKs from Elastic

The Elastic Stack provides two types of language SDKs for instrumenting applications:

  1. Elastic Official APM agents – These are built specifically for use with the Elastic Stack. There is currently no direct migration path for these SDKs. Applications using them will need to be re-instrumented using the corresponding ClickStack SDKs.

  2. Elastic Distributions of OpenTelemetry (EDOT SDKs) – These are Elastic's distributions of the standard OpenTelemetry SDKs, available for .NET, Java, Node.js, PHP, and Python. If your application is already using an EDOT SDK, you do not need to re-instrument your code. Instead, you can simply reconfigure the SDK to export telemetry data to the OTLP Collector included in ClickStack. See "Migrating EDOT SDKs" for further details.

Use ClickStack SDKs where possible

While standard OpenTelemetry SDKs are supported, we strongly recommend using the ClickStack-distributed SDKs for each language. These distributions include additional instrumentation, enhanced defaults, and custom extensions designed to work seamlessly with the ClickStack pipeline and HyperDX UI. By using the ClickStack SDKs, you can unlock advanced features such as exception stack traces that are not available with vanilla OpenTelemetry or EDOT SDKs.

Migrating EDOT SDKs

Similar to the ClickStack OpenTelemetry-based SDKs, the Elastic Distributions of the OpenTelemetry SDKs (EDOT SDKs) are customized versions of the official OpenTelemetry SDKs. For example, the EDOT Python SDK is a vendor-customized distribution of the OpenTelemetry Python SDK designed to work seamlessly with Elastic Observability.

Because these SDKs are based on standard OpenTelemetry libraries, migration to ClickStack is straightforward - no re-instrumentation is required. You only need to adjust the configuration to direct telemetry data to the ClickStack OpenTelemetry Collector.

Configuration follows the standard OpenTelemetry mechanisms. For Python, this is typically done via environment variables, as described in the OpenTelemetry Zero-Code Instrumentation docs.

A typical EDOT SDK configuration might look like this:

To migrate to ClickStack, update the endpoint to point to the local OTLP Collector and change the authorization header:

Your ingestion API key is generated by the HyperDX application and can be found under Team Settings → API Keys.