ヒストグラムデータを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 に設定します。例:

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] フィールドのエンドポイントを設定します。
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()」を参照してください。

トラブルシューティング

__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

  • ___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________

  • ____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______