LoginSignup
3
2

More than 3 years have passed since last update.

OpenTelemetryのバックエンドにElastic APMを利用する

Last updated at Posted at 2020-07-25

はじめに

以下の投稿でOpenTelemetry+Zipkinの組み合わせを試してみました。

今回はOpenTelemetryのバックエンドをElastic APMとした場合の設定方法を確認してみます。

前回のOpenTelemetry+Zipkinでは以下の構成でした。
Open Telemetry Agentに同梱されているZipkin Exporterを使用して、トレースデータをZipkin Serverへ送信しています。

image.png

OpenTelemetry+Elastic APMでは以下の構成になります。OpenTelemetry AgentにElastic Exporterがないので、一旦OpenTelemetry Collectorを経由してElastic APMへ送信しています。

image.png

今回の構成での設定は以下のElastic公式サイトを参考にしました。

設定は以下の手順になります。

  1. OpenTelemetry Collectorの構築
  2. OpenTelemetry Agentの設定
  3. APMサーバーの構築

このうち、APMサーバーの構築は以前に投稿した以下の環境を利用しています。

OpenTelemetry Collectorの構築

まず、OpenTelemetry Collectorを構築します。
以下のサイトを参考にして実施していきます。

以下からモジュールをダウンロードします。
今回はJavaアプリケーションはローカルのWindowsから実行しているのでotelcol_windows_amd64.exeをダウンロードしました。

次にCollectorの設定ファイル(config.yaml)を作成します。今回は以下のように設定。

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だったときとほぼ同様のトレースが表示されます。

image.png

image.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2