Überwachen des Kafka-Konnektors mit Java Management Extensions (JMX)

Unter diesem Thema wird beschrieben, wie Sie Java Management Extensions (JMX) verwenden, um den Snowflake-Konnektor für Kafka zu überwachen. Kafka Connect bietet vorkonfigurierte JMX-Metriken, die Informationen über den Kafka-Konnektor bereitstellen. Der Snowflake-Konnektor für Kafka bietet mehrere Managed Beans (MBeans), mit denen Sie Metriken über die Kafka-Umgebung erfassen können. Sie können diese Informationen in Drittanbieter-Tools wie Prometheus und Grafana laden.

Die JMX-Funktion ist im Anschluss standardmäßig aktiviert. Um JMX zu deaktivieren, setzen Sie die Eigenschaft jmx auf false.

Wichtig

Snowpipe unterstützt den Kafka-Konnektor, Version 1.6.0 und höher.

Snowpipe Streaming unterstützt den Kafka-Konnektor, Version 2.1.0 und höher.

Unter diesem Thema:

Konfigurieren von JMX im Kafka-Konnektor

JMX ist im Snowflake-Konnektor für Kafka standardmäßig aktiviert. Um JMX in Kafka zu aktivieren, gehen Sie wie folgt vor:

  1. Aktivieren Sie JMX, um eine Verbindung zu Ihrer Kafka-Installation herzustellen:

    • Um JMX-Verbindungen zu einer Kafka-Installation herzustellen, die auf einem Remoteserver ausgeführt wird, setzen Sie die Umgebungsvariable KAFKA_JMX_OPTS in Ihrem Kafka Connect-Startskript:

      export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true
          -Dcom.sun.management.jmxremote.authenticate=false
          -Dcom.sun.management.jmxremote.ssl=false
          -Djava.rmi.server.hostname=<ip_address>
          -Dcom.sun.management.jmxremote.port=<jmx_port>"
      
      Copy

      Wobei:

      • ip_address: Gibt die IP-Adresse Ihrer Kafka Connect-Installation an.

      • jmx_port: Gibt den JMX-Port an, an dem Kafka Connect auf JMX-Verbindungen erwartet.

    • Um JMX-Verbindungen zu Kafka herzustellen, die auf demselben Server ausgeführt werden, setzen Sie die Umgebungsvariable JMX_PORT in Ihrem Kafka-Startskript:

      export JMX_PORT=<port_number>
      
      Copy

      Dabei ist port_number der JMX-Port Ihrer Kafka-Installation.

  2. Starten Sie den Kafka-Konnektor neu.

Verwenden von Managed Beans (MBeans) des Snowflake-Konnektors für Kafka

JMX verwendet MBeans, um Objekte innerhalb von Kafka zu repräsentieren, die überwacht werden können (z. B. Thread-Anzahl, CPU-Auslastung usw.). Der Snowflake-Konnektor für Kafka bietet MBeans für den Zugriff auf vom Konnektor verwaltete Objekte. Mithilfe dieser MBeans können Sie Überwachungs-Dashboards erstellen.

Das allgemeine Format für den Namen des Kafka-Konnektor-MBean-Objekts ist:

snowflake.kafka.connector:connector=connector_name,pipe=pipe_name,category=category_name,name=metric_name

Wobei:

  • connector=connector_name gibt den Namen des in der Kafka-Konfigurationsdatei definierten Konnektors an.

  • pipe=pipe_name gibt das Snowpipe-Objekt an, das zum Erfassen von Daten verwendet wird. Der Kafka-Konnektor definiert Snowpipe-Objekte für jede Partition.

  • category=category_name gibt die MBean-Kategorie an. Jede Kategorie enthält eine Menge von Metriken.

  • name=metric_name gibt den Namen der Metrik an.

In den folgenden Abschnitten sind die Namen der Kategorien und Metriken aufgeführt, die vom Snowflake-Konnektor für Kafka bereitgestellt werden.

Kategorie: file-counts

Metrikname

Datentyp

Beschreibung

file-count-on-stage

long

Die Anzahl der Dateien, die sich derzeit in einem internen Stagingbereich befinden. Dieser Wert wird dekrementiert, nachdem der Bereinigungsprozess der Dateien begonnen hat. Diese Eigenschaft gibt eine Schätzung darüber ab, wie viele Dateien sich derzeit in einem internen Stagingbereich befinden.

file-count-on-ingestion

long

Die Anzahl der Dateien in Snowpipe, die durch Aufrufen der insertFiles-REST-API festgelegt werden. Derzeit gibt es eine Begrenzung von 5.000 Dateien, die über eine einzige REST-API-Anfrage gesendet werden können. Es besteht keine 1:1-Beziehung zwischen der Anzahl der Dateien und der Anzahl der REST-API-Aufrufe. Die Anzahl der Aufrufe der insertFiles-REST-API kann größer sein als dieser Wert. Der Wert dieser Eigenschaft ist 0, wenn es keine weiteren Dateien gibt, die erfasst werden müssen.

file-count-table-stage-ingestion-fail

long

Die Anzahl der Dateien im Tabellen-Stagingbereich, die nicht erfasst werden konnten.

file-count-table-stage-broken-record

long

Die Anzahl der im Tabellen-Stagingbereich vorhandenen Dateien, die zu einem beschädigten Offset gehören.

file-count-purged

long

Die Anzahl der Dateien, die nach der Bestimmung des Erfassungsstatus aus dem internen Stagingbereich gelöscht wurden.

Kategorie: offsets

Metrikname

Datentyp

Beschreibung

processed-offset

long

Ein Offset, der sich auf den letzten Datensatz bezieht, der an den speicherinternen Puffer gesendet wurde.

flushed-offset

long

Ein Offset, der sich auf einen Datensatz bezieht, der in einen internen Stagingbereich geleert wird, nachdem der Schwellenwert des Puffers erreicht wurde. Der Puffer kann seinen Schwellenwert nach Zeit, Anzahl der Datensätze oder Größe erreichen.

committed-offset

long

Ein Offset, der sich auf einen Datensatz bezieht, bei dem die Pre-Commit-API aufgerufen wurde und der die aufgerufene Snowpipe-insertFiles-REST-API aufgerufen hat.

purged-offset

long

Ein Offset, der sich auf einen Datensatz bezieht, der endgültig aus dem internen Stagingbereich gelöscht wird. Diese Zahl ist der Wert des jüngsten Offsets, der endgültig aus dem internen Stagingbereich gelöscht wurde.

Kategorie: buffer

Metrikname

Datentyp

Beschreibung

buffer-size-bytes

long

Gibt auf der Grundlage von Pufferschwellenwerten die Puffergröße (in Bytes) zurück, bevor er in einen internen Stagingbereich geleert wird. Dieser Wert muss nicht mit der Dateigröße übereinstimmen, da Dateien beim Laden in den internen Stagingbereich komprimiert werden.

buffer-record-count

long

Gibt auf der Grundlage von Pufferschwellenwerten die Anzahl der Kafka-Datensätze zurück, die in den Arbeitsspeicher gepuffert werden, bevor der Puffer in einen internen Stagingbereich geleert wird.

Kategorie: latencies

Metrikname

Datentyp

Beschreibung

kafka-lag

long

Die Differenz (in Sekunden) zwischen dem Zeitpunkt, zu dem der Datensatz in Kafka bereitgestellt wird, und dem Zeitpunkt, zu dem der Datensatz in Kafka Connect abgerufen wird. Beachten Sie, dass dieser Wert null sein kann, wenn er innerhalb eines Datensatzes nicht festgelegt wurde.

commit-lag

long

Die Differenz (in Sekunden) zwischen dem Zeitpunkt des Hochladens der Datei in einen internen Stagingbereich und dem Zeitpunkt des Aufrufens der insertFiles-REST-API.

ingestion-lag

long

Die Differenz (in Sekunden) zwischen dem Zeitpunkt, zu dem eine Datei in einen internen Stagingbereich hochgeladen wird, und dem Zeitpunkt, zu dem der Dateierfassungsstatus über die insertReport- oder loadHistoryScan-API rückgemeldet wird.