Utilisez CloudMonitor pour surveiller en temps réel les ressources ApsaraMQ for Kafka — instances, topics et groupes de consommateurs — et recevez des alertes lorsque les métriques dépassent les seuils définis.
Métriques
Les données de métriques sont agrégées sur une période d'une minute. Une valeur rapportée par seconde, telle que les octets par seconde (B/s), représente la valeur moyenne sur la minute précédente.
Les données de métriques présentent une latence d'une minute.
Ces métriques appartiennent au namespace CloudMonitor
acs_kafka(ProductCategory :kafka). Vous avez besoin de ces identifiants pour interroger les métriques via l'API ou le SDK CloudMonitor.Les métriques dont l'ID se termine par le suffixe V2, comme
InstanceCpuUsageV2, sont spécifiques aux instances réservées V2.Les métriques liées à la consommation dépendent des validations d'offset (commit). Les métriques telles que le nombre de messages non consommés sont calculées sur la base de l'offset validé par le client. Si le client ne valide pas correctement les offsets (par exemple, si la validation automatique n'est pas activée ou si la validation manuelle n'est pas configurée), les données de surveillance ne reflètent pas avec précision l'état réel de la consommation, ce qui peut entraîner de fausses alertes. Assurez-vous que votre client est correctement configuré avec un mécanisme de validation d'offset.
Pour déterminer si une limitation côté serveur (throttling) s'est produite, surveillez la métrique Instance Produce Throttle Queue Size (
InstanceProduceThrottleQueueSizeV2) ou Instance Consume Throttle Queue Size (InstanceFetchThrottleQueueSizeV2). La limitation est considérée comme effective uniquement lorsque cette métrique indique des valeurs non nulles. Les dépassements mineurs de trafic bénéficient généralement d'une marge élastique et ne déclenchent pas immédiatement une limitation.Le Production Traffic Ratio (
InstanceMessageInputRatioV2) et le Consumption Traffic Ratio (InstanceMessageOutputRatioV2) reflètent l'utilisation du trafic au niveau des nœuds. Comme Kafka utilise par défaut 3 réplicas avec une capacité de débit répartie uniformément, une asymétrie du trafic — telle que des envois par lots périodiques provoquant un trafic en rafale — peut faire en sorte que le trafic à la seconde sur un seul nœud dépasse momentanément la limite, même si le taux moyen de l'instance n'a pas atteint le seuil configuré. Les graphiques de surveillance affichent des données lissées à la minute, tandis que la limitation réelle est déclenchée sur la base d'une surveillance à la seconde. Ces deux valeurs peuvent différer considérablement lors de pics de trafic.
ApsaraMQ for Kafka prend en charge les métriques suivantes :
Pour les scénarios de surveillance courants, commencez par les métriques suivantes :
Alertes de stockage : Surveillez
instance_disk_capacity(pourcentage d'utilisation du disque) et définissez un seuil d'alerte à 85 %.Détection du retard des consommateurs : Surveillez
message_accumulation(accumulation de messages du groupe de consommateurs) pour détecter les consommateurs lents ou bloqués.Planification de la capacité : Surveillez
InstanceMessageInputRatioV2(trafic entrant en pourcentage de la spécification de l'instance) etPartitionInstanceRatioV2(nombre de partitions en pourcentage de la spécification de l'instance) pour planifier les mises à niveau des instances.
Métriques au niveau de l'instance
|
Nom de la métrique |
ID de métrique |
Dimensions |
Unité |
|
Utilisation du disque de l'instance |
instance_disk_capacity |
instanceId |
% |
|
Bande passante entrante publique de l'instance |
instance_internet_rx.rate |
instanceId |
bit/s |
|
Bande passante sortante publique de l'instance |
instance_internet_tx.rate |
instanceId |
bit/s |
|
Trafic entrant de l'instance |
instance_message_input |
instanceId |
B/s |
|
Messages produits vers l'instance |
instance_message_num_input |
instanceId |
count/s |
|
Trafic sortant de l'instance |
instance_message_output |
instanceId |
B/s |
|
Requêtes d'envoi de messages vers l'instance |
instance_reqs_input |
instanceId |
count/s |
|
Requêtes de consommation de messages depuis l'instance |
instance_reqs_output |
instanceId |
count/s |
|
Taille du lot de l'instance TP50 (50e percentile) |
InstanceBatchSizeTP50V2 |
instanceId |
Bytes |
|
Taille du lot de l'instance TP999 (99,9e percentile) |
InstanceBatchSizeTP999V2 |
instanceId |
Bytes |
|
Utilisation du CPU de l'instance |
InstanceCpuUsageV2 |
instanceId |
% |
|
Taille de la file d'attente de limitation de récupération (fetch) de l'instance |
InstanceFetchThrottleQueueSizeV2 |
instanceId |
count |
|
Événements de haute disponibilité (HA) de l'instance |
InstanceHAEventV2 |
instanceId |
count |
|
Bande passante entrante publique de l'instance (par nœud) |
InstanceInternetRxRateByNode |
instanceId, nodeIp |
bit/s |
|
Utilisation de la bande passante entrante publique de l'instance (par nœud) |
InstanceInternetRxUtilizationByNode |
instanceId, nodeIp |
% |
|
Bande passante sortante publique de l'instance (par nœud) |
InstanceInternetTxRateByNode |
instanceId, nodeIp |
bit/s |
|
Utilisation de la bande passante sortante publique de l'instance (par nœud) |
InstanceInternetTxUtilizationByNode |
instanceId, nodeIp |
% |
|
Nombre maximal de connexions de l'instance |
InstanceMaxConnection |
instanceId |
count |
|
Nombre maximal de connexions Internet de l'instance |
InstanceMaxInternetConnection |
instanceId |
count |
|
Nombre maximal d'opérations de lecture par seconde (IOPS) de l'instance |
InstanceMaxReadIOPSV2 |
instanceId |
count/s |
|
Nombre maximal d'IOPS en écriture de l'instance |
InstanceMaxWriteIOPSV2 |
instanceId |
count/s |
|
Trafic entrant en pourcentage de la spécification de l'instance |
InstanceMessageInputRatioV2 |
instanceId |
% |
|
Trafic sortant en pourcentage de la spécification de l'instance |
InstanceMessageOutputRatioV2 |
instanceId |
% |
|
Taille de la file d'attente de limitation de production de l'instance |
InstanceProduceThrottleQueueSizeV2 |
instanceId |
count |
|
Temps de rééquilibrage de l'instance |
InstanceRebalanceTimeV2 |
instanceId |
ms |
|
Nombre total de connexions de l'instance |
InstanceTotalConnection |
instanceId |
count |
|
Nombre total de connexions Internet de l'instance |
InstanceTotalInternetConnection |
instanceId |
count |
|
Nombre de partitions en pourcentage de la spécification de l'instance |
PartitionInstanceRatioV2 |
instanceId |
% |
Métriques au niveau du groupe de consommateurs
|
Nom de la métrique |
ID de métrique |
Dimensions |
Unité |
|
Sortie de messages du groupe de consommateurs |
group_message_num_output |
instanceId, consumerGroup |
count/s |
|
Sortie de messages du groupe de consommateurs pour un topic |
group_message_num_output_onetopic |
instanceId, consumerGroup, topic |
count/s |
|
Latence de consommation du groupe de consommateurs |
group_topic_accumulation_consume_cost_time |
instanceId, consumerGroup |
ms |
|
Accumulation de messages du groupe de consommateurs |
message_accumulation |
instanceId, consumerGroup |
count |
|
Accumulation de messages du groupe de consommateurs pour un topic |
message_accumulation_onetopic |
instanceId, consumerGroup, topic |
count |
Métriques au niveau du topic
|
Nom de la métrique |
ID de métrique |
Dimensions |
Unité |
|
Trafic entrant du topic |
topic_message_input |
instanceId, topic |
B/s |
|
Messages produits vers un topic |
topic_message_num_input |
instanceId, topic |
count/s |
|
Trafic sortant du topic |
topic_message_output |
instanceId, topic |
B/s |
|
Ratio trafic consommation/production du topic |
topic_message_output_input_ratio |
instanceId, topic |
% |
|
Requêtes d'envoi de messages du topic |
topic_reqs_input |
instanceId, topic |
count/s |
|
Requêtes de consommation de messages du topic |
topic_reqs_output |
instanceId, topic |
count/s |
Facturation
La fonctionnalité CloudMonitor pour ApsaraMQ for Kafka est gratuite.
Prérequis
Un rôle lié au service est requis.
Nom du rôle : AliyunServiceRoleForAlikafka
Nom de la politique : AliyunServiceRolePolicyForAlikafka
Autorisations : Accorde à ApsaraMQ for Kafka l'autorisation d'accéder à vos autres services, tels que CloudMonitor et Application Real-Time Monitoring Service (ARMS), pour les fonctionnalités liées à la surveillance.
Pour plus d'informations, reportez-vous à la rubrique Rôles liés au service.
Afficher les données de surveillance
Connectez-vous à la console ApsaraMQ for Kafka.
Sur la page Overview, sélectionnez une région dans la section Resource Distribution.
Sur la page Instances, cliquez sur le nom de l'instance cible.
Dans le volet de navigation de gauche, choisissez .
-
Sur la page CloudMonitor, cliquez sur l'onglet Alert Rule. Sélectionnez l'onglet correspondant à la ressource que vous souhaitez surveiller, localisez la ressource, puis cliquez sur View CloudMonitor Metrics dans la colonne Actions. Définissez une plage horaire pour afficher les données de surveillance.
Les graphiques de toutes les métriques de la ressource actuelle s'affichent automatiquement.
Définir une règle d'alerte
-
Sur la page CloudMonitor, cliquez sur l'onglet Alert Rule, puis sélectionnez l'onglet Instance, Topic ou Group.
Cette action vous redirige vers le panneau Create Alert Rule dans la console CloudMonitor.
Dans le panneau Create Alert Rule, configurez la règle et les informations de notification, puis cliquez sur OK. Pour plus d'informations sur les paramètres, reportez-vous à la rubrique Créer une règle d'alerte.
Après avoir cliqué sur OK, la règle d'alerte apparaît dans l'onglet Alert Rule. Vérifiez que le statut de la règle est Enabled.
Exemple : Configurer une alerte d'accumulation de messages Group avec notification via robot DingTalk
Avant de configurer l'alerte, connectez-vous à la console Cloud Monitor et ajoutez un robot DingTalk en tant que contact ou groupe de contacts. L'URL webhook du robot DingTalk doit être enregistrée au préalable.
Connectez-vous à la console ApsaraMQ for Kafka.
Cliquez sur l'onglet Alert Rule.
Cliquez sur l'onglet de ressource Group.
Localisez le Group pour lequel vous souhaitez configurer une alerte, puis cliquez sur Create Alert Rule dans la colonne Actions. La page redirige vers le panneau Create Alert Rule dans la console Cloud Monitor.
-
Dans le panneau Create Alert Rule, configurez les paramètres suivants :
Metric : Sélectionnez la métrique d'accumulation de messages
MessageAccumulationV3(Group Message Backlog Total).Alert conditions : Définissez la valeur du seuil et le nombre de périodes consécutives qui doivent déclencher la condition avant l'envoi d'une alerte.
Notification method : Sous les contacts de notification, sélectionnez le groupe de contacts du robot DingTalk que vous avez configuré comme prérequis.
Cliquez sur OK pour enregistrer la règle d'alerte.
Une fois la règle créée, l'onglet Alert Rule affiche la nouvelle règle avec son statut défini sur Enabled. Lorsque l'accumulation de messages du Group dépasse le seuil configuré, Cloud Monitor envoie une notification au robot DingTalk spécifié.
Afficher les informations d'alerte
Sur la page CloudMonitor, cliquez sur l'onglet Alert Rule. Ensuite, sélectionnez l'onglet correspondant à la ressource dont vous souhaitez consulter les informations d'alerte, par exemple Instance, Topic ou Group.
Localisez la ressource et cliquez sur Alert Rule dans la colonne Actions.
Dans le panneau Associated Alert Rules, localisez la règle d'alerte cible et cliquez sur Details dans la colonne Actions pour afficher la configuration de la règle et l'historique des alertes. Vous pouvez également activer, désactiver ou supprimer la règle depuis cette page.
FAQ
Cloud Monitor prend-il en charge les statistiques CPU, mémoire et volume d'écriture quotidien ?
Surveillance CPU et mémoire : ApsaraMQ for Kafka n'expose pas directement les métriques de surveillance CPU et mémoire via Cloud Monitor. Pour surveiller l'utilisation des ressources système, reportez-vous à la solution de surveillance Prometheus décrite dans la rubrique Surveillance Prometheus.
-
Volume d'écriture quotidien : Cloud Monitor ne fournit pas de vue dédiée du volume d'écriture quotidien. Vous pouvez estimer le volume d'écriture quotidien en utilisant les méthodes suivantes :
Console : Dans la page des détails de l'instance, accédez à Topic Management et consultez le débit d'écriture (B/s) dans les informations de surveillance d'un topic cible. Alternativement, sur la page Cloud Monitor, consultez la métrique Instance Actual Inbound Traffic (
instance_message_input, unité : B/s) ou Instance Message Production Count (instance_message_num_input, unité : count/s), et multipliez par le nombre de secondes dans une journée pour estimer le volume quotidien.Surveillance Prometheus : Interrogez les métriques au niveau de l'instance
instance_message_input(octets/s) etinstance_message_num_input(messages/s) pour obtenir des données continues sur le trafic entrant.Requête API : Utilisez l'API QueryMessage pour interroger les différences d'offset par horodatage, ce qui vous permet de calculer le nombre précis de messages produits dans une plage de temps donnée.
Références
Pour la surveillance Prometheus, reportez-vous à la rubrique Surveillance Prometheus.
Pour les FAQ sur la surveillance et les alertes, reportez-vous à la rubrique FAQ sur la surveillance et les alertes.
Si les métriques ne s'affichent pas, vérifiez que le rôle lié au service AliyunServiceRoleForAlikafka est créé et que l'instance est en cours d'exécution.