Exportateur Kafka pour Prometheus. Pour d'autres métriques de Kafka, jetez un œil à l'exportateur JMX.
Prise en charge d'Apache Kafka version 0.10.1.0 (et versions ultérieures).
Le binaire peut être téléchargé à partir de la page Versions.
make
make docker
docker pull danielqsj/kafka-exporter:latest
Il peut être utilisé directement au lieu de devoir créer l’image vous-même. (Docker Hub danielqsj/kafka-exportateur)
kafka_exporter --kafka.server=kafka:9092 [--kafka.server = another-server ...]
docker run -ti --rm -p 9308:9308 danielqsj/kafka-exporter --kafka.server=kafka:9092 [--kafka.server=another-server ...]
faire un fly docker-compose.yml
services:
kafka-exporter:
image: danielqsj/kafka-exporter
command: ["--kafka.server=kafka:9092", "[--kafka.server=another-server ...]"]
ports:
- 9308:9308
puis exécutez-le
docker-compose up -d
Cette image est configurable à l'aide de différents drapeaux
Nom du drapeau | Défaut | Description |
---|---|---|
kafka.serveur | kafka:9092 | Adresses (hôte: port) du serveur Kafka |
kafka.version | 2.0.0 | Version courtier Kafka |
sasl.enabled | FAUX | Connectez-vous en utilisant SASL/PLAIN |
sasl.poignée de main | vrai | Définissez cette valeur sur false uniquement si vous utilisez un proxy SASL non Kafka |
sasl.nom d'utilisateur | Nom d'utilisateur SASL | |
sasl.mot de passe | Mot de passe utilisateur SASL | |
sasl.mécanisme | Le mécanisme SASL peut être simple, scram-sha512, scram-sha256 | |
sasl.nom-service | Nom du service lors de l'utilisation de l'authentification Kerberos | |
sasl.kerberos-config-path | Chemin de configuration Kerberos | |
sasl.realm | Royaume Kerberos | |
sasl.keytab-chemin | Chemin du fichier de clés Kerberos | |
sasl.kerberos-auth-type | Type d'authentification Kerberos. Soit 'keytabAuth' ou 'userAuth' | |
tls.activé | FAUX | Connectez-vous à Kafka en utilisant TLS |
tls.nom-serveur | Utilisé pour vérifier le nom d'hôte sur les certificats renvoyés, sauf si tls.insecure-skip-tls-verify est indiqué. Le nom du serveur Kafka doit être indiqué | |
fichier tls.ca | Le fichier d'autorité de certification facultatif pour l'authentification du client Kafka TLS | |
fichier tls.cert | Le fichier de certificat facultatif pour l'authentification du client Kafka | |
fichier tls.key | Le fichier de clé facultatif pour l'authentification du client Kafka | |
tls.insecure-skip-tls-verify | FAUX | Si c'est vrai, la validité du certificat du serveur ne sera pas vérifiée |
serveur.tls.enabled | FAUX | Activer TLS pour le serveur Web |
serveur.tls.mutual-auth-enabled | FAUX | Activer l'authentification mutuelle du client TLS |
fichier server.tls.ca | Le fichier de l'autorité de certification pour le serveur Web | |
serveur.tls.cert-file | Le fichier de certificat pour le serveur Web | |
serveur.tls.fichier-clé | Le fichier clé du serveur web | |
sujet.filter | .* | Regex qui détermine les sujets à collecter |
sujet.exclure | ^$ | Regex qui détermine les sujets à exclure |
groupe.filtre | .* | Regex qui détermine quels groupes de consommateurs collecter |
groupe.exclure | ^$ | Regex qui détermine les groupes de consommateurs à exclure |
web.écouter-adresse | :9308 | Adresse à écouter pour l'interface web et la télémétrie |
chemin de télémétrie web. | /métrique | Chemin sous lequel exposer les métriques |
log.enable-sarama | FAUX | Activer la journalisation Sarama |
utiliser.consumelag.zookeeper | FAUX | si vous devez utiliser un groupe de zookeeper |
zookeeper.server | hôte local : 2181 | Adresse (hôtes) du serveur zookeeper |
kafka.labels | Nom du cluster Kafka | |
actualiser.métadonnées | années 30 | Intervalle d'actualisation des métadonnées |
offset.show-all | vrai | Afficher ou non le décalage/décalage pour tous les groupes de consommateurs, sinon afficher uniquement les groupes de consommateurs connectés. |
simultané.activer | FAUX | Si c'est vrai, tous les scraps déclencheront des opérations kafka, sinon ils partageront les résultats. AVERTISSEMENT : cela devrait être désactivé sur les grands clusters |
sujet.workers | 100 | Nombre de travailleurs thématiques |
verbosité | 0 | Niveau de journalisation de la verbosité |
Les valeurs booléennes sont gérées de manière unique par Kingpin. Chaque indicateur booléen aura un complément négatif : --
et --no-
.
Par exemple:
Si vous devez désactiver sasl.handshake
, vous pouvez ajouter l'indicateur --no-sasl.handshake
Documents sur les métriques Prometheus exposées.
Pour plus de détails sur les métriques sous-jacentes, veuillez consulter Apache Kafka.
Détails des métriques
Nom | Informations exposées |
---|---|
kafka_brokers | Nombre de courtiers dans le cluster Kafka |
Exemple de sortie de métriques
# HELP kafka_brokers Number of Brokers in the Kafka Cluster.
# TYPE kafka_brokers gauge
kafka_brokers 3
Détails des métriques
Nom | Informations exposées |
---|---|
kafka_topic_partitions | Nombre de partitions pour ce sujet |
kafka_topic_partition_current_offset | Décalage actuel d'un courtier au sujet/partition |
kafka_topic_partition_oldest_offset | Décalage le plus ancien d'un courtier au sujet/partition |
kafka_topic_partition_in_sync_replica | Nombre de répliques synchronisées pour cette rubrique/partition |
kafka_topic_partition_leader | ID du courtier leader de ce sujet/partition |
kafka_topic_partition_leader_is_preferred | 1 si le sujet/la partition utilise le courtier préféré |
kafka_topic_partition_replicas | Nombre de répliques pour ce sujet/partition |
kafka_topic_partition_under_replicated_partition | 1 si le sujet/partition est sous répliqué |
Exemple de sortie de métriques
# HELP kafka_topic_partitions Number of partitions for this Topic
# TYPE kafka_topic_partitions gauge
kafka_topic_partitions{topic="__consumer_offsets"} 50
# HELP kafka_topic_partition_current_offset Current Offset of a Broker at Topic/Partition
# TYPE kafka_topic_partition_current_offset gauge
kafka_topic_partition_current_offset{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_oldest_offset Oldest Offset of a Broker at Topic/Partition
# TYPE kafka_topic_partition_oldest_offset gauge
kafka_topic_partition_oldest_offset{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_in_sync_replica Number of In-Sync Replicas for this Topic/Partition
# TYPE kafka_topic_partition_in_sync_replica gauge
kafka_topic_partition_in_sync_replica{partition="0",topic="__consumer_offsets"} 3
# HELP kafka_topic_partition_leader Leader Broker ID of this Topic/Partition
# TYPE kafka_topic_partition_leader gauge
kafka_topic_partition_leader{partition="0",topic="__consumer_offsets"} 0
# HELP kafka_topic_partition_leader_is_preferred 1 if Topic/Partition is using the Preferred Broker
# TYPE kafka_topic_partition_leader_is_preferred gauge
kafka_topic_partition_leader_is_preferred{partition="0",topic="__consumer_offsets"} 1
# HELP kafka_topic_partition_replicas Number of Replicas for this Topic/Partition
# TYPE kafka_topic_partition_replicas gauge
kafka_topic_partition_replicas{partition="0",topic="__consumer_offsets"} 3
# HELP kafka_topic_partition_under_replicated_partition 1 if Topic/Partition is under Replicated
# TYPE kafka_topic_partition_under_replicated_partition gauge
kafka_topic_partition_under_replicated_partition{partition="0",topic="__consumer_offsets"} 0
Détails des métriques
Nom | Informations exposées |
---|---|
kafka_consumergroup_current_offset | Décalage actuel d'un groupe de consommateurs au niveau du sujet/partition |
kafka_consumergroup_lag | Décalage approximatif actuel d'un groupe de consommateurs au sujet/partition |
kafka_consumergroupzookeeper_lag_zookeeper | Décalage approximatif actuel (gardien de zoo) d'un groupe de consommateurs au sujet/partition |
Pour pouvoir collecter les métriques kafka_consumergroupzookeeper_lag_zookeeper
, vous devez définir les indicateurs suivants :
use.consumelag.zookeeper
: activer la collecte du décalage de consommation de zookeeperzookeeper.server
: adresse de connexion à zookeeperExemple de sortie de métriques
# HELP kafka_consumergroup_current_offset Current Offset of a ConsumerGroup at Topic/Partition
# TYPE kafka_consumergroup_current_offset gauge
kafka_consumergroup_current_offset{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} -1
# HELP kafka_consumergroup_lag Current Approximate Lag of a ConsumerGroup at Topic/Partition
# TYPE kafka_consumergroup_lag gauge
kafka_consumergroup_lag{consumergroup="KMOffsetCache-kafka-manager-3806276532-ml44w",partition="0",topic="__consumer_offsets"} 1
ID du tableau de bord Grafana : 7589, nom : Présentation de l'exportateur Kafka.
Pour plus de détails sur le tableau de bord, veuillez consulter Présentation de l'exportateur Kafka.
Si vous aimez Kafka Exporter, donnez-moi une étoile. Cela aidera davantage de personnes à connaître Kafka Exporter.
N'hésitez pas à m'envoyer des demandes de tirage.
Merci à ces personnes formidables :
Votre don m'encouragera à continuer d'améliorer Kafka Exporter. Soutenez le don Alipay.
Le code est sous licence Apache License 2.0.