Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » Collector コンポーネント » Collector components: Connectors » Span Metrics connector

Span Metrics connector 🔗

The Splunk Distribution of the OpenTelemetry Collector uses the Span Metrics connector to aggregate requests, errors and duration (R.E.D) OpenTelemetry metrics from span data.

As an exporter, the supported pipeline type is traces. As a receiver, the supported pipeline type is metrics. See パイプラインでデータを処理する for more information.

Overview 🔗

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

Requests 🔗

リクエストカウントは、 エラーを含む一意のディメンションセットごとに見られるスパンの数として計算されます。例えば、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 🔗

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

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

Common dimensions for metrics 🔗

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

  • service.name

  • span.name

  • span.kind

  • status.code

はじめに 🔗

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

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

  1. Configure the connector as described in the next section.

  2. Collector を再起動します。

サンプル構成 🔗

To activate the resource processor, 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]

設定オプション 🔗

The following settings can be optionally configured:

  • 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 など)を変更するとカウンターメトリクスが壊れる場合に使用します。

Migrate from the Span Metrics processor to the Span Metrics connector 🔗

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

The connector comes with the following changes:

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

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

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

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

Other improvements include:

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

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

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

Use the Span Metrics connector with Prometheus components 🔗

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

設定 🔗

The following table shows the configuration options for the spanmetrics connector:

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

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

Splunk Observability Cloudをご利用のお客様

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

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

  • Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。

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