すべてはあなたがOpenTelemrationコレクタについて知っておく必要があるすべて🚀
10109 ワード
分散システムの監視と追跡を行う第一歩は,テレメトリデータの生成と管理を可能にする計装である.テレメトリデータが生成されると、収集し、それを分析する方法が必要です.
それはOpenTelemrationコレクタが画像に入っているところです.
OpentElementalコレクタは、収集、処理、およびあなたのテレメトリデータ(ログ、メトリック、およびトレース)をエクスポートするベンダ中立的な方法を提供し、お好みの分析バックエンド.
アーキテクチャ-どのようにOpenentElementは、アプリケーションアーキテクチャに収まります.OtelコレクタはOpentElementalコレクタに言及します
OpentElementalコレクターへの深いダイビングの前に、OpenTelemrationが何であるかについて理解するために、短い迂回をしましょう.
OpenTelemrationは何ですか?
OpenTelemMetricは、API、SDK、ライブラリ、およびテレメトリデータ(ログ、メトリック、およびトレース)の生成、収集、および管理を標準化することを目的とした一連のAPIです.OpenTelemstryはOpenPensusの合併後に作成されたクラウドネイティブコンピューティング財団プロジェクトであり、OpenTracking(UTCから)です.
OpenTelemrationで収集データは、abagsticベンダであり、多くの形式でエクスポートすることができます.テレメトリデータは分散システムの状態を監視するために重要になってきた.MicroServiceとPolyglotアーキテクチャで、世界標準を持つ必要がありました.OpenTelemrationは、その空間を埋めることを目指しており、これまでで素晴らしい仕事をしています.
なぜOpenTelemrationコレクタを使用するには?
収集して、処理して、集められるテレメトリデータを輸出することは、OpenTelemrationコレクタには3つの主な機能があります.しかし、OpenTelemrationコレクターについての詳細を理解しようとする前に、なぜそれがあなたの監視アーキテクチャの重要なコンポーネントであるかを最初に理解しよう.なぜあなたはあなたの選択のバックエンド解析ツールに直接テレメトリデータを送信することはできませんか?
OpentElementalコレクタは、複数のデータ形式を処理するための柔軟性を与え、テレメトリデータを管理するアプリケーションからの責任を無効にします.
OpenTelemrationコレクタを使用する理由のリスト テレメトリデータを収集するベンダー不可知な方法を提供する テレメトリデータを管理するアプリケーションからの責任を無効にし、オーバーヘッドを減らす 簡単にテレメトリデータを管理する方法に変更を行います 複数の形式でデータのエクスポートを可能にする 別の形式でデータを受信するための設定ファイルを更新するために迅速な設定ベースの更新を有効にします
オプトメントルコレクタのアーキテクチャ
Opentlementatorコレクタは、3つの主要なコンポーネントから成ります: 受信機
受信機は、コレクタにデータを取得するために使用されます.ポートとフォーマットを設定するのに使用できます.それはプッシュまたはプルベースです.複数の形式でデータを受け取ることができます.これはデフォルトのOTLP形式がありますが、また、他の一般的なオープンソース形式のデータを受け取ることができますジェガーやプロメテウス.SIGNOZはテレメトリデータを受け取るためにデフォルトのOTLPフォーマットを使用します. プロセッサ
プロセッサはデータ収集のような収集されたデータ、データ操作、またはそれがコレクタを通って流れるとき、データのどんな変化にも必要などんな処理もするのに使用されます.また、収集されたテレメトリデータからPIIデータを除去するのにも使用できます.また、エクスポートを失敗する前にデータをバッチ処理する前にデータをバッチ処理することもできます. 輸出者
輸出者はバックエンド解析ツールにデータをエクスポートするために使用されますSigNoz . 複数のデータ形式でデータを送信できます.
受信機,プロセッサ,および輸出業者を備えたOpenTelemrationコレクタのアーキテクチャ
これらの3つのコンポーネントの組み合わせにより、OpenPlentRecordコレクタを使用してデータパイプラインを構築できます.1つの形式でデータを受信し、それを処理してから別のデータ形式でデータを送信する.これは分散グローバルシステム上で動作するチームに柔軟性を提供します.
OpenTelemrationコレクタを構成する方法?
上記のOpentElementalコレクタの3つのコンポーネントを設定する必要があります.構成されると、これらのコンポーネントはサービスセクション内のパイプライン経由で有効になっていなければなりません.
受信機
以下に示すサンプルコードでは、2つの受信機があります. OTLP
テレメトリデータを転送するためのデフォルトOpenTelemrationプロトコル.SIGNZは、OTLPフォーマットでテレメトリデータを受け取ります. ヤーガー
また、人気の分散追跡ツールであるJaeger形式でトレースデータを受け取ることができます.
プロセッサ
次のコード例には、3つのプロセッサがあります. バッチ
バッティングは、データを圧縮し、データを送信するために必要な送信接続の数を減らすことができます.このプロセッサは、サイズと時間ベースのバッチ処理をサポートします. メモリリミッタ
メモリリミッタプロセッサは、コレクタ上のメモリの状況を防ぐために使用されます.コレクタのプロセスの量と種類は、環境の特定であり、コレクタのリソース利用はまた、構成されたプロセッサに依存しているので、メモリ使用に関してチェックを適切に置くことが重要です. 待ち行列再試行
このプロセッサは高度にデータをエクスポートする処理や問題の遅延のためにドロップされているデータの可能性を最小限に抑えるように、すべてのコレクタの設定を強くお勧めします.
輸出者
このサンプルコードでは、2つのエクスポートを作成しました. カフカ/トレース
これは、カフカのトピックとして カフカ/メトリクス
これは、次のような名前のカフカのトピックに書き込むために収集されたメトリクス
拡張
拡張モジュールはOpentElementalコレクタの主要な機能の上に機能を提供します.
この例では、2つの拡張を有効にしました. 健康チェック
これは、OpenTelemrationコレクタのステータスを確認するために使用できるURLを有効にします. zpages
これは、OpenTelemrationコレクタのさまざまなコンポーネントをデバッグするためのライブデータを提供するHTTPエンドポイントを有効にします.
サービスセクションとデータパイプラインの設定
構成されているすべてのコンポーネントは、サービスセクション内のパイプライン経由で有効にする必要があります.コンポーネントがサービスセクションで定義されていない場合、有効ではありません.パイプラインはOpentElementalコレクタをあなたのアーキテクチャのコンポーネントを持つ必要があります.これは、受信の柔軟性を提供し、複数の形式でデータをエクスポートします.
以下に示す例では、2つのパイプラインを有効にしました. 跡
このパイプラインでは、我々は 計量
パイプラインでは、2000年にメトリクスを受け取ります
OpenTelemstryで始まる
OpenTelemrationは、テレメトリデータを収集し管理するベンダ不可知な方法を提供します.次のステップは、収集したデータの意味を理解できるバックエンド解析ツールを選択することです.SigNoz フルスタックのオープンソースアプリケーションのパフォーマンス監視と観測可能性プラットフォームです.
Dockerがインストールされているなら、SIGNOZから始めましょう.
Signozはあなたのチームの迅速な洞察を有効にすることができますチャートとメトリクスとトレースを可視化するために使用することができます.
RPS、50 th/90 th/99 th Percentile遅延、エラーレートなどのアプリケーション概要メトリクスを示すSIGNoz UI
あなたはGigthubレポを訪問してSignozを試してみることができます👇
それはOpenTelemrationコレクタが画像に入っているところです.
OpentElementalコレクタは、収集、処理、およびあなたのテレメトリデータ(ログ、メトリック、およびトレース)をエクスポートするベンダ中立的な方法を提供し、お好みの分析バックエンド.
アーキテクチャ-どのようにOpenentElementは、アプリケーションアーキテクチャに収まります.OtelコレクタはOpentElementalコレクタに言及します
OpentElementalコレクターへの深いダイビングの前に、OpenTelemrationが何であるかについて理解するために、短い迂回をしましょう.
OpenTelemrationは何ですか?
OpenTelemMetricは、API、SDK、ライブラリ、およびテレメトリデータ(ログ、メトリック、およびトレース)の生成、収集、および管理を標準化することを目的とした一連のAPIです.OpenTelemstryはOpenPensusの合併後に作成されたクラウドネイティブコンピューティング財団プロジェクトであり、OpenTracking(UTCから)です.
OpenTelemrationで収集データは、abagsticベンダであり、多くの形式でエクスポートすることができます.テレメトリデータは分散システムの状態を監視するために重要になってきた.MicroServiceとPolyglotアーキテクチャで、世界標準を持つ必要がありました.OpenTelemrationは、その空間を埋めることを目指しており、これまでで素晴らしい仕事をしています.
なぜOpenTelemrationコレクタを使用するには?
収集して、処理して、集められるテレメトリデータを輸出することは、OpenTelemrationコレクタには3つの主な機能があります.しかし、OpenTelemrationコレクターについての詳細を理解しようとする前に、なぜそれがあなたの監視アーキテクチャの重要なコンポーネントであるかを最初に理解しよう.なぜあなたはあなたの選択のバックエンド解析ツールに直接テレメトリデータを送信することはできませんか?
OpentElementalコレクタは、複数のデータ形式を処理するための柔軟性を与え、テレメトリデータを管理するアプリケーションからの責任を無効にします.
OpenTelemrationコレクタを使用する理由のリスト
オプトメントルコレクタのアーキテクチャ
Opentlementatorコレクタは、3つの主要なコンポーネントから成ります:
受信機,プロセッサ,および輸出業者を備えたOpenTelemrationコレクタのアーキテクチャ
これらの3つのコンポーネントの組み合わせにより、OpenPlentRecordコレクタを使用してデータパイプラインを構築できます.1つの形式でデータを受信し、それを処理してから別のデータ形式でデータを送信する.これは分散グローバルシステム上で動作するチームに柔軟性を提供します.
OpenTelemrationコレクタを構成する方法?
上記のOpentElementalコレクタの3つのコンポーネントを設定する必要があります.構成されると、これらのコンポーネントはサービスセクション内のパイプライン経由で有効になっていなければなりません.
受信機
以下に示すサンプルコードでは、2つの受信機があります.
テレメトリデータを転送するためのデフォルトOpenTelemrationプロトコル.SIGNZは、OTLPフォーマットでテレメトリデータを受け取ります.
また、人気の分散追跡ツールであるJaeger形式でトレースデータを受け取ることができます.
receivers:
otlp:
protocols:
grpc:
http:
jaeger:
protocols:
grpc:
thrift_http:
プロセッサ
次のコード例には、3つのプロセッサがあります.
バッティングは、データを圧縮し、データを送信するために必要な送信接続の数を減らすことができます.このプロセッサは、サイズと時間ベースのバッチ処理をサポートします.
メモリリミッタプロセッサは、コレクタ上のメモリの状況を防ぐために使用されます.コレクタのプロセスの量と種類は、環境の特定であり、コレクタのリソース利用はまた、構成されたプロセッサに依存しているので、メモリ使用に関してチェックを適切に置くことが重要です.
このプロセッサは高度にデータをエクスポートする処理や問題の遅延のためにドロップされているデータの可能性を最小限に抑えるように、すべてのコレクタの設定を強くお勧めします.
processors:
batch:
send_batch_size: 1000
timeout: 10s
memory_limiter:
# Same as --mem-ballast-size-mib CLI argument
ballast_size_mib: 683
# 80% of maximum memory up to 2G
limit_mib: 1500
# 25% of limit up to 2G
spike_limit_mib: 512
check_interval: 5s
queued_retry:
num_workers: 4
queue_size: 100
retry_on_failure: true
あなたはこれらのプロセッサについての詳細情報を見つけることができますOpenTelemetry Collector GitHub repo .輸出者
このサンプルコードでは、2つのエクスポートを作成しました.
これは、カフカのトピックとして
otlp_spans
. これは、次のような名前のカフカのトピックに書き込むために収集されたメトリクス
otlp_metrics
.exporters:
kafka/traces:
brokers:
- signoz-kafka:9092
topic: 'otlp_spans'
protocol_version: 2.0.0
kafka/metrics:
brokers:
- signoz-kafka:9092
topic: 'otlp_metrics'
protocol_version: 2.0.0
OpenTemporatorコレクターの健康状態を監視するような拡張機能を構成することもできます.拡張
拡張モジュールはOpentElementalコレクタの主要な機能の上に機能を提供します.
この例では、2つの拡張を有効にしました.
これは、OpenTelemrationコレクタのステータスを確認するために使用できるURLを有効にします.
これは、OpenTelemrationコレクタのさまざまなコンポーネントをデバッグするためのライブデータを提供するHTTPエンドポイントを有効にします.
extensions:
health_check: {}
zpages: {}
サービスセクションとデータパイプラインの設定
構成されているすべてのコンポーネントは、サービスセクション内のパイプライン経由で有効にする必要があります.コンポーネントがサービスセクションで定義されていない場合、有効ではありません.パイプラインはOpentElementalコレクタをあなたのアーキテクチャのコンポーネントを持つ必要があります.これは、受信の柔軟性を提供し、複数の形式でデータをエクスポートします.
以下に示す例では、2つのパイプラインを有効にしました.
このパイプラインでは、我々は
jaeger
and otlp
形式次に、収集したトレースに3つのプロセッサを使用するmemory_limiter
, batch
and queued_retry
. 我々はカフカのトピックに処理されたトレースをエクスポートします.パイプラインでは、2000年にメトリクスを受け取ります
otlp
形式バッチプロセッサを使用して収集されたメトリクスを処理し、カフカのトピックに処理されたメトリクスをエクスポートします.service:
extensions: [health_check, zpages]
pipelines:
traces:
receivers: [jaeger, otlp]
processors: [memory_limiter, batch, queued_retry]
exporters: [kafka/traces]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [kafka/metrics]
サンプルOpenTelemrationコレクタ設定ファイル.(ソース:SigNoz )apiVersion: v1
kind: ConfigMap
metadata:
name: otel-collector-conf
labels:
app: opentelemetry
component: otel-collector-conf
data:
otel-collector-config: |
receivers:
otlp:
protocols:
grpc:
http:
jaeger:
protocols:
grpc:
thrift_http:
processors:
batch:
send_batch_size: 1000
timeout: 10s
memory_limiter:
# Same as --mem-ballast-size-mib CLI argument
ballast_size_mib: 683
# 80% of maximum memory up to 2G
limit_mib: 1500
# 25% of limit up to 2G
spike_limit_mib: 512
check_interval: 5s
queued_retry:
num_workers: 4
queue_size: 100
retry_on_failure: true
extensions:
health_check: {}
zpages: {}
exporters:
kafka/traces:
brokers:
- signoz-kafka:9092
topic: 'otlp_spans'
protocol_version: 2.0.0
kafka/metrics:
brokers:
- signoz-kafka:9092
topic: 'otlp_metrics'
protocol_version: 2.0.0
service:
extensions: [health_check, zpages]
pipelines:
traces:
receivers: [jaeger, otlp]
processors: [memory_limiter, batch, queued_retry]
exporters: [kafka/traces]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [kafka/metrics]
OpenTelemstryで始まる
OpenTelemrationは、テレメトリデータを収集し管理するベンダ不可知な方法を提供します.次のステップは、収集したデータの意味を理解できるバックエンド解析ツールを選択することです.SigNoz フルスタックのオープンソースアプリケーションのパフォーマンス監視と観測可能性プラットフォームです.
Dockerがインストールされているなら、SIGNOZから始めましょう.
git clone https://github.com/SigNoz/signoz.git
cd signoz/deploy/
./install.sh
SIGNYZからの展開についてはdocumentation .Signozはあなたのチームの迅速な洞察を有効にすることができますチャートとメトリクスとトレースを可視化するために使用することができます.
RPS、50 th/90 th/99 th Percentile遅延、エラーレートなどのアプリケーション概要メトリクスを示すSIGNoz UI
あなたはGigthubレポを訪問してSignozを試してみることができます👇
Reference
この問題について(すべてはあなたがOpenTelemrationコレクタについて知っておく必要があるすべて🚀), 我々は、より多くの情報をここで見つけました https://dev.to/signoz/everything-you-need-to-know-about-opentelemetry-collector-l7fテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol