ヒストグラムデータをSplunk Observability Cloudに取り込む

Prometheus レシーバーを含むさまざまなレシーバーを使用してヒストグラムデータを収集し、OpenTelemetry Collector を使用して Splunk Observability Cloud に送信することができます。

Prometheus レシーバーを含むさまざまなレシーバーを使用してヒストグラムデータを収集し、OpenTelemetry Collector を使用して Splunk Observability Cloud に送信することができます。「Prometheus レシーバ」を参照してください。

Splunk Distribution of OpenTelemetry Collector は、明示的なバケット ヒストグラム メトリックをサポートします。これにより、OTLP/ HTTP エクスポータを使用する場合またはバージョン 0.98 以降では、SignalFx エクスポータを介してヒストグラムメトリックを送信できます。
注意: ヒストグラムデータを正常に送信することが確認されているのは、Splunk Distribution of the OpenTelemetry Collector に含まれている SignalFx エクスポータのみです。ただし、Amazon Distribution of OpenTelemetry(ADOT)の SignalFx エクスポータのバージョンは、パラメータ send_otlp_histogram をサポートしていないため、ヒストグラムデータの送信に使用できません。

SignalFx エクスポータを使用してヒストグラムデータをエクスポートする

Splunk Distribution of the OpenTelemetry Collector の SignalFx エクスポータのバージョンは、パラメータ send_otlp_histograms をサポートしており、ヒストグラムデータを送信するために推奨される方法です。

SignalFx エクスポータは、ヒストグラムバケットデータを保持できます。これを使用して、チャート作成時にメトリクスからさまざまな統計情報(90 パーセンタイルや平均など)を抽出できます。

SignalFx Exporter を使用してヒストグラムデータを Splunk Observability Cloud に送信するには、send_otlp_histograms オプションを true に設定します。例:

YAML
exporters:
  signalfx:
    access_token: "${SPLUNK_ACCESS_TOKEN}"
    api_url: "${SPLUNK_API_URL}"
    ingest_url: "${SPLUNK_INGEST_URL}"
    sync_host_metadata: true
    correlation:
    send_otlp_histograms: true

OTLP/ HTTP エクスポータを使用してヒストグラムデータをエクスポートする

幅広い互換性があるため、OTLP/ HTTP エクスポータは、OTLP 準拠のバックエンドにヒストグラムデータを送信できます。Splunk Observability Cloud は、gRPC ベースの OTLP エクスポータを介したメトリクスの送信をサポートしていないため、OTLP/ HTTP エクスポータを使用する必要があります。
注: OTLP/ HTTP エクスポータはログを送信できますが、Splunk Observability Cloud には送信できません。ログを Splunk Observability Cloud にエクスポートする必要がある場合は、Splunk HTTP Event Collector(HEC)を使用する必要があります。
OLTP/ HTTP エクスポータを使用してヒストグラムデータを Splunk Observability Cloud に送信するには、[metrics_endpoint] および [traces_endpoint] フィールドのエンドポイントを設定します。
CODE
exporters:
  otlphttp:
    metrics_endpoint: https://ingest.<realm>.signalfx.com/v2/datapoint/otlp
    traces_endpoint: https://ingest.<realm>.signalfx.com/v2/trace/otlp
    headers:
      "X-SF-Token": "mytoken"
    tls:
      insecure: true
    timeout: 10s

バケットヒストグラムデータを送信する際のベストプラクティス

Splunk Observability Cloud にバケットヒストグラムデータを送信する場合は、以下のベストプラクティスに従ってください:

  • 累積データを送信する場合を除き、最小値と最大値を送信します。最小値は最大値よりも小さくする必要があります。そうでない場合、データポイントは削除されます。

  • カスタムヒストグラムを送信する場合は、31 未満のバケットを使用します。31 を超えるバケットを持つヒストグラムは削除されます。

  • バケット境界が重複したり、繰り返されたりしていないことを確認します。送信時にバケット境界を順序付けます。

  • 値を 10 進数または固定小数点表記の符号付き整数、浮動小数点数、または数値文字列として送信します。Splunk Observability Cloud はそれらを 64 ビットの整数として保存します。

  • すべてのヒストグラムのバケットの合計が [count] フィールドに等しいこと、およびバケットの境界のサイズがバケットカウントから 1 を引いたものに等しいことを確認します。これらの基準に準拠していないヒストグラムはドロップされます。

  • Prometheus などから累積データを送信する場合は、デルタ集計の一時制を使用します。システムでデルタ一時性を設定する方法については、「デルタ集計の一時性に関する考慮事項」を参照してください。

デルタ集計の一時性に関する考慮事項

累積ヒストグラムを処理する場合は、デルタ集計一時性フラグを設定する必要があります。そうしないと、累積ヒストグラムの最小値と最大値が不足します。これにより、パーセンタイル計算で誤った値が返される可能性があります。

インストルメンテーションでデルタ集計一時性を有効にするには、OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE 環境変数を [delta] に設定します。使用言語の SDK サポートを確認するには、OpenTelemetry Specification リポジトリのコンプライアンス マトリックスを参照してください。

APIを使用してヒストグラムデータを送信する

OpenTelemetry Collector をバイパスする必要がある場合は、インジェスト API の /v2/datapoint/otlp エンドポイントを使用して、ヒストグラムデータを Splunk Observability Cloud に直接送信します。エンドポイントは、 HTTP 経由で Protobufとしてシリアル化された OTLP のデータを受け入れます。gRPC スキームはサポートされていません。

API を使用してヒストグラムメトリックデータを送信する方法については、Splunk Developer Portal の「/datapoint/otlp」を参照してください。

ダッシュボード、関数、チャート、ディテクターの移行

既存のダッシュボード、関数、チャート、ディテクターをヒストグラムに移行するには、以下の手順に従います:

  1. Splunk Distribution of OpenTelemetry Collector バージョン 0.98 以上を使用してヒストグラムデータを送信していることを確認してください。それ以下のバージョンでは、SignalFx エクスポータを使用して OTLP フォーマットのヒストグラムデータを送信できません。

  2. 新しい histogram() 関数を使用するには、チャートを編集します。SignalFlow リファレンスドキュメントの「histogram()」を参照してください。

トラブルシューティング

If you are a Splunk Observability Cloud customer and are not able to see your data in Splunk Observability Cloud, you can get help in the following ways.

Available to Splunk Observability Cloud customers

Available to prospective customers and free trial users

  • Ask a question and get answers through community support at Splunk Answers.

  • Join the Splunk community #observability Slack channel to communicate with customers, partners, and Splunk employees worldwide.