Prometheus-Java-Clientbibliothek

Erfahren Sie mehr über die „ Prometheus “ und die „ Java “-Client-Bibliothek.

Einführung

Die Bibliothek „ Prometheus Java client “ ist eine Metrikbibliothek für „ Java “, die von der „ Prometheus “-Community bereitgestellt wird.

Instana erkennt die com.instana.plugin.java Client-Bibliothek „ Prometheus “ ( Java ) automatisch, und die Metriken werden im Dashboard „ JVM “ angezeigt.

Auf dieser Seite werden die automatische Instrumentierung der Bibliothek „ Prometheus Java client “ sowie die Messwert-Registrierung „ Prometheus “ von „ Micrometer “ beschrieben. Wenn Sie nach einer Möglichkeit suchen, Metriken über HTTP aus einem „ Prometheus “-Exporter zu extrahieren oder den „ Instana “-Agenten als Remote-Schreib-Endpunkt für „ Prometheus “ zu konfigurieren, lesen Sie bitte Prometheus.

Screenshot: Prometheus Java Client-Kennzahlen

Konfiguration

Alle Konfigurationsoptionen sind optional. Instana überwacht Messdaten aus der Prometheus Java-Clientbibliothek mit angemessenen Standardwerten, ohne dass eine manuelle Konfiguration erforderlich ist.

Sie können die Standardwerte jedoch überschreiben, indem Sie einen Abschnitt prometheusMetricCollection unter com.instana.plugin.java in der Datei configuration.yaml Ihres Agenten hinzufügen, wie im folgenden Beispiel dargestellt:

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

Die folgenden Konfigurationsoptionen werden unterstützt:

  • enabled: Setzen Sie diese Einstellunge auf false, um die Überwachung der Prometheus-Java-Clientbibliothek zu inaktivieren. Standardwert: true.
  • limit: Um eine Überlastung des Überwachungs-Back-End zu vermeiden, wird die Anzahl der Messdaten pro JVM begrenzt. Sie können diese Konfigurationsoption verwenden, um den Grenzwert zu ändern. Standardwert: 200.
  • pollIntervalSeconds: Im Allgemeinen bietet Instana 1 Sekunde für die Auflösung für Messdaten. Möglicherweise haben Sie jedoch eigene benutzerdefinierte Callbacks in der Client-Bibliothek „ Prometheus “ ( Java ) registriert, sodass bei jeder Abfrage Ihre benutzerdefinierten Callbacks aufgerufen werden. Um eine mögliche Überlastung von benutzerdefinierten Callbacks zu vermeiden, haben wir das Abfrageintervall für Messdaten von der Prometheus-Java-Client-Bibliothek standardmäßig auf 15 Sekunden erhöht. Verwenden Sie diese Konfigurationsoption, um das Abfrageintervall zu erhöhen oder zu verringern. Der Standardwert ist 15.
  • excludeMetricNamesStartingWith: Liste der Präfixe für Messdatennamen, die nicht überwacht werden sollen. Beispiel: Die oben aufgeführte Konfiguration würde alle Messdaten ausschließen, die mit jvm beginnen, und alle Messdaten, die mit process beginnen, sodass Sie die folgenden Messdaten nicht sehen würden:
    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: Dies ist eine leistungsfähigere Alternative zu excludeMetricNamesStartingWith: Alle Messdaten, die mit einer der Liste von regulären Ausdrücken übereinstimmen, werden ausgeschlossen. Der reguläre Ausdruck wird nicht nur auf den Metriknamen, sondern auf die vollständige Metrikzeichenfolge mit Beschriftungen wie counter_total{region="eu-central-1"}angewendet. Der reguläre Ausdruck ist nicht verankert, d. h. er kann mit einer beliebigen Stelle in der Mitte der Zeichenfolge übereinstimmen. Beispiel: Wenn Sie eu-central-1 in der Liste excludeMetricsMatching angeben, wird der Messwert counter_total{region="eu-central-1"} ausgeschlossen.
  • includeMetricsMatching: Entsprechung zu excludeMetricsMatching. Es werden nur Messdaten eingeschlossen, die mit einem der regulären Ausdrücke in der Liste übereinstimmen. Alle anderen Messdaten werden ausgeschlossen.

Angepasste Collector-Registrys überwachen

Standardmäßig registriert die Prometheus-Java-Clientbibliothek alle Messdaten bei einer globalen CollectorRegistry.defaultRegistry. In diesem Fall findet Instana die registrierten Messdaten automatisch und überwacht sie standardmäßig.

Möglicherweise haben Sie jedoch Ihre Messdaten mit einer angepassten CollectorRegistry in Ihrem Code registriert. In diesem Fall müssen Sie eine Codezeile einschließen, um Instana über Ihre angepasste Collector-Registry zu informieren. Instana bietet zu diesem Zweck eine prometheus-java-library-integration Abhängigkeit an; die Dokumentation dazu finden Sie unter github.com/instana/prometheus-java-library-integration.

Integration in Micrometer

Möglicherweise nutzen Sie die Client-Bibliothek „ Prometheus “ ( Java ) nicht direkt, sondern indirekt über die Meter-Registrierung von „ Micrometer “ ( Prometheus ). Wenn Sie diese Konfiguration beibehalten und die Prometheus-Messdaten in Instana anzeigen möchten, können Sie mit der prometheus-java-library-integration die PrometheusMeterRegistry mit Instana überwachen. Die Dokumentation finden Sie unter github.com/instana/prometheus-java-library-integration.