Prometheus・エクスポーター

Prometheus エクスポータモニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください

Splunk Distribution of OpenTelemetry Collectorは、Prometheus Exporterエンドポイントからすべてのメトリクスタイプを読み取るために、Smart Agentレシーバーと prometheus-exporter モニタータイプを使用します。

Prometheus Exporter は、Prometheus 以外のシステムから統計情報を取得し、Prometheus メトリクスに変換するソフトウェアです。Prometheus メトリクスタイプの説明については、「メトリクスタイプ」を参照してください。

このモニターはKubernetes、Linux、Windowsで利用できます。

メリット

インテグレーションを設定すると、これらの機能にアクセスできるようになります:

インストール

このインテグレーションを導入するには、以下の手順に従ってください:

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

  2. [設定] セクションの説明に従ってインテグレーションを設定します。

  3. Splunk Distribution of OpenTelemetry Collector を再起動します。

設定

Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:

  1. Smart Agent レシーバーを設定ファイルに含めます。

  2. レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。

このインテグレーションを有効にするには、Collector構成に以下を追加します:

receivers:
  smartagent/prometheus-exporter:
    type: prometheus-exporter
    discoveryRule: port >= 9100 && port <= 9500 && container_image =~ "exporter"
    extraDimensions:
       metric_source: prometheus
    ...  # Additional config

次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:

service:
  pipelines:
    metrics:
      receivers: [smartagent/prometheus-exporter]

Splunk Distribution of OpenTelemetry Collector が既存の環境をどのように統合し、補完できるかを示す具体的な使用例については、構成例を参照してください。

OTel Collector が Splunk Enterprise と既存の Prometheus デプロイメントでどのように動作するかの例については、GitHub の Prometheus フェデレーションエンドポイントの例を参照してください。

設定オプション

次の表は、prometheus-exporter モニターの設定オプションを示します:

オプション

必須

タイプ

説明

httpTimeout

いいえ

int64

読み取りと書き込みの両方の操作に対する HTTP タイムアウト時間。これは、

func ParseDurationが受け付ける期間文字列

username

いいえ

string

各リクエストで使用される Basic Auth ユーザー名 (ある場合)。

password

いいえ

string

各リクエストで使用するBasic Authパスワード (ある場合)。

useHTTPS

いいえ

bool

true の場合、エージェントはサーバーへの接続に

プレーン HTTP の代わりに HTTPS を使用します。(デフォルト:false

httpHeaders

いいえ

map of strings

HTTP ヘッダー名と値のマップ。 同じメッセージヘッダーの

カンマ区切りの複数の値もサポートしています。

skipVerify

いいえ

bool

useHTTPSが true で、このオプションも true である場合、

エクスポータの TLS 証明書は検証されません。(デフォルト:false

caCertPath

いいえ

string

TLS証明書に署名したCA証明書へのパス。

skipVerifyfalse に設定されている場合は不要です。

clientCertPath

いいえ

string

TLSが必要な接続に使用するクライアントTLS証明書へのパス

clientKeyPath

いいえ

string

TLSが必要な接続に使用するクライアントTLSキーへのパス

host

はい

string

エクスポーターのホスト

port

はい

integer

エクスポーターのポート

useServiceAccount

いいえ

bool

認証にポッドサービスアカウントを使用します。(デフォルト:

false

metricPath

いいえ

string

エクスポーター・サーバー上のメトリクス・エンドポイントへのパス。通常は

/metrics です(デフォルト)。(デフォルト:/metrics

sendAllMetrics

いいえ

bool

Prometheusエクスポーターから出力されるすべてのメトリクスを

フィルタリングせずに送信します。このオプションは、Prometheus エクスポータモニターを直接使用する場合には、組み込みのフィルタリングがないため効果がなく、他のモニターに埋め込む場合にのみ効果があります。(デフォルト:false

認証

基本的なHTTP認証には、usernamepassword オプションを使用します。

Kubernetes 上で、監視対象サービスに認証が必要な場合は、useServiceAccount オプションを使用して、接続時にエージェントのサービスアカウントを使用します。Smart Agent のサービスアカウントに、監視対象サービスに対する十分な権限があることを確認してください。

メトリクス

このインテグレーションで利用可能なメトリクスはありません。

Prometheusのメトリクス法換算の詳細

これがPrometheusのメトリクスの変換方法です:

  • ゲージは Splunk Infrastructure Monitoring ゲージに直接変換されます。

  • カウンターは、Infrastructure Monitoring の累積カウンターに直接変換されます。

  • タイプされていないメトリクスは、Infrastructure Monitoring ゲージに直接変換されます。

  • サマリー・メトリクスは、3つの異なるメトリクスに変換されます。<basename> はメトリクスのルート名です:

    • 合計カウントは、<basename>_count と呼ばれる累積カウンターに変換されます。

    • 合計値は、<basename> と呼ばれる累積カウンターに変換されます。

    • 各分位値は、<basename>_quantile と呼ばれるゲージに変換され、分位値を指定する quantile と呼ばれるディメンションを含みます。

  • ヒストグラム・メトリクスは、3つの異なるメトリクスに変換されます。<basename> は、メトリクスのルート名です:

    • 合計カウントは、<basename>_count と呼ばれる累積カウンターに変換されます。

    • 合計値は、<basename> と呼ばれる累積カウンターに変換されます。

    • 各ヒストグラムのバケットは、<basename>_bucket と呼ばれる累積カウンターに変換され、そのバケット内の最大値を指定する upper_bound と呼ばれるディメンションを含みます。このメトリクスは、上限以下の値を持つイベントの数を指定します。

すべてのPrometheusラベルは、Infrastructure Monitoringのディメンションに直接変換されます。

これはサービスディスカバリーをサポートしているため、port >= 9100 && port <= 9500 && containerImage =~ "exporter"のようなディスカバリールールを設定することができます。これは、標準的なエクスポータポートの範囲内にある "exporter" という単語が含まれるコンテナイメージでエクスポータを実行していることを想定しています。

Kubernetesでは、Pod specで定義されているコンテナポート名でマッチングを試みることもできます。これは、 k8s-apiオブザーバーのディスカバリールールの name 変数です。

エクスポーターは冗長になりがちなので、ここでフィルターをかけると非常に便利です。

トラブルシューティング

ログには errornet/http: HTTP/1.xtransportconnectionbroken:malformedHTTPresponse が含まれています

net/http: HTTP/1.x transport connection broken: malformed HTTP response net/http: HTTP/1.x transport connection broken: malformed HTTP response

解決策: useHTTPS で HTTPS を有効にします。

ログには errorforbidden:User\"system:anonymous\"cannotgetpath\"/metrics\" が含まれています

forbidden: User \"system:anonymous\" cannot get path \"/metrics\" forbidden: User \"system:anonymous\" cannot get path \"/metrics\"

解決方法: useServiceAccount をアクティブにして、Splunk Distribution of OpenTelemetry Collector が実行されているサービスアカウントに必要なアクセス許可があることを確認します。

サポートを受ける

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

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

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

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