Accéder aux métriques intégrées dans Azure IoT Edge
S’applique à : IoT Edge 1.5 IoT Edge 1.4
Important
IoT Edge 1.5 LTS et IoT Edge 1.4 LTS sont des versions prises en charge. IoT Edge 1.4 LTS sera en fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Les composants du runtime IoT Edge, le hub IoT Edge Hub et l’agent IoT Edge produisent des métriques intégrées au format d’exposition Prometheus. Accédez à ces métriques à distance pour analyser et comprendre l’intégrité d’un appareil IoT Edge.
Vous pouvez utiliser votre propre solution pour accéder à ces métriques. Vous pouvez aussi utiliser le module Collecteur de métriques qui gère la collecte des métriques intégrées et leur envoi à Azure Monitor ou à Azure IoT Hub. Pour plus d’informations, consultez Collecter et transporter les métriques.
Les métriques sont exposées automatiquement par défaut sur le port 9600 des modules edgeHub et edgeAgent (http://edgeHub:9600/metrics
et http://edgeAgent:9600/metrics
). Elles ne sont pas mappées au port de l’hôte par défaut.
Accédez aux métriques à partir de l’hôte en exposant et en mappant le port des métriques à partir du paramètre createOptions
du module. L’exemple ci-dessous mappe le port des métriques par défaut au port 9601 sur l’hôte :
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
Choisissez des numéros de port d’hôte différents et uniques si vous mappez les points de terminaison des métriques d’edgeHub et d’edgeAgent.
Remarque
La variable d’environnement httpSettings__enabled
ne doit pas être définie sur false
afin que les métriques intégrées soient disponibles pour la collecte.
Les variables d’environnement qui peuvent être utilisées pour désactiver les métriques sont listées dans la documentation du dépôt azure/iotedge.
Métriques disponibles
Les métriques contiennent des balises permettant d’identifier la nature de la métrique collectée. Toutes les métriques contiennent les balises suivantes :
Balise | Description |
---|---|
iothub | Hub avec lequel l’appareil communique |
edge_device | ID de l’appareil actuel |
instance_number | GUID représentant le runtime actuel. Au redémarrage, toutes les métriques sont réinitialisées. Ce GUID permet de rapprocher plus facilement les redémarrages |
Dans le format d’exposition Prometheus, il existe quatre types de métriques principales : compteur, jauge, histogramme et résumé. Pour plus d’informations sur les différents types de métriques, consultez la documentation relative aux types de métriques de Prometheus.
Les quantiles fournis pour les métriques Histogramme et Résumé intégrées sont 0,1, 0,5, 0,9 et 0,99.
Le module edgeHub produit les métriques suivantes :
Nom | Dimensions | Description |
---|---|---|
edgehub_gettwin_total |
source (source de l’opération)id (ID de module) |
Type : compteur Nombre total d’appels GetTwin |
edgehub_messages_received_total |
route_output (sortie du message envoyé)id |
Type : compteur Nombre total de messages reçus des clients |
edgehub_messages_sent_total |
from (source du message)to (destination du message)from_route_output to_route_input (entrée de destination du message)priority (priorité du message à la destination) |
Type : compteur Nombre total de messages envoyés aux clients ou en amont to_route_input est vide lorsque to est $upstream |
edgehub_reported_properties_total |
target (cible de mise à jour)id |
Type : compteur Nombre total d’appels de mises à jour de propriétés rapportées |
edgehub_message_size_bytes |
id |
Type : résumé Taille des messages des clients Les valeurs peuvent être signalées comme NaN si aucune nouvelle métrique n’est signalée pendant un certain laps de temps (actuellement 10 minutes) ; pour le type summary , les compteurs _count et _sum correspondants sont émis. |
edgehub_gettwin_duration_seconds |
source id |
Type : résumé Temps nécessaire pour obtenir des opérations de jumeau |
edgehub_message_send_duration_seconds |
from to from_route_output to_route_input |
Type : résumé Temps nécessaire pour envoyer un message |
edgehub_message_process_duration_seconds |
from to priority |
Type : résumé Temps nécessaire pour traiter un message de la file d’attente |
edgehub_reported_properties_update_duration_seconds |
target id |
Type : résumé Temps nécessaire pour mettre à jour les propriétés rapportées |
edgehub_direct_method_duration_seconds |
from (appelant)to (destinataire) |
Type : résumé Temps nécessaire pour résoudre un message direct |
edgehub_direct_methods_total |
from to |
Type : compteur Nombre total de messages directs envoyés |
edgehub_queue_length |
endpoint (source du message)priority (priorité de file d’attente) |
Type : jauge Longueur actuelle de la file d’attente d’edgeHub pour une priorité donnée |
edgehub_messages_dropped_total |
reason (no_route, ttl_expiry)from from_route_output |
Type : compteur Nombre total de messages supprimés du fait de « reason » |
edgehub_messages_unack_total |
reason (storage_failure)from from_route_output |
Type : compteur Nombre total de messages sans accusé de réception en raison d’un échec de stockage |
edgehub_offline_count_total |
id |
Type : compteur Nombre total de fois où edgeHub a été mis hors connexion |
edgehub_offline_duration_seconds |
id |
Type : résumé Durée pendant laquelle edgeHub était hors connexion |
edgehub_operation_retry_total |
id operation (nom de l’opération) |
Type : compteur Nombre total de fois où les opérations edgeHub ont fait l’objet d’une nouvelle tentative |
edgehub_client_connect_failed_total |
id reason (non authentifié) |
Type : compteur Nombre total de fois où les clients n’ont pas réussi à se connecter à edgeHub |
Le module edgeAgent produit les métriques suivantes :
Nom | Dimensions | Description |
---|---|---|
edgeAgent_total_time_running_correctly_seconds |
module_name |
Type : jauge Durée pendant laquelle le module était spécifié dans le déploiement et en état de fonctionnement |
edgeAgent_total_time_expected_running_seconds |
module_name |
Type : jauge Durée pendant laquelle le module était spécifié dans le déploiement |
edgeAgent_module_start_total |
module_name , module_version |
Type : compteur Nombre de fois où edgeAgent a demandé à Docker de démarrer le module |
edgeAgent_module_stop_total |
module_name , module_version |
Type : compteur Nombre de fois où edgeAgent a demandé à Docker d’arrêter le module |
edgeAgent_command_latency_seconds |
command |
Type : jauge Temps qu’il a fallu à Docker pour exécuter la commande donnée. Les commandes possibles sont : create, update, remove, start, stop et restart. |
edgeAgent_iothub_syncs_total |
Type : compteur Nombre de fois où edgeAgent a tenté de synchroniser son jumeau avec IoTHub, avec ou sans succès. Ce nombre comprend l’agent demandant un jumeau et le hub informant d’une mise à jour de jumeau |
|
edgeAgent_unsuccessful_iothub_syncs_total |
Type : compteur Nombre de fois où edgeAgent n’a pas réussi à synchroniser son jumeau avec IoTHub |
|
edgeAgent_deployment_time_seconds |
Type : compteur Temps qu’il a fallu pour terminer un nouveau déploiement après avoir reçu une modification |
|
edgeagent_direct_method_invocations_count |
method_name |
Type : compteur Nombre de fois où une méthode directe edgeAgent intégrée est appelée, par exemple Ping ou Restart. |
edgeAgent_host_uptime_seconds |
Type : jauge Durée depuis laquelle l’hôte est allumé |
|
edgeAgent_iotedged_uptime_seconds |
Type : jauge Durée depuis laquelle iotedged est en cours d’exécution |
|
edgeAgent_available_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Type : jauge Quantité d’espace restant sur le disque |
edgeAgent_total_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Type : jauge Taille du disque |
edgeAgent_used_memory_bytes |
module_name |
Type : jauge Quantité de RAM utilisée par tous les processus |
edgeAgent_total_memory_bytes |
module_name |
Type : jauge RAM disponible |
edgeAgent_used_cpu_percent |
module_name |
Type : histogramme Pourcentage d’UC utilisé par tous les processus |
edgeAgent_created_pids_total |
module_name |
Type : jauge Nombre de processus ou de threads créés par le conteneur |
edgeAgent_total_network_in_bytes |
module_name |
Type : jauge Nombre d’octets reçus du réseau |
edgeAgent_total_network_out_bytes |
module_name |
Type : jauge Nombre d’octets envoyés au réseau |
edgeAgent_total_disk_read_bytes |
module_name |
Type : jauge Nombre d’octets lus à partir du disque |
edgeAgent_total_disk_write_bytes |
module_name |
Type : jauge Nombre d’octets écrits sur le disque |
edgeAgent_metadata |
edge_agent_version , experimental_features , host_information |
Type : jauge Métadonnées générales relatives à l’appareil. La valeur est toujours 0, les informations sont encodées dans les balises. Notez que experimental_features et host_information sont des objets JSON. host_information ressemble à {"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.2.7", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": false}, "ServerVersion": "20.10.11+azure-3", "KernelVersion": "5.11.0-1027-azure", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 2, "Virtualized": "yes"} . Notez que ServerVersion désigne la version de Docker et Version désigne la version du démon de sécurité IoT Edge. |