の主な目標 オープンテレメトリ (OTEL)は、顧客がテレメトリバックエンドを切り替えることができるように、ベンダーに依存しないアプリケーションインストルメンテーションの方法を提供することです。 OpenTelemetryには、OpenTelemetry SDK、OpenTelemetry API、OpenTelemetryCollectorのXNUMXつの主要コンポーネントがあります。
このブログでは、OTELコレクターを使用するためのアーキテクチャー、デプロイメント、およびベスト・プラクティスについて説明します。
OpenTelemetryコレクターとは何ですか?
OTELコレクターは、OpenTelemetryのコアコンポーネントのXNUMXつです。 OTELコレクターは、オプションで、インストルメント化されたアプリケーションとテレメトリバックエンドの間にテレメトリパイプラインコンポーネントとしてデプロイできます。 OTELコレクターを使用すると、テレメトリ信号を複数の形式で取り込み、OTELネイティブpdata形式に変換し、最終的にバックエンドネイティブ形式にエクスポートできます。
そのうち 可観測性のXNUMX本の柱 (メトリック、ログ、およびトレース)、traces APIは最も成熟していますが、メトリックとログはドラフトまたは開発のさまざまな段階にあります。
OTELコレクタアーキテクチャ
OpenTelemetryコレクターは、レシーバー、プロセッサー、エクスポーターのXNUMXつの主要コンポーネントで構成されており、これらはテレメトリパイプラインの構築に使用されます。


レシーバ
受信者はデータをコレクターに取り込みます。 レシーバーには、プッシュベースとプルベースのXNUMXつのタイプがあります。 通常、レシーバーは指定された形式のデータを受け取り、それを内部形式に変換して、該当するパイプラインで定義されているプロセッサーとエクスポーターに渡します。 サポートされているトレースとメトリックの形式は、レシーバー固有です。
プロセッサ
プロセッサーは、データをエクスポーターに送信する前にデータを処理するために使用されます。 プロセッサを使用して、メトリックを変換したり、スパンの名前を変更したりできます。 また、データを送信する前にバッチ処理する、エクスポートが失敗した場合に再試行する、メタデータを追加する、テールベースのサンプリングなどを行うこともできます。
輸出業者
エクスポーターは、複数のオープンソースバックエンドおよび商用バックエンドにデータをエクスポートするために使用されます。 たとえば、ロギングエクスポータを使用してデータをコンソール出力にエクスポートし、ファイルエクスポータを使用してデータをファイルにダンプできます。
トレース、メトリック、およびログパイプラインは、これらXNUMXつのコンポーネントの組み合わせによって設定できます。 パイプラインの一部ではないOpentelemetryコレクターのもうXNUMXつのコンポーネントは、拡張機能です。
拡張機能
拡張機能は、コレクターの主要な機能に加えて機能を提供します。 テレメトリデータに直接アクセスする必要はなく、主にOTELコレクターの管理と監視に使用されます。 拡張機能はオプションです。
カスタマーサービス
サービスセクションは、レシーバー、プロセッサー、エクスポーター、および拡張セクション内で構成されているコンポーネントを有効にするために使用されます。 サービスセクションは、拡張機能とパイプラインのXNUMXつのサブセクションで構成されています。
拡張機能は、有効にするすべての拡張機能のリストで構成されています。 パイプラインは、トレース、メトリック、およびログタイプであり、レシーバー、プロセッサー、およびエクスポーターのセットで構成されます。 各レシーバー/プロセッサー/エクスポーターは、パイプラインに含めるために、サービスセクションの外部の構成で定義する必要があります。
構成例は次のようになります。
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
exporters:
otlp:
endpoint: otelcol:4317
extensions:
health_check:
pprof:
zpages:
service:
extensions: [health_check,pprof,zpages]
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
OTELコレクターのベストプラクティス
- それぞれのセクションで定義されたコンポーネントは、サービスセクションのパイプラインに追加された場合にのみ有効になります。
- 同じレシーバー、プロセッサー、エクスポーター、および/またはパイプラインを複数回定義できます。
- 複数のパイプラインで参照されているプロセッサの場合、各パイプラインはそのプロセッサの個別のインスタンスを取得します。 これは、複数のパイプラインで参照されるレシーバー/エクスポーターとは対照的です。複数のパイプラインでは、レシーバー/エクスポーターのXNUMXつのインスタンスのみがすべてのパイプラインに使用されます。
- プロセッサの順序によって、データが処理される順序が決まります。
- パイプラインには、少なくともXNUMXつのレシーバーとエクスポーターを構成する必要があります。
- 拡張機能とプロセッサはオプションです。
LogicMonitorのOpenTelemetryコレクター
LogicMonitor OpenTelemetry Collectorには、計測されたアプリケーションからLogicMonitorプラットフォームにトレースを転送するように事前構成されたOTELコレクターのラップバージョンが付属しています。 LogicMonitorの中央管理オファリングを使用すると、ユーザーはLogicMonitorポータルのネイティブリソースとしてOTELコレクターをインストール、アップグレード、構成、および監視できます。