Elastic Stack では、アプリケーションをインストルメントするための言語別 SDK が 2 種類提供されています。
-
Elastic Official APM agents – これらは Elastic Stack での利用に特化して作られています。現時点では、これらの SDK から直接移行する方法はありません。これらを使用しているアプリケーションは、対応する ClickStack SDKs を使用して再度インストルメントする必要があります。
-
Elastic Distributions of OpenTelemetry (EDOT SDKs) – これらは標準的な OpenTelemetry SDK の Elastic によるディストリビューションで、.NET、Java、Node.js、PHP、Python 向けに提供されています。アプリケーションですでに EDOT SDK を使用している場合は、コードを再度インストルメントする必要はありません。代わりに、SDK を再設定して、テレメトリーデータを ClickStack に含まれる OTLP Collector にエクスポートするだけで済みます。詳細は、"Migrating EDOT SDKs" を参照してください。
EDOT SDKs の移行
ClickStack の OpenTelemetry ベースの SDK と同様に、Elastic Distributions of the OpenTelemetry SDKs (EDOT SDKs) も、公式の OpenTelemetry SDK をカスタマイズしたバージョンです。たとえば、EDOT Python SDK は、Elastic Observability とシームレスに連携できるよう設計された、OpenTelemetry Python SDK のベンダーカスタマイズ版ディストリビューションです。
これらの SDK は標準の OpenTelemetry ライブラリをベースとしているため、ClickStack への移行は容易で、再インストルメンテーションは不要です。必要なのは、テレメトリーデータの送信先が ClickStack OpenTelemetry Collector になるように設定を調整することだけです。
設定は、標準的な OpenTelemetry の仕組みに従います。Python では、通常は環境変数を使ってこれを行います。詳細は、OpenTelemetry Zero-Code Instrumentation docs を参照してください。
一般的な EDOT SDK の設定は、次のようになります。
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"ClickStack に移行するには、endpoint がローカルの OTLP collector を指すように更新し、authorization header を変更します。
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>"インジェスト API key は HyperDX アプリケーションで生成され、Team Settings → API Keys から確認できます。
