mcpField
O
otel-collector

otel-collector

github.com/dash0hqクラウド・DevOps98670 回インストール1 週間前に更新
リポジトリ

otel-collector について

OpenTelemetry Collector の利用者向けに、テレメトリーの受信、処理、エクスポートの設定とデプロイを案内します。パイプラインの接続、プロセッサーの順序、メモリー安全性を重視しています。

主な機能

  1. 01レシーバー、プロセッサー、エクスポーターの設定
  2. 02シグナル別パイプラインの構築
  3. 03Kubernetes などのデプロイ方式の選択
  4. 04サンプリングと RED メトリクスの設定
  5. 05設定の検証とテレメトリーの確認

活用シーン

  1. 01アプリケーションから OTLP テレメトリーを受信
  2. 02テレメトリーを Dash0 にエクスポート
  3. 03Kubernetes で Collector をデプロイ
  4. 04トレースから RED メトリクスを生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dash0hq/agent-skills --skill otel-collector

インストール後、Claude Code で/otel-collectorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
rules/
custom-distributions.md
deployment.md
exporters.md
pipelines.md
processors.md
receivers.md
red-metrics.md
sampling.md
rules/deployment/
collector-helm-chart.md
dash0-operator.md
opentelemetry-operator.md
raw-manifests.md

詳細

OpenTelemetry Collector の設定ガイド

テレメトリを受信、処理、エクスポートするための OpenTelemetry Collector の設定とデプロイに関する専門的なガイダンスです。

ルール

ルール説明
receiversレシーバー — OTLP、Prometheus、filelog、hostmetrics
exportersエクスポーター — Dash0 への OTLP/gRPC、デバッグ、認証
processorsプロセッサー — メモリーリミッター、リソース検出、順序、送信キュー
pipelinesパイプライン — service セクション、シグナルごとの設定、コネクター
deploymentデプロイ — エージェントとゲートウェイのパターン、デプロイ方法の選択
dash0-operatorDash0 Kubernetes Operator — 自動インストルメンテーション、Collector の管理、Dash0 へのエクスポート
collector-helm-chartCollector Helm チャート — プリセット、モード、イメージの選択
opentelemetry-operatorOpenTelemetry Operator — Collector CRD、自動インストルメンテーション、サイドカー
raw-manifestsKubernetes の生マニフェスト — DaemonSet、Deployment、RBAC、Docker Compose
samplingサンプリング — ヘッド、テール、ロードバランシング
red-metricsRED メトリクス — スパンから導出されるリクエストレート、エラーレート、期間ヒストグラム
custom-distributionsカスタムディストリビューション — OCB を使用した軽量化 Collector バイナリーのビルド

主な原則

  • プロセッサーの順序は重要です。 すべてのパイプラインで memory_limiter を最初に配置します。 sending_queue: { batch: {} } でエクスポーターのバッチ処理を有効にし、batch プロセッサーを使う代わりに file_storage でキューを永続化します。 順序を誤ると、メモリー不足やデータ損失が発生します。
  • シグナルの種類ごとにパイプラインを分けます。 トレース、メトリクス、ログごとに個別のパイプラインを定義します。 1 つのパイプラインでシグナルを混在させると、処理が破綻し、実行時エラーが発生します。
  • 宣言したすべてのコンポーネントをパイプラインに含める必要があります。 Collector は、どのパイプラインからも参照されていないコンポーネントを、エラーや警告を出さずに無視するため、配線されていないコンポーネントは機能しません。
  • すべてのパイプラインでリソース属性を一貫して付与します。 resource_detection や k8s_attributes などのリソース属性を付与するプロセッサーは、1 つのパイプラインだけでなく、すべてのシグナルパイプライン(トレース、メトリクス、ログ)に適用します。 あるパイプラインではテレメトリに k8s.namespace.name や host.name を付与し、別のパイプラインでは付与しない場合、メタデータが不完全になり、シグナル間の相関が損なわれます。
  • 標準のコンポーネント名を使用します。 設定キーには otlp_grpc、otlp_http、load_balancing、span_metrics、log_dedup、signal_to_metrics、k8s_attributes、resource_detection を記述します。 旧名の otlp(エクスポーターのみ)、otlphttp、loadbalancing、spanmetrics、logdedup、signaltometrics、k8sattributes、resourcedetection も非推奨のエイリアスとして引き続き動作しますが、起動時に非推奨の警告が記録されます。
  • Collector v0.153.0 以降を実行します。 このスキルの設定にはこのバージョンが必要です。load_balancing と resource_detection は v0.153.0 以降でのみ利用でき、sending_queue.batch: {} は v0.138.0 以降でのみ利用できます。 古い Collector は起動時にこれらを拒否します。新しい名前では unknown type、batch: {} では 'sending_queue' has invalid keys: batch または `batch` supports only `items` or `bytes` sizer が発生します。 イメージのバージョンを固定する場合は、例で使用しているバージョン v0.163.1 に固定してください。
  • メモリーの安全性は必須です。 本番環境では必ず memory_limiter を設定します。 設定しないと、テレメトリの急増によって Collector が OOM になり、クラッシュする可能性があります。

クイックスタート

最小限の動作する構成:OTLP レシーバー → メモリリミッター → Dash0 への OTLP/gRPC エクスポーター。

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

processors:
  memory_limiter:
    check_interval: 1s
    limit_mib: 400
    spike_limit_mib: 100

exporters:
  otlp_grpc:
    endpoint: ingress.eu-west-1.aws.dash0.com:4317
    headers:
      Authorization: "Bearer ${env:DASH0_TOKEN}"
    sending_queue:
      enabled: true
      storage: file_storage
      batch: {}

extensions:
  file_storage:
    directory: /var/lib/otelcol/queue
    create_directory: true

service:
  extensions: [file_storage]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter]
      exporters: [otlp_grpc]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter]
      exporters: [otlp_grpc]
    logs:
      receivers: [otlp]
      processors: [memory_limiter]
      exporters: [otlp_grpc]

Collector のユーザーには file_storage ディレクトリへの書き込み権限が必要です。コンテナでは、/var/lib/otelcol に永続ボリュームをマウントしてください。

認証とキューの設定についてはエクスポーターを、リソース検出の追加についてはプロセッサーを参照してください。

構成のワークフロー

  1. 構成を記述する — レシーバー、プロセッサー、エクスポーターを定義し、service.pipelines で接続します。
  2. ローカルで検証する — デプロイ前に otelcol validate --config=config.yaml を実行し、構造上のエラーを検出します。
  3. デプロイする — デプロイルールからデプロイ方法(Helm、Operator、raw manifests、Docker Compose)を選択します。
  4. 確認する — パイプラインに一時的に debug エクスポーターを追加し、標準出力を調べてテレメトリが流れていることを確認します。本番環境に移行する前に削除してください。

クイックリファレンス

必要なものルール
アプリケーションから OTLP テレメトリを受信するレシーバー
Prometheus エンドポイントをスクレイプするレシーバー
ログファイルまたはホストメトリクスを収集するレシーバー
テレメトリを Dash0 に送信するエクスポーター
リトライ、キュー、圧縮を設定するエクスポーター
プロセッサーの実行順序を設定するプロセッサー
Kubernetes またはクラウドのメタデータを追加するプロセッサー
レシーバー → プロセッサー → エクスポーターを接続するパイプライン
完全な動作構成パイプライン
デバッグエクスポーターでパイプラインを検証するcollector-helm-chart、opentelemetry-operator、raw-manifests、または dash0-operator
DaemonSet または Deployment としてデプロイするraw-manifests
Helm でデプロイするcollector-helm-chart
OTel Operator でデプロイするopentelemetry-operator
Dash0 Operator でデプロイするdash0-operator
Kubernetes でアプリケーションを自動計装するopentelemetry-operator または dash0-operator
Docker Compose でローカル開発するraw-manifests
トレース量を減らすサンプリング
エラーと遅いトレースを保持し、それ以外を破棄するサンプリング
パイプライン内の機密データをマスキングするプロセッサー
トレースから RED メトリクスを生成するred-metrics
カスタム Collector バイナリをビルドするカスタムディストリビューション

公式ドキュメント

コメント