共通設定¶
このページでは、アプリケーションと DataKit を同じホストに配置する例で、Beacon の受信側設定を説明します。別ホストやコンテナに配置する場合は、127.0.0.1 をアプリケーションから到達できる DataKit のアドレスに置き換え、DataKit のリッスンアドレスを調整してください。
DataKit コレクターの有効化¶
まず DataKit をインストールし、対象のワークスペースに接続されていることを確認します。標準のインストール先では、OpenTelemetry のサンプル設定を次のようにコピーします。
sudo cp /usr/local/datakit/conf.d/samples/opentelemetry.conf.sample \
/usr/local/datakit/conf.d/opentelemetry.conf
ファイルを編集し、次の受信設定を保持してください。同じ設定がすでにある場合は既存の設定を変更し、コレクターを重複して追加しないでください。
[[inputs.opentelemetry]]
[inputs.opentelemetry.http]
http_status_ok = 200
trace_api = "/otel/v1/traces"
metric_api = "/otel/v1/metrics"
logs_api = "/otel/v1/logs"
[inputs.opentelemetry.grpc]
addr = "127.0.0.1:4317"
設定後に DataKit を再起動します。HTTP は DataKit HTTP サービスのポートを使用し、既定値は 9529 です。別ホストから接続する場合は、HTTP サービスのリッスンアドレスと gRPC の addr も調整し、ネットワークポリシーでアクセス範囲を制限してください。Kubernetes の設定と全パラメーターは OpenTelemetry コレクターを参照してください。
サービス識別と OTLP パラメーター¶
| 環境変数 | 説明 | 例 |
|---|---|---|
OTEL_SERVICE_NAME |
安定した論理サービス名 | order-service |
OTEL_RESOURCE_ATTRIBUTES |
カンマ区切りのリソース属性 | env=prod,version=1.0.0 |
OTEL_EXPORTER_OTLP_ENDPOINT |
共通の OTLP ベースアドレス | http://127.0.0.1:4317 |
OTEL_EXPORTER_OTLP_PROTOCOL |
転送プロトコル | grpc または http/protobuf |
OTEL_EXPORTER_OTLP_HEADERS |
カンマ区切りのリクエストヘッダー。受信側の設定と一致させます。 | x-tenant=tenant-a |
DataKit に送信する場合は、まず env と version で環境とバージョンを識別することを推奨します。ほかのカスタムリソース属性をタグとして保持するには、OpenTelemetry コレクターの customer_tags 許可リストに追加してください。属性名の . は _ に変換されます。
共通の HTTP アドレスには、シグナルに応じて /v1/traces、/v1/metrics、/v1/logs が追加されます。DataKit の HTTP アドレスでは /otel プレフィックスを保持してください。DataKit の OTLP/HTTP は Protobuf のみをサポートするため、http/protobuf を使用します。
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT など、シグナル専用の変数は共通アドレスより優先されます。シグナル専用変数の HTTP アドレスには、http://127.0.0.1:9529/otel/v1/traces のような完全なパスを指定してください。gRPC アドレスには HTTP パスを追加しないでください。
これらの設定は、実際のアプリケーションプロセスに渡してください。systemd、コンテナ、PHP-FPM は現在の端末の環境を引き継ぐとは限りません。設定後はアプリケーションを再起動します。認証情報はデプロイ基盤の Secret から注入し、リポジトリに保存しないでください。
Profile と Security¶
- Profile:先に DataKit Profile コレクターを有効にします。アップロード先は
http://127.0.0.1:9529/profiling/v1/inputです。Java は JFR、Python と Node.js は pprof を使用します。詳細は各言語の接続ガイドを参照してください。 - Security:既定では無効です。対応する言語では既存のエージェントを使用し、OTLP Logs で送信します。Security に従ってランタイムの対象範囲とエクスポート設定を行い、「ログ」でレコードを確認してください。
接続の確認¶
-
アプリケーションの実行環境で次のコマンドを実行し、DataKit HTTP サービスに到達できることを確認します。この確認では、ポート
4317やコレクターの有効化状態は検証しません。 -
対応する言語のガイドに従ってアプリケーションを起動し、エージェントが読み込まれ、OTLP エクスポートエラーがないことを確認します。
- 対応する Web フレームワーク、HTTP クライアント、データベースを経由するアプリケーションの API にアクセスして、実際のリクエストを発生させます。
- Guance の「APM > トレース」で直近の時間範囲を選び、
serviceでサービス名を絞り込みます。メトリクスが表示されるまで、少なくとも 1 回のエクスポート間隔を待ってください。 - Profile を有効にした場合は、収集周期を超えてアプリケーションを実行し、「APM > Profiling」でサービス名を指定して確認します。Security を有効にした場合は、「ログ」で対象サービスのレコードを確認します。
データが見つからない場合は、トラブルシューティングを参照してください。