Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » Collector コンポーネント » Collectorコンポーネント;コネクター » スパンメトリクスコネクター

スパンメトリクスコネクター 🔗

Splunk Distribution of the OpenTelemetry Collectorは、スパンメトリクスコネクターを使用して、スパンデータからリクエスト、エラー、継続時間(R.E.D) OpenTelemetryメトリクスを集計します。

エクスポーターとして、サポートされるパイプラインタイプは traces です。レシーバーとして、サポートされるパイプラインタイプは metrics です。詳細は パイプラインでデータを処理する を参照してください。

概要 🔗

コネクターはスパンデータをプルし、リクエスト、エラー、期間(R.E.D OpenTelemetry メトリクスに集計します。

リクエスト 🔗

リクエストカウントは、 エラーを含む一意のディメンションセットごとに見られるスパンの数として計算されます。例えば、service.name および span.name のコールカウントだけを表示したい場合、複数のメトリクスを集計できます。

calls{service.name="shipping",span.name="get_shipping/{shippingId}",span.kind="SERVER",status.code="Ok"}

エラー 🔗

エラーカウントは、エラーステータスコードメトリクスディメンションを持つ リクエストカウントから計算されます。

calls{service.name="shipping",span.name="get_shipping/{shippingId},span.kind="SERVER",status.code="Error"}

期間 🔗

期間は、スパンの開始時間と終了時間の差から計算され、それぞれ一意の設定されたディメンションの関連する期間ヒストグラムの時間バケットに挿入されます。

duration{service.name="shipping",span.name="get_shipping/{shippingId}",span.kind="SERVER",status.code="Ok"}

メトリクスの共通ディメンション 🔗

各メトリクスは、すべてのスパンで共通であるため、少なくとも以下のディメンションを持ちます:

  • service.name

  • span.name

  • span.kind

  • status.code

はじめに 🔗

以下の手順に従って、コンポーネントの設定とアクティベーションを行ってください:

  1. Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:

  1. 次のセクションで説明するように、コネクターを設定します。

  2. Collector を再起動します。

サンプル構成 🔗

To activate the connector, add spanmetrics to the connectors section of your configuration file.

例:

receivers:
  nop:

exporters:
  nop:

connectors:
  spanmetrics:
    histogram:
      explicit:
        buckets: [100us, 1ms, 2ms, 6ms, 10ms, 100ms, 250ms]
    dimensions:
      - name: http.method
        default: GET
      - name: http.status_code
    exemplars:
      enabled: true
    exclude_dimensions: ['status.code']
    dimensions_cache_size: 1000
    aggregation_temporality: "AGGREGATION_TEMPORALITY_CUMULATIVE"
    metrics_flush_interval: 15s
    metrics_expiration: 5m
    events:
      enabled: true
      dimensions:
        - name: exception.type
        - name: exception.message
    resource_metrics_key_attributes:
      - service.name
      - telemetry.sdk.language
      - telemetry.sdk.name

設定を完了するには、設定ファイルの service セクションで、コネクターを traces パイプラインのエクスポーターとして、また metrics パイプラインのレシーバーとして含めます。

例:

service:
  pipelines:
    traces:
      receivers: [nop]
      exporters: [spanmetrics]
    metrics:
      receivers: [spanmetrics]
      exporters: [nop]

設定オプション 🔗

オプションで以下の設定が可能です:

  • histogram。デフォルトでは explicit です。これを使用して、スパンの継続時間測定から計算された記録するヒストグラムのタイプを設定します。 explicit または exponential のいずれかでなければなりません。

    • disable。デフォルトでは false です。すべてのヒストグラムメトリクスを無効にします。

    • unit。デフォルトでは ms です。期間測定値を記録するための時間単位で、スパンの期間測定値から計算されます。指定可能な値は ms または s です。

    • explicit:

      • buckets。期間ヒストグラムの時間バケットを定義する期間のリスト。デフォルトのバケット: [2ms, 4ms, 6ms, 8ms, 10ms, 50ms, 100ms, 200ms, 400ms, 800ms, 1s, 1400ms, 2s, 5s, 10s, 15s]

    • exponential:

      • max_size。デフォルトでは 160 です。正負の数値範囲ごとのバケットの最大数。

  • dimensions。上記で定義したデフォルトディメンションと一緒に追加するディメンションのリスト。

    • 各追加ディメンションは、iphost.nameregion など、スパンの属性コレクションまたはリソース属性(プロセスタグ)で検索される名前で定義されます。

    • スパンに named 属性がない場合、オプションで提供されるデフォルトが使用されます。

    • デフォルトが指定されていない場合、このディメンションはメトリクスから除外されます。

  • exclude_dimensions。ディメンションのデフォルトセットから除外するディメンションのリスト。メトリクスから不要なデータを除外するために使用します。

  • dimensions_cache_size。デフォルトでは 1000 です。Collector のメモリ使用率を向上させるためにディメンションを格納するキャッシュのサイズ。正の数でなければなりません。

  • resource_metrics_cache_size。デフォルトでは 1000 です。サービスのメトリクスを保持するキャッシュのサイズ。これは、メモリリークを回避し、メトリクスのタイムスタンプを正しくリセットするための累積的な一時性に主に関係します。

  • aggregation_temporality。デフォルトでは AGGREGATION_TEMPORALITY_CUMULATIVE です。生成されるメトリクスの集計の時間性を定義します。指定できる値は AGGREGATION_TEMPORALITY_CUMULATIVE または AGGREGATION_TEMPORALITY_DELTA です。

  • namespace。生成されるメトリクスの名前空間を定義します。名前空間を指定すると、生成されるメトリクス名にプリフィックス namespace. が追加されます。

  • metrics_flush_interval。デフォルトでは 60 です。生成されるメトリクスのフラッシュ間隔を定義します。

  • metrics_expiration。デフォルトでは 0 です。有効期限を time.Duration と定義します。この期限を過ぎると、新しいスパンを受信しなくても、メトリクスはエクスポートされなくなります。 0 に設定すると、メトリクスは期限切れになりません。

  • exemplars。これらのツールを使用して、メトリクスに模範解答を添付する方法を設定します。

    • enabled。デフォルトでは faulse です。これを有効にすると、すべてのメトリクスにスパンが Exemplars として追加されます。Exemplars は、1 回のフラッシュ間隔の間だけ保持されます。

  • events。イベントメトリクスの設定に使用します。

    • enabled。デフォルトでは false です。これを有効にすると、イベントメトリクスが追加されます。

    • dimensionsevents が有効な場合は必須です。イベントメトリクスのディメンションとして追加するスパンのイベント属性のリストで、スパンとリソース属性の共通ディメンションと設定されたディメンションの上に含まれます。

  • resource_metrics_key_attributes。リソースメトリクスキーマップハッシュを生成するために使用されるリソース属性をフィルターします。リソース属性(プロセス ID など)を変更するとカウンターメトリクスが壊れる場合に使用します。

Span Metricsプロセッサーからスパンメトリクスコネクターへの移行 🔗

spanmetrics コネクターは、スパンプロセッサー の移植ですが、複数の改良と変更点があります。これは、スパンメトリクスコネクターを OpenTelemetry 仕様に近づけ、エクスポーターのロジックに依存しないコンポーネントにするためです。

このコネクターには以下の変更が加えられています:

  • operation メトリクス属性の名前が span.name に変更されました。

  • latency ヒストグラムのメトリクス名が duration に変更されました。

  • 生成されるメトリクス名から _total メトリクスのプリフィックスが削除されました。

  • Prometheus 特有のメトリクスラベルのサニタイズは廃止されました。

その他の改善点には以下が含まれます:

  • スパン期間の測定記録に、OTel 指数ヒストグラムのサポートを追加しました。

  • ミリ秒と秒のヒストグラム単位のサポートを追加しました。

  • メトリクスリソーススコープ属性の生成のサポートを追加しました。spanmetrics コネクターは、スパンリソーススコープの数に対応する数のメトリクスリソーススコープを生成するため、より多くのメトリクスを生成します。これまで、spanmetrics は単一のメトリクスリソーススコープを生成していました。

スパンメトリクスコネクターを Prometheusコンポーネントで使用する 🔗

spanmetrics コネクターは、Prometheusレシーバー などの Prometheus エクスポーターコンポーネントで使用できます。

エクスポーターの機能によっては、例えば、target_info メトリクスを生成するためには、入力されるスパンリソーススコープ属性に、service.name および service.instance.id 属性が含まれている必要があります。

prometheusremotewrite エクスポーターで spanmetrics コネクターを使う例を見てみましょう:

receivers:
  otlp:
    protocols:
      http:
      grpc:

exporters:
  prometheusremotewrite:
    endpoint: http://localhost:9090/api/v1/write
    target_info:
      enabled: true

connectors:
  spanmetrics:
    namespace: span.metrics

service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [spanmetrics]
    metrics:
      receivers: [spanmetrics]
      exporters: [prometheusremotewrite]

これにより、spanmetrics コネクターが、受信したスパンからメトリクスを生成し、それらのメトリクスを Prometheus Remote Write エクスポーターにエクスポートするように設定されます。target_info メトリクスは各リソーススコープに対して生成され、OpenTelemetry メトリクス名と属性は Prometheus の命名規則に準拠するように正規化されます。

例えば、生成されたコール OTel 合計メトリクスは、複数の Prometheus calls_total (カウンタータイプ) 時系列と target_info 時系列をもたらすことができます。以下を参照してください:

target_info{job="shippingservice", instance="...", ...} 1
calls_total{span_name="/Address", service_name="shippingservice", span_kind="SPAN_KIND_SERVER", status_code="STATUS_CODE_UNSET", ...} 142

トラブルシューティング 🔗

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Join the Splunk #observability user group Slack channel to communicate with customers, partners, and Splunk employees worldwide. To join, see Chat groups in the Get Started with Splunk Community manual.

このページは 2025年02月11日 に最終更新されました。