エージェントデプロイメントパターン
コレクターにシグナルを送信し、そこからバックエンドにエクスポートする
エージェントデプロイメントパターンでは、テレメトリーシグナルは次の場所から送信できます。
- OpenTelemetry Protocol (OTLP)を使用してOpenTelemetry SDKで計装されたアプリケーション
- OTLPエクスポーターを使用するコレクター
シグナルは、サイドカーやDaemonSetなど、アプリケーションと並行してまたは同じホストで実行されるコレクターインスタンスに送信されます。
各クライアントサイドのSDKまたはダウンストリームのコレクターは、コレクターインスタンスのアドレスで構成されます。
- アプリケーションでは、SDKがOTLPデータをコレクターに送信するように構成されています。
- コレクターは、1つ以上のバックエンドにテレメトリーデータを送信するように構成されています。
例
エージェントデプロイメントパターンのこの例では、OpenTelemetry Java SDKを使用してメトリクスをエクスポートするようにJavaアプリケーションを手動で計装することから始めます。
デフォルトのOTEL_METRICS_EXPORTERの値であるotlpを含みます。
次に、OTLPエクスポーターをコレクターのアドレスで構成します。
例は次のとおりです。
export OTEL_EXPORTER_OTLP_ENDPOINT=http://collector.example.com:4318
次に、collector.example.com:4318で実行されているコレクターを次のように構成します。
receivers:
otlp: # アプリケーションがトレースを送信するOTLPレシーバー
protocols:
http:
endpoint: 0.0.0.0:4318
exporters:
otlp/jaeger: # JaegerはOTLPを直接サポート
endpoint: https://jaeger.example.com:4317
sending_queue:
batch:
service:
pipelines:
traces/dev:
receivers: [otlp]
exporters: [otlp/jaeger]
receivers:
otlp: # アプリケーションがトレースを送信するOTLPレシーバー
protocols:
http:
endpoint: 0.0.0.0:4318
exporters:
prometheusremotewrite: # PRWエクスポーター、メトリクスをバックエンドに取り込む
endpoint: https://prw.example.com/v1/api/remote_write
sending_queue:
batch:
service:
pipelines:
metrics/prod:
receivers: [otlp]
exporters: [prometheusremotewrite]
receivers:
otlp: # アプリケーションがトレースを送信するOTLPレシーバー
protocols:
http:
endpoint: 0.0.0.0:4318
exporters:
file: # ファイルエクスポーター、ログをローカルファイルに取り込む
path: ./app42_example.log
rotation:
service:
pipelines:
logs/dev:
receivers: [otlp]
exporters: [file]
このパターンをエンドツーエンドで調査するには、JavaまたはPythonの例を参照してください。
トレードオフ
エージェントコレクターを使用する主な長所と短所は次のとおりです。
長所:
- 始めるのが簡単
- アプリケーションとコレクターの間に、明確な1対1のマッピング
短所:
- チームとインフラストラクチャリソースのスケーラビリティが制限される
- 複雑または進化するデプロイメントには柔軟に対応できない
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!