
OpenTelemetry Collector を導入する
Mackerelトレーシング機能はOpenTelemetryの仕組み (計装)を利用してデータを送信します。
このページでは OpenTelemetry Collectorを使用してデータを送信する方法を解説します。
OpenTelemetry Collectorとは
OpenTelemetry Collector は特定ベンダーに依存しない、OpenTelemetry 用エージェントです。
Dockerを使用してサイドカーにすることも、APKやDEBを通してインストールすることもできます。
このページではOpenTelemetry Collectorのインストール方法について説明します。
細かい実装については公式のドキュメントを参照してください。
Collectorを使用するべきか
Collector を使わずに、SDK から直接データを送信することもできます。
どちらにするかどうかを決める際は以下のページを参考にしてください。
導入方法
OpenTelemetry Collectorを使用するためにはインストールと設定が必要です。
インストール
OpenTelemetry Collectorは
Docker
Kubernetes
Linux パッケージ
などで配布されています。
例えば、apkを使用する場合以下のコマンドでインストールできます。
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/${VERSION}/otelcol_${VERSION}_linux_amd64.deb
sudo dpkg -i otelcol_${VERSION}_linux_amd64.deb
各プラットフォームに対応したコマンドは以下にまとめられています
設定
OpenTelemetry Collector はファイルと環境変数で設定することができます。
例えば、systemd を使用している場合は /etc/otelcol/config.yaml
を以下のように設定すると、Mackerelに送信することができます。
receivers:
otlp:
protocols:
grpc:
http:
processors:
memory_limiter:
check_interval: 1s
limit_mib: 500
spike_limit_mib: 100
batch:
# Mackerel では 6MB 以上のリクエストを受け付けません。
# そのため、リクエストあたりの最大スパン数を適当に設定します。
# スパンはトレースにおける作業または操作の単位です。
# データベースへのクエリ実行やアプリケーションの処理の 1 部分などをスパンとして表現できます。
# https://opentelemetry.io/docs/concepts/signals/traces/#spans
# Mackerel には 1 オーガニゼーションあたり月間 500 万スパンまで送信できます
send_batch_size: 5000
send_batch_max_size: 5000
exporters:
otlphttp/mackerel:
endpoint: "https://otlp-vaxila.mackerelio.com"
headers:
Accept: "*/*"
"Mackerel-Api-Key": ${env:MACKEREL_APIKEY}
extensions:
health_check:
service:
extensions: [health_check]
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/mackerel]
この例では、次の項目を設定しています。
exporters
exportersに
otlphttp
を使用します。endpointをMackerelのエンドポイント (
https://otlp-vaxila.mackerelio.com
) にします。headersには
Mackerel-Api-Key
とAccept
を設定します。Mackerel-Api-Key: Mackerel で発行した API キーを設定します。 *1
Accept: 常に
*/*
を設定します。 (Mackerelが内部でAWS Lambdaを使用しているために必要な設定です。)
service
pipelines の traces に作成したexporterを設定します。
これらを設定することで、CollectorからMackerelへデータを送信するようになります。
*1 :テレメトリデータを送信するための API キーは Mackerel のダッシュボードの API キータブで確認できます。 "Write" 権限が付与されている API キーを環境変数 MACKEREL_APIKEY
にセットしてください。

最終更新