Prometheus Java 用戶端程式庫

簡介

Prometheus Java 用戶端程式庫Prometheus 社群所提供的 Java 度量值程式庫。

Instana 的 com.instana.plugin.java 會自動偵測 Prometheus Java 用戶端程式庫,並在 JVM 儀表板上顯示度量值。

此頁面說明 Prometheus Java 用戶端程式庫以及 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: 將此設為 false ,以停用監視 Prometheus Java 用戶端程式庫。 預設值:true
  • limit: 為了避免監視後端超載,我們限制每個 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。 只會包含符合清單中其中一個正規表示式的度量,並排除所有其他度量。

Monitoring 自訂收集器登錄

依預設, Prometheus Java 用戶端程式庫會向廣域 CollectorRegistry.defaultRegistry登錄所有度量。 在該情況下, Instana 會自動尋找已登錄的度量值,並依預設監視它們。

不過,您可能已在程式碼中向自訂 CollectorRegistry 登錄您的度量值。 在該情況下,您需要包含一行程式碼,以通知 Instana 您的自訂收集器登錄。 Instana 提供基於該目的的 prometheus-java-library-integration 相依關係,文件可在 github.com/instana/prometheus-java-library-integration上找到。

與 Micrometer 整合

您可能不會直接使用 Prometheus Java 用戶端程式庫 ,而是透過 Micrometer 的 Prometheus Meter Registry間接使用。 如果您想要保留該設定,並查看 Instana 中的 Prometheus 度量值,您可以使用我們的 prometheus-java-library-integration ,透過 Instana 來監視 PrometheusMeterRegistry 。 文件可在 github.com/instana/prometheus-java-library-integration上找到。