OpenTelemetryのバックエンドにElastic APMを利用する
はじめに
以下の投稿でOpenTelemetry+Zipkinの組み合わせを試してみました。
今回はOpenTelemetryのバックエンドをElastic APMとした場合の設定方法を確認してみます。
前回のOpenTelemetry+Zipkinでは以下の構成でした。
Open Telemetry Agentに同梱されているZipkin Exporterを使用して、トレースデータをZipkin Serverへ送信しています。
OpenTelemetry+Elastic APMでは以下の構成になります。OpenTelemetry AgentにElastic Exporterがないので、一旦OpenTelemetry Collectorを経由してElastic APMへ送信しています。
今回の構成での設定は以下のElastic公式サイトを参考にしました。
設定は以下の手順になります。
- OpenTelemetry Collectorの構築
- OpenTelemetry Agentの設定
- APMサーバーの構築
このうち、APMサーバーの構築は以前に投稿した以下の環境を利用しています。
OpenTelemetry Collectorの構築
まず、OpenTelemetry Collectorを構築します。
以下のサイトを参考にして実施していきます。
以下からモジュールをダウンロードします。
今回はJavaアプリケーションはローカルのWindowsから実行しているのでotelcol_windows_amd64.exeをダウンロードしました。
次にCollectorの設定ファイル(config.yaml)を作成します。今回は以下のように設定。
exporters:
elastic:
apm_server_url: "http://[APMサーバのIPアドレス]:8200"
secret_token: "ESS_TOKEN"
receivers:
otlp:
protocols:
grpc:
otlp/withendpoint:
protocols:
grpc:
endpoint: 127.0.0.1:55680
processors:
batch:
timeout: 1s
send_batch_size: 1024
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [elastic]
最後に作成した設定ファイルを指定してCollectorを起動します。
>otelcontribcol_windows_amd64.exe --config config.yaml
OpenTelemetry Agentの設定
以下を参考にOpenTelemetry Agentを設定します。
アプリケーションのVM引数には以下のようにCollectorのエンドポイントを設定します。
-javaagent:opentelemetry-javaagent-all.jar -Dota.exporter=otlp -Dotel.otlp.endpoint=127.0.0.1:55680
また、サービス名を表示するためOTEL_RESOURCE_ATTRIBUTE環境変数にサービス名を設定しています。
※ただし、これだとサービス名が表示されませんでした。原因不明。
→OTEL_RESOURCE_ATTRIBUTEではなくOTEL_RESOURCE_ATTRIBUTESが正しいみたい。修正したらサービス名が表示できました。
OTEL_RESOURCE_ATTRIBUTES=service.name=myservice
設定が終わったら、アプリケーションを起動。
Kibanaでトレースを表示
最後にトレースデータをKibanaで表示すると、Agent側がElasticだったときとほぼ同様のトレースが表示されます。
Author And Source
この問題について(OpenTelemetryのバックエンドにElastic APMを利用する), 我々は、より多くの情報をここで見つけました https://qiita.com/mkyz08/items/4d331cd968a0ac4693d3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .