Prometheus Java クライアント・ライブラリー

Prometheus の Java クライアントライブラリについて詳しく知る。

概要

Prometheus Java client ライブラリは、 Prometheus コミュニティが提供する Java のメトリクスライブラリです。

Instana は com.instana.plugin.java 、 Prometheus の Java クライアントライブラリを自動的に検出し、メトリクスは JVM ダッシュボードに表示されます。

このページでは、 Prometheus Java client ライブラリの自動インスツルメンテーションと、 Micrometer の Prometheus メータレジストリについて説明します。 HTTP を使用して Prometheus エクスポーターからメトリクスをスクレイピングする方法、または Instana エージェントを Prometheus のリモート書き込みエンドポイントとして設定する方法については、 Prometheus を参照してください。

スクリーンショット: Prometheus Java クライアント指標

構成

すべての構成オプションは任意指定です。 Instana は、妥当なデフォルト値を使用して Prometheus Java クライアント・ライブラリーからのメトリックをモニターします。手動の構成は必要ありません。

ただし、以下の例に示すように、エージェントの configuration.yaml ファイルで、com.instana.plugin.java の下に prometheusMetricCollection セクションを追加することで、デフォルトを上書きできます。

com.instana.plugin.java:
  prometheusMetricCollection:
    enabled: true
    limit: 200
    pollIntervalSeconds: 15
    excludeMetricNamesStartingWith:
      - jvm
      - process
    excludeMetricsMatching:
      - eu-central-1

以下の構成オプションがサポートされます。

  • enabled: Prometheus Java クライアント・ライブラリーのモニタリングを無効にするには、これを false に設定します。 デフォルト: true
  • limit: IBM は、モニター・バックエンドの過負荷を回避するために、JVM ごとのメトリックの数を制限しています。 この構成オプションを使用して、制限を変更できます。 デフォルト: 200
  • pollIntervalSeconds: 通常、Instana がメトリックの解決に提供するのは 1 秒です。 ただし、 Prometheus の Java クライアントライブラリに独自のカスタムコールバックを登録している場合、ポーリングが行われるたびにそのカスタムコールバックが呼び出されることになります。 カスタム・コールバックによる過負荷を回避するため、Prometheus Java クライアント・ライブラリーからのメトリックのポーリング間隔はデフォルトで 15 秒に増やされています。 ポーリング間隔を増減するには、この構成オプションを使用してください。 デフォルト: 15
  • excludeMetricNamesStartingWith: モニター対象にしてはならないメトリック名接頭部のリスト。 例えば、上記の構成では jvm で始まるすべてのメトリックと、process で始まるすべてのメトリックが除外されるため、以下のメトリックは表示できません。
    process_cpu_seconds_total 0.99
    process_open_fds 23.0
    jvm_threads_state{state="RUNNABLE"} 7.0
    jvm_threads_state{state="WAITING",} 3.0
    ```* `includeMetricNamesStartingWith`: Counterpart to `excludeMetricNamesStartingWith`. Only metrics starting with one of these prefixes will be included.
    
  • excludeMetricsMatching: これは、excludeMetricNamesStartingWith に代わるさらに強力なメトリックです。正規表現のリストのいずれかに一致するすべてのメトリックが除外されます。 正規表現式は、メトリック名だけでなく、counter_total{region="eu-central-1"} などのラベルを含むフルメトリック・ストリングに適用されます。 正規表現は固定されません。つまり、ストリングの途中のどこにでも一致します。 例えば、excludeMetricsMatching リストで eu-central-1 を指定すると、メトリック counter_total{region="eu-central-1"} は除外されます。
  • includeMetricsMatching: excludeMetricsMatching と対をなすものです。 リスト内のいずれかの正規表現に一致するメトリックのみが含まれ、他のメトリックはすべて除外されます。

カスタム・コレクター・レジストリーのモニタリング

デフォルトでは、Prometheus Java クライアント・ライブラリーは、グローバル CollectorRegistry.defaultRegistry ですべてのメトリックを登録します。 その場合、Instana は登録されたメトリックを自動的に検出し、デフォルトでそれらをモニターします。

ただし、コード内でカスタム CollectorRegistry にメトリックを登録している場合があります。 その場合は、カスタム・コレクター・レジストリーについて Instana に通知するコード行を組み込む必要があります。 Instana そのための依存 prometheus-java-library-integration 関係を提供しています。ドキュメントは github.com/instana/prometheus-java-library-integration でご覧いただけます。

Micrometer との統合

Prometheus の Java クライアントライブラリを直接使用するのではなく、 Micrometer の Prometheus メータレジストリを介して間接的に使用する可能性があります。 そのセットアップを保持し、Prometheus メトリックを Instana で表示するには、prometheus-java-library-integration を使用して、Instana で PrometheusMeterRegistry をモニターすることができます。 ドキュメントは github.com/instana/prometheus-java-library-integration でご覧いただけます。