Surveillance des métriques de performances Kafka avec un middleware

Surveillance des métriques de performances Kafka avec un middleware

Les organisations sont souvent confrontées à l’afflux massif de données qui inondent quotidiennement leurs systèmes. Ce déluge constitue un obstacle important au traitement, à la gestion et à l’analyse efficaces des informations en temps réel.

Kafka apparaît comme une solution à ce problème, offrant une plateforme robuste conçue pour gérer le flux continu de données. Son architecture facilite la transmission fluide des données entre les systèmes, permettant aux organisations d'ingérer, de traiter et de distribuer des données à grande échelle avec une tolérance aux pannes et une faible latence.

Dans cet article, nous plongerons dans le monde de Kafka, en explorant son architecture et ses métriques essentielles pour surveiller les performances à l'aide du Middleware .

Qu’est-ce que Kafka ?

Kafka est une plate-forme de streaming distribuée open source conçue pour créer des pipelines de données et des applications de streaming en temps réel. Il fournit une architecture unifiée, à haut débit et tolérante aux pannes pour la gestion des flux de données.

Les utilisateurs utilisent Kafka pour sa capacité à traiter, stocker et transmettre efficacement de gros volumes de données en temps réel, ce qui le rend idéal pour des cas d'utilisation tels que les architectures événementielles, l'analyse en temps réel, l'agrégation de journaux et les systèmes de messagerie.

Comprendre l'architecture Kafka

L'architecture de Kafka comprend plusieurs composants clés qui fonctionnent ensemble pour fournir une plate-forme de streaming distribuée évolutive, tolérante aux pannes et à haut débit. À la base, l'architecture Kafka comprend des courtiers, des sujets, des partitions, des producteurs, des consommateurs et ZooKeeper.

Monitoring Kafka Performance Metrics with Middleware- Understanding the Kafka architecture
  • Courtiers : Gérer le stockage et les échanges de données.
  • Sujets : Catégoriser logiquement les flux de données.
  • Partitions  : distribuez les données pour l'évolutivité, répliquées pour la tolérance aux pannes.
  • Producteurs  : publiez des enregistrements dans des sujets.
  • Consommateurs  : Abonnez-vous pour consommer des enregistrements.
  • ZooKeeper : Coordonne les tâches de gestion du cluster.

Cette configuration permet à Kafka de gérer efficacement des flux de données à haut débit et tolérants aux pannes, en prenant en charge l'analyse en temps réel, les architectures basées sur les événements et les systèmes de messagerie.

Monitoring Kafka performance metrics with Middleware - Kafka Architecture 2

Pourquoi devrions-nous surveiller Kafka ?

Les organisations ont du mal à trouver des solutions fiables et évolutives capables de gérer efficacement de grandes quantités de données. Les systèmes traditionnels échouent souvent face à de telles demandes, entraînant des goulots d'étranglement, des problèmes de latence et des contraintes d'évolutivité.

Kafka relève ces défis en fournissant une plateforme de streaming distribuée capable de traiter et de gérer des flux de données à grande échelle en temps réel.

  • Optimisation des performances : la surveillance de Kafka permet d'identifier en temps opportun les goulots d'étranglement, les problèmes de latence et les contraintes d'évolutivité, permettant aux organisations d'optimiser les performances et d'assurer un traitement fluide des données.
  • Détection des pannes : la surveillance proactive permet de détecter rapidement des problèmes tels que les défaillances du courtier ou le retard de réplication, minimisant ainsi le risque de perte de données et d'interruptions de service.
  • Planification de l'évolutivité : Kafka en analysant les métriques liées à l'utilisation des ressources et au débit, les organisations peuvent évaluer les exigences d'évolutivité et planifier les mises à niveau de capacité si nécessaire.
  • Efficacité des ressources : la surveillance aide à optimiser l'allocation des ressources au sein des clusters Kafka, à réduire les coûts opérationnels et à améliorer le retour sur investissement.
  • Sécurité et conformité : la surveillance des mesures liées à la sécurité garantit l'intégrité et la confidentialité des données traitées par Kafka, aidant ainsi les organisations à répondre aux exigences de conformité et à prévenir les failles de sécurité.
  • Informations opérationnelles : l'analyse des métriques historiques fournit des informations précieuses sur le comportement du cluster Kafka, permettant une prise de décision éclairée et des stratégies d'optimisation à long terme.

Top 4 des métriques Kafka à surveiller

Avec Kafka, de nombreuses mesures peuvent avoir un impact sur les performances, mais il est essentiel de se concentrer sur les indicateurs clés. Nous mettons ici en évidence les principales mesures Kafka essentielles à la surveillance et à l'optimisation de la santé et de l'efficacité de votre déploiement.

1. Indicateurs du courtier Kafka

Les métriques du courtier Kafka font référence aux indicateurs de performance des courtiers Kafka individuels au sein d'un cluster. Ces mesures fournissent des informations sur la santé, l'utilisation des ressources et l'efficacité opérationnelle de chaque courtier.

Raisons de surveiller

  • La surveillance des métriques des courtiers permet de garantir que les courtiers Kafka sont disponibles et réactifs, minimisant ainsi les temps d'arrêt et les interruptions de service.
  • En surveillant les mesures d'utilisation des ressources, les organisations peuvent optimiser l'allocation des ressources et éviter la surcharge ou la sous-utilisation des courtiers Kafka.
  • La surveillance des métriques du courtier Kafka permet aux organisations d'identifier et de résoudre les goulots d'étranglement en matière de performances, tels qu'une utilisation élevée du processeur ou une latence du disque, garantissant ainsi un traitement fluide des données.

Indicateurs clés à surveiller

l'utilisation du processeur

Name:kafka.server:type=KafkaServer,name=BrokerTopicMetrics.BrokerTopicMetrics:AllTopicsBytesInPerSec

L'utilisation du processeur reflète le pourcentage de ressources CPU utilisées par un courtier Kafka pour traiter les demandes et exécuter des tâches. La surveillance de l'utilisation du processeur permet d'identifier les goulots d'étranglement de traitement, permettant ainsi l'optimisation des configurations Kafka et la mise à l'échelle des ressources.

Utilisation du disque

Name: kafka.server:type=Log,name=Size

Qu'est-ce que c'est : L'utilisation du disque indique la quantité d'espace disque utilisée par Kafka pour stocker les journaux de messages et les fichiers d'index. La surveillance de l'utilisation du disque évite l'épuisement de l'espace disque, garantissant ainsi une ingestion et une conservation ininterrompues des données.

Métriques du réseau

Name: kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent

Les métriques du réseau incluent des indicateurs tels que le débit et le trafic, reflétant les performances du réseau. La surveillance des métriques du réseau détecte les anomalies, les congestions et garantit une communication fluide entre les courtiers Kafka et les clients.

Métriques de partition

Name: kafka.server:type=ReplicaManager,name=PartitionCount

Les métriques de partition fournissent des informations sur l'état des partitions Kafka, y compris l'ISR et le décalage. La surveillance des métriques de partition garantit la réplication, la distribution et la haute disponibilité des données, minimisant ainsi la perte de données pour les consommateurs.

2. Paramètres du producteur

Les mesures des producteurs Kafka englobent des indicateurs de performance qui suivent le comportement et l'efficacité des producteurs Kafka. Ces métriques fournissent des informations sur le taux de production des messages, la latence de livraison des messages et les occurrences d'erreurs lors de la transmission des messages.

Raisons de surveiller

  • La surveillance des paramètres des producteurs permet aux organisations d'évaluer l'efficacité et le débit de la production de messages, garantissant ainsi des performances optimales des producteurs Kafka.
  • En suivant les mesures liées à la latence de livraison des messages, les organisations peuvent identifier et résoudre les problèmes susceptibles d'entraîner des retards dans la transmission des messages, garantissant ainsi un traitement des données en temps opportun.
  • La surveillance des métriques du producteur aide à détecter les erreurs rencontrées lors de la transmission des messages, permettant une résolution rapide et minimisant la perte de données ou l'interruption des pipelines de données.

Indicateurs clés à surveiller

Taux d'envoi des messages

Name: kafka.producer:type=producer-metrics,client-id=*ProducerClientId*,topic=*TopicName*,metric-name=record-send-rate

Le taux d'envoi des messages reflète la vitesse à laquelle les producteurs Kafka publient des messages sur les sujets Kafka. La surveillance du taux d'envoi des messages fournit des informations sur l'efficacité de la production des messages, permettant aux organisations d'évaluer la répartition de la charge de travail et de faire évoluer les ressources selon les besoins pour répondre à la demande.

Latence

Name: kafka.producer:type=producer-metrics,client-id=*ProducerClientId*,topic=*TopicName*,metric-name=record-send-rate

La latence du producteur mesure le temps nécessaire pour que les données générées par les producteurs soient transmises et reconnues avec succès par les sujets Kafka.

La surveillance de la latence du producteur permet d'identifier les retards dans la transmission des données, de garantir un traitement rapide et de réduire la latence de la consommation de données en aval, ce qui est crucial pour les applications en temps réel.

3. Mesures du consommateur

Les métriques Kafka Consumer englobent des indicateurs de performance qui suivent le comportement et l'efficacité des consommateurs Kafka. Ces métriques fournissent des informations sur la manière dont les consommateurs ingèrent les messages des sujets Kafka, les traitent et gèrent les affectations de partitions.

Raisons de surveiller

  • En suivant les mesures liées à la latence de consommation des messages et au décalage du consommateur, les organisations peuvent identifier et résoudre les retards dans le traitement des messages, garantissant ainsi une consommation de données et un traitement en aval opportuns.
  • Le suivi des erreurs et des tentatives rencontrées par les consommateurs fournit des informations sur la stabilité et la fiabilité des applications grand public, permettant une détection et une résolution rapides des problèmes afin d'éviter la perte de données ou les interruptions de traitement.

Indicateurs clés à surveiller

Retard du consommateur

Name: kafka.consumer:type=consumer-fetch-manager-metrics,client-id=*ConsumerClientId*,topic=*TopicName*,partition=*PartitionId*,metric-name=records-lag-max

Il mesure la différence entre le dernier décalage de message dans une partition et le décalage actuel du consommateur. La surveillance du retard des consommateurs permet d'identifier les retards de traitement, les goulots d'étranglement ou les problèmes de performances des consommateurs.

Nombre de messages consommés

Name: kafka.consumer:type=consumer-fetch-manager-metrics,client-id=*ConsumerClientId*,topic=*TopicName*,partition=*PartitionId*,metric-name=records-consumed-rate

Suit le volume de messages consommés par les consommateurs Kafka sur une période spécifiée. La surveillance du nombre de messages consommés fournit des informations sur les taux de consommation, aidant à évaluer la charge de travail des consommateurs et garantissant un traitement efficace des données.

4. Métriques ZooKeeper

Les métriques ZooKeeper comprennent des indicateurs de performance qui suivent l'état de santé, l'activité et l'utilisation des ressources des serveurs ZooKeeper au sein d'un écosystème Kafka. Ces métriques fournissent un aperçu de la stabilité et de l'efficacité de ZooKeeper, un composant essentiel pour la coordination et la gestion des clusters Kafka.

Raisons de surveiller

  • ZooKeeper est responsable de la maintenance des métadonnées, de la coordination de l'élection des dirigeants et de la gestion des membres du cluster dans Kafka. La surveillance des métriques ZooKeeper garantit le bon fonctionnement de ces tâches critiques, facilitant ainsi la stabilité et la fiabilité des clusters Kafka.
  • La surveillance des métriques ZooKeeper facilite la détection précoce des problèmes , tels que les pannes de nœuds, les problèmes de connectivité ou la dégradation des performances, permettant ainsi de prendre des mesures proactives pour éviter les interruptions de service et la perte de données.
  • En analysant les métriques de ZooKeeper, les organisations peuvent identifier les goulots d'étranglement ou les inefficacités potentiels dans les opérations de ZooKeeper et optimiser les configurations pour améliorer les performances et l'évolutivité.

Indicateurs clés à surveiller

Taille du quorum de ZooKeeper

Name: kafka.server:type=controller-channel-metrics,name=LeaderCount

La taille du quorum ZooKeeper fait référence au nombre de nœuds dans un ensemble ZooKeeper requis pour parvenir à un consensus. La surveillance de la taille du quorum de ZooKeeper garantit l'intégrité et la fiabilité des tâches de coordination distribuées.

Les observateurs de ZooKeeper comptent

Name: kafka.server:type=socket-server-metrics,name=NetworkProcessorAvgIdlePercent

Suit le nombre d'observateurs enregistrés auprès des nœuds ZooKeeper pour surveiller les modifications apportées aux znodes . La surveillance du nombre d'observateurs aide à évaluer la charge de travail et les modèles d'utilisation de ZooKeeper, facilitant ainsi la planification de la capacité et l'allocation des ressources pour des performances optimales.

Demandes en attente de ZooKeeper

Name: kafka.server:type=request-channel-metrics,name=RequestQueueSize

Mesure le nombre de requêtes client en attente de traitement par les serveurs ZooKeeper. La surveillance des demandes en attente aide à identifier la surcharge ou la saturation des services ZooKeeper, permettant aux organisations de faire évoluer leurs ressources et d'optimiser les configurations pour améliorer les performances et la réactivité.

Surveillez votre déploiement Kafka à l'aide d'un middleware

de Middleware Avec l'intégration Kafka , vous pouvez surveiller activement divers aspects de votre environnement Kafka, notamment les courtiers, les partitions, les groupes de consommateurs et les métriques JMX.

Monitoring Kafka performance metrics with Middleware
  1. Configurer l'agent hôte Middleware : installez l'agent hôte Middleware (Agent MW) v1.5.0+ sur votre ordinateur local comme condition préalable.
  2. Accédez à l'intégration Kafka : connectez-vous à votre compte Middleware et accédez à la section Intégration Kafka.
  3. Connecter Kafka : configurez les paramètres du serveur JMX et de l'hôte du courtier pour connecter le middleware à votre déploiement Kafka. Cela permet au Middleware de collecter des métriques pertinentes auprès des courtiers Kafka.
  4. Visualisez les données : explorez le tableau de bord Kafka par défaut de Middleware pour obtenir des informations sur des indicateurs clés tels que l'état du courtier, l'état des partitions et le décalage du consommateur. Personnalisez le tableau de bord avec des widgets pour vous concentrer sur des aspects spécifiques de votre environnement Kafka.
  5. Créer des alertes : configurez des alertes pour recevoir des notifications lorsque certaines métriques Kafka dépassent des seuils prédéfinis. Cela permet une surveillance proactive et une réponse rapide aux problèmes potentiels.
  6. Personnalisation du tableau de bord : personnalisez le tableau de bord Kafka en fonction de vos besoins de surveillance spécifiques. Ajoutez ou supprimez des widgets, ajustez les visualisations et organisez les métriques pour optimiser votre expérience de surveillance.
  7. Explorez des métriques supplémentaires : explorez la liste complète des métriques Kafka du Middleware pour surveiller de manière exhaustive différents aspects de votre déploiement Kafka. Surveillez les métriques liées aux producteurs, aux consommateurs, aux sujets, aux partitions, etc. pour garantir le bon fonctionnement de votre écosystème Kafka.
  8. Analyser les tendances des performances : utilisez les outils analytiques de Middleware pour analyser les tendances des performances au fil du temps. Identifiez les modèles, les anomalies et les domaines d'optimisation pour améliorer continuellement les performances et la fiabilité de votre déploiement Kafka.

En suivant ces étapes et en tirant parti de l'intégration Kafka du Middleware, vous pouvez obtenir des informations précieuses sur les performances, la santé et l'efficacité de votre déploiement Kafka.

La surveillance de notre déploiement Kafka est essentielle pour garantir son bon fonctionnement et ses performances. L'intégration Kafka du middleware fournit des informations en temps réel sur divers aspects de notre environnement Kafka, des courtiers aux partitions et groupes de consommateurs.

Les prochaines étapes consistent à mettre en œuvre l'intégration Kafka du Middleware, à mettre en place des tableaux de bord de surveillance et à configurer des alertes pour nous tenir informés de tout problème. Avec l'aide de Middleware, nous pouvons gérer de manière proactive notre déploiement Kafka, optimiser ses performances et garantir un traitement fiable des données.

Commentaires