InfraおよびAPMの関連コンテンツを有効にするために Collector を設定する

APM の関連コンテンツを有効にするように Collector を設定します。

Splunk Distribution of the OpenTelemetry Collector のデフォルト設定は、関連コンテンツを自動的に設定します。カスタム設定を使用している場合は、次を参照してください。

関連コンテンツの概要は Related Content in Splunk Observability Cloud でご確認ください。

Collector をホストモニタリング(エージェント)モードで設定して、関連コンテンツを有効にします。

APM サービスのダッシュボードでインフラストラクチャデータを表示するには、OpenTelemetry Collector の特定のコンポーネントを有効にする必要があります。詳細については「Collector components」および「Process your data with Pipelines」を参照してください。

ホストモニタリングモードでの Collector 設定

以上が必要なコンフィギュレーションの詳細です:

hostmetrics レシーバー

cpumemoryfilesystemnetwork を有効にして、それぞれのメトリクスを収集します。

詳細については「Host metrics receiver」を参照してください。

signalfx エクスポーター

SignalFx エクスポーターは hostmetrics レシーバーからのメトリクスを集約します。また、関連 APM サービスチャートで参照される cpu.utilization などのメトリクスも送信します。

詳しくは「SignalFx exporter」を参照してください。

相関フラグ

デフォルトでは、標準の SignalFx エクスポーター構成を使用して相関が有効になっています。この設定により、Collector は関連する API コールを実行し、スパンと関連するインフラストラクチャ メトリクスをリンクします。

SignalFx エクスポーターは、メトリクスパイプラインとトレースパイプラインの両方で有効にする必要があります。相関オプションをさらに調整するには、[Settings] で SignalFx エクスポーターのオプションを確認してください。

resourcedetection プロセッサー

プロセッサを使用することで、メトリクスとトレースに一意の host.name 値を設定できます。 host.name は、EC2 ホスト名またはシステムホスト名によって決まります。

以下のコンフィギュレーションを使用します:

  • クラウドプロバイダーまたは 環境変数 を使用して、host.name を設定します。

  • override を有効にする

詳しくは「リソース検出プロセッサ」を参照してください。

resource/add_environment プロセッサー(オプション)

APM チャートは、環境スパン属性が正しく設定されている必要があります。

この属性を設定するには、2つのオプションがあります:

  • インストルメンテーションで属性を設定する

  • このプロセッサーを使用して、すべてのスパンに deployment.environment スパン属性を挿入します。

詳しくは「リソース検出プロセッサ」を参照してください。

以下は各セクションの関連する設定スニペットです:

receivers:
  hostmetrics:
    collection_interval: 10s
    scrapers:
      cpu:
      disk:
      filesystem:
      memory:
      network:

processors:
  resourcedetection:
    detectors: [system,env,gcp,ec2]
    override: true
  resource/add_environment:
    attributes:
      - action: insert
        value: staging
        key: deployment.environment

exporters:
  # Traces
  otlphttp:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    endpoint: "${SPLUNK_TRACE_URL}"
  # Metrics + Events + APM correlation calls
  signalfx:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    api_url: "${SPLUNK_API_URL}"
    ingest_url: "${SPLUNK_INGEST_URL}"
    sync_host_metadata: true
    correlation:

service:
  extensions: [health_check, http_forwarder, zpages]
  pipelines:
    traces:
      receivers: [jaeger, zipkin]
      processors: [memory_limiter, batch, resourcedetection, resource/add_environment]
      exporters: [otlphttp, signalfx]
    metrics:
      receivers: [hostmetrics]
      processors: [memory_limiter, batch, resourcedetection]
      exporters: [signalfx]

Collector を設定して、関連コンテンツを有効にするをホストモニタリング(エージェント)モードからデータ転送(ゲートウェイ)モードに有効にします。

Opentelemetry Collector をホストモニタリング (エージェント) とデータ転送 (ゲートウェイ) の両方のモードで実行する必要がある場合は、以下のセクションを参照してください。

詳細は「Collector のデプロイメントモード」を参照してください。

エージェントを設定する

前のセクションで述べたのと同じ手順に従って、以下の変更を含めます:

http_forwarder エクステンション

http_forwarder はポート 6060 でリッスンし、すべての REST API 呼び出しを Splunk Observability Cloud に直接送信します。

エージェントが Splunk SaaS バックエンドと直接通信できない場合は、egress エンドポイントを使用してゲートウェイの URL に変更します。

signalfx エクスポーター

注意: トレースの相関に必要な REST API 呼び出しは、traces パイプラインの SignalFx エクスポーター経由で送信する必要があります。

OTLP エクスポーターの使用が推奨されますが、必要であればメトリクス用のエクスポーターを使用することも可能です。詳しくは「otlp exporter(optional)」を参照してください。

以下のコンフィギュレーションを使用します:

  • api_url エンドポイントをゲートウェイの URL に設定します。ゲートウェイにおける http_forwarder のイングレスポートを指定します。デフォルトでは 6060 です。

  • ingest_url エンドポイントをゲートウェイの URL に設定します。ゲートウェイにおける signalfx レシーバーのイングレスポートを指定します。デフォルトでは 9943 です。

すべてのパイプライン

すべてのメトリクス、トレース、ログのパイプラインをゲートウェイの適切なレシーバーに送信します。

otlp exporter (任意)

OTLP エクスポーターの使用は任意ですが、エージェントからゲートウェイへのトラフィックの大部分に使用することを推奨します。すべてのデータが受信時に otlp に変換されるため、ゲートウェイへのデータ送信には、OTLP エクスポーターの使用が最も効率的です。SignalFx エクスポーターは、トレースパイプラインで REST API コールを行う場合にのみ利用してください。

OTLPエクスポーターは grpc プロトコルを使うので、エンドポイントはゲートウェイのIPアドレスとして定義されなければなりません。

注: メトリクスに OTLP エクスポーターを使用している場合、hostmetrics 集約はゲートウェイで実行する必要があります。

詳しくは「OTLP エクスポーター」をご確認ください。

以下は各セクションの関連する設定スニペットです:

receivers:
  hostmetrics:
    collection_interval: 10s
    scrapers:
      cpu:
      disk:
      filesystem:
      memory:
      network:

processors:
  resourcedetection:
    detectors: [system,env,gcp,ec2]
    override: true
  resource/add_environment:
    attributes:
      - action: insert
        value: staging
        key: deployment.environment

exporters:
  # Traces
  otlp:
    endpoint: "${SPLUNK_GATEWAY_URL}:4317"
    tls:
      insecure: true
  # Metrics + Events + APM correlation calls
  signalfx:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    api_url: "http://${SPLUNK_GATEWAY_URL}:6060"
    ingest_url: "http://${SPLUNK_GATEWAY_URL}:9943"

service:
  extensions: [health_check, http_forwarder, zpages]
  pipelines:
    traces:
      receivers: [jaeger, zipkin]
      processors: [memory_limiter, batch, resourcedetection, resource/add_environment]
      exporters: [otlp, signalfx]
    metrics:
      receivers: [hostmetrics]
      processors: [memory_limiter, batch, resourcedetection]
      exporters: [otlp]

ゲートウェイを設定する

ゲートウェイモードでは、関連するレシーバーがエージェントからのエクスポーターと一致するようにします。さらに、次の変更を行う必要があります。

http_forwarder エクステンション

http_forwarder はポート 6060 でリッスンし、すべての REST API 呼び出しを Splunk Observability Cloud に直接送信します。

ゲートウェイモードでは、egress エンドポイントを Splunk Observability Cloud SaaS エンドポイントに設定します。

signalfx エクスポーター

translation_rules および exclude_metrics フラグの両方をデフォルト値に設定することで、コメントアウトや削除が可能です。これにより、エージェント上の SignalFx エクスポーターによって通常実行される hostmetrics 集約が、ゲートウェイ上の SignalFx エクスポーターによって代わりに実行されるようになります。

以下は各セクションの関連する設定スニペットです:

extensions:
  http_forwarder:
    egress:
      endpoint: "https://api.${SPLUNK_REALM}.signalfx.com"

receivers:
  otlp:
    protocols:
      grpc:
      http:
  signalfx:

exporters:
  # Traces
  otlphttp:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    traces_endpoint: "https://ingest.${SPLUNK_REALM}.signalfx.com/v2/trace/otlp"
  # Metrics + Events
  signalfx:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    realm: "${SPLUNK_REALM}"

service:
  extensions: [http_forwarder]
  pipelines:
    traces:
      receivers: [otlp]
      processors:
      - memory_limiter
      - batch
      exporters: [otlphttp]
    metrics:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [signalfx]

両方の Collector モードでSignalFxエクスポーターを使用する

また、ホストモニタリング(エージェント)モードとデータ転送(ゲートウェイ)モードの両方で SignalFx エクスポーターをメトリクスに使用する場合は、ゲートウェイでの集約を無効にする必要があります。これを行うには、 translation_rulesexclude_metrics を空のリストに設定する必要があります。

ゲートウェイモードのエージェントを以下のように設定します:

exporters:
  # Traces
  otlphttp:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    endpoint: "https://ingest.${SPLUNK_REALM}.signalfx.com/v2/trace/otlp"
  # Metrics + Events
  signalfx:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    realm: "${SPLUNK_REALM}"
    translation_rules: []
    exclude_metrics: []

service:
  extensions: [http_forwarder]
  pipelines:
    traces:
      receivers: [otlp]
      processors:
      - memory_limiter
      - batch
      exporters: [otlphttp]
    metrics:
      receivers: [signalfx]
      processors: [memory_limiter, batch]
      exporters: [signalfx]