すべてはあなたがOpenTelemrationコレクタについて知っておく必要があるすべて🚀


分散システムの監視と追跡を行う第一歩は,テレメトリデータの生成と管理を可能にする計装である.テレメトリデータが生成されると、収集し、それを分析する方法が必要です.

それは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形式でトレースデータを受け取ることができます.
  • 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を有効にします.
  • zpages
    これは、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を試してみることができます👇