Analyser les points de terminaison en ligne
Azure Machine Learning utilise l’intégration à Azure Monitor pour suivre et surveiller les métriques et les journaux pour les points de terminaison en ligne. Vous pouvez afficher les métriques dans des graphiques, comparer les points de terminaison et les déploiements, épingler aux tableaux de bord du Portail Azure, configurer des alertes, interroger à partir de tables de journaux et envoyer des journaux à des cibles prises en charge. Vous pouvez également utiliser Application Insights pour analyser les événements des conteneurs utilisateur.
Métriques : pour les métriques au niveau du point de terminaison telles que la latence des demandes, les demandes par minute, les nouvelles connexions par seconde et les octets réseau, vous pouvez explorer pour afficher des détails au niveau du déploiement ou de l’état. Les métriques au niveau du déploiement, telles que l’utilisation du processeur/GPU et l’utilisation de la mémoire ou du disque, peuvent également être extraites jusqu’au niveau de l’instance. Azure Monitor permet le suivi de ces métriques dans des graphiques et la configuration de tableaux de bord et d’alertes pour une analyse plus approfondie.
Journaux : vous pouvez envoyer des métriques à l’espace de travail Log Analytics, où vous pouvez interroger les journaux à l’aide de la syntaxe de requête Kusto. Vous pouvez également envoyer des métriques aux comptes de Stockage Azure et/ou à Event Hubs pour un traitement plus approfondi. Vous pouvez aussi utiliser des tables de journal dédiées pour les événements liés aux points de terminaison en ligne, le trafic et les journaux (de conteneur) de la console. Une requête Kusto permet une analyse complexe et la jointure de plusieurs tables.
Application Insights : les environnements organisés incluent l’intégration d’Application Insights, que vous pouvez activer ou désactiver lorsque vous créez un déploiement en ligne. Les métriques et journaux intégrés sont envoyés à Application Insights, dont vous pouvez utiliser les fonctionnalités intégrées (notamment Métriques en direct, Recherche de transactions, Échecs et Performances) pour une analyse plus approfondie.
Dans cet article, vous apprendrez comment :
- Choisir la méthode appropriée pour afficher et suivre les métriques et les journaux
- Voir les métriques de votre point de terminaison en ligne
- Créer un tableau de bord pour vos métriques
- Créer une alerte de métrique
- Afficher les métriques de votre point de terminaison en ligne
- Utiliser Application Insights pour suivre les métriques et les journaux
Prérequis
- Déployez un point de terminaison en ligne Azure Machine Learning.
- Vous devez disposer au moins d’un accès en lecture sur le point de terminaison.
Mesures
Vous pouvez afficher des pages de métriques pour les points de terminaison ou les déploiements en ligne dans le Portail Azure. Un moyen simple d’accéder à ces pages de métriques consiste à utiliser des liens disponibles dans l’interface utilisateur Azure Machine Learning studio, en particulier dans l’onglet Détails de la page d’un point de terminaison. En suivant ces liens, vous accédez à la page des métriques exactes dans le Portail Azure pour le point de terminaison ou le déploiement. Vous pouvez également accéder à la Portail Azure pour rechercher la page des métriques pour le point de terminaison ou le déploiement.
Pour accéder aux pages de métriques via des liens disponibles dans le studio :
Accédez au studio Azure Machine Learning.
Dans la barre de navigation gauche, sélectionnez la page Points de terminaison.
Sélectionnez un point de terminaison en cliquant sur son nom.
Sélectionnez Afficher les métriques dans la section Attributs du point de terminaison pour ouvrir la page des métriques du point de terminaison dans le Portail Azure.
Sélectionnez Afficher les métriques dans la section pour chaque déploiement disponible pour ouvrir la page des métriques du déploiement dans le Portail Azure.
Pour accéder aux métriques directement à partir du Portail Azure :
Connectez-vous au portail Azure.
Accédez à la ressource de déploiement ou de point de terminaison en ligne.
Les déploiements et points de terminaison en ligne sont des ressources ARM (Azure Resource Manager) que vous pouvez trouver en accédant à leur groupe de ressources propriétaire. Recherchez les types de ressource point de terminaison en ligne Machine Learning et déploiement en ligne Machine Learning.
Dans la colonne de gauche, sélectionnez Métriques.
Métriques disponibles
Les métriques affichées varient en fonction de la ressource que vous sélectionnez. L’étendue des métriques des points de terminaison en ligne est différente de celle des déploiements en ligne.
Métriques dans l’étendue des points de terminaison
Catégorie | Métrique | Nom dans l’API REST | Unité | Agrégation | Dimensions | Fragments de temps | Exportation DS |
---|---|---|---|---|---|---|---|
Trafic | Connexions actives Nombre total de connexions TCP simultanées actives établies à partir de clients. |
ConnectionsActive |
Count | Average | <aucune> | PT1M | Non |
Trafic | Erreurs de collecte de données par minute Nombre d’événements de collecte de données abandonnés par minute. |
DataCollectionErrorsPerMinute |
Count | Minimum, Maximum, Moyenne | deployment , reason , type |
PT1M | Non |
Trafic | Événements de collecte de données par minute Nombre d’événements de collecte de données traités par minute. |
DataCollectionEventsPerMinute |
Count | Minimum, Maximum, Moyenne | deployment , type |
PT1M | Non |
Trafic | Octets réseau Octets par seconde traités pour le point de terminaison. |
NetworkBytes |
BytesPerSecond | Average | <aucune> | PT1M | Non |
Trafic | Nouvelles connexions par seconde Nombre moyen de nouvelles connexions TCP par seconde établies à partir de clients. |
NewConnectionsPerSecond |
CountPerSecond | Average | <aucune> | PT1M | Non |
Trafic | Latence de requête Intervalle de temps total moyen pour répondre à une requête, en millisecondes |
RequestLatency |
Millisecondes | Average | deployment |
PT1M | Oui |
Trafic | Latence de requête P50 Latence moyenne de requête P50 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P50 |
Millisecondes | Average | deployment |
PT1M | Oui |
Trafic | Latence de requête P90 Latence moyenne de requête P90 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P90 |
Millisecondes | Average | deployment |
PT1M | Oui |
Trafic | Latence de requête P95 Latence moyenne de requête P95 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P95 |
Millisecondes | Average | deployment |
PT1M | Oui |
Trafic | Latence de requête P99 Latence moyenne de requête P99 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P99 |
Millisecondes | Average | deployment |
PT1M | Oui |
Trafic | Requêtes par minute Nombre de requêtes envoyées au point de terminaison en ligne par minute |
RequestsPerMinute |
Count | Average | deployment , statusCode , statusCodeClass , modelStatusCode |
PT1M | Non |
Limitation de bande passante
La bande passante est limitée si les limites de quota sont dépassées pour les points de terminaison en ligne managés. Pour plus d’informations sur les limites, consultez l’article sur les limites pour les points de terminaison en ligne. Pour déterminer si les demandes sont limitées :
- Surveiller la métrique « Octets réseau »
- Les codes de fin comporteront les champs suivants :
ms-azureml-bandwidth-request-delay-ms
etms-azureml-bandwidth-response-delay-ms
. Les valeurs des champs sont les retards, en millisecondes, de la limitation de bande passante.
Pour plus d’informations, consultez Problèmes de limite de bande passante.
Métriques dans l’étendue du déploiement
Catégorie | Métrique | Nom dans l’API REST | Unité | Agrégation | Dimensions | Fragments de temps | Exportation DS |
---|---|---|---|---|---|---|---|
Ressource | Pourcentage d’utilisation de la mémoire du processeur Pourcentage d’utilisation de la mémoire sur une instance. L’utilisation est rapportée à intervalles d’une minute. |
CpuMemoryUtilizationPercentage |
Pourcentage | Minimum, Maximum, Moyenne | instanceId |
PT1M | Oui |
Ressource | Pourcentage d’utilisation du processeur Pourcentage d’utilisation du processeur sur une instance. L’utilisation est rapportée à intervalles d’une minute. |
CpuUtilizationPercentage |
Pourcentage | Minimum, Maximum, Moyenne | instanceId |
PT1M | Oui |
Ressource | Erreurs de collecte de données par minute Nombre d’événements de collecte de données abandonnés par minute. |
DataCollectionErrorsPerMinute |
Count | Minimum, Maximum, Moyenne | instanceId , reason , type |
PT1M | Non |
Ressource | Événements de collecte de données par minute Nombre d’événements de collecte de données traités par minute. |
DataCollectionEventsPerMinute |
Count | Minimum, Maximum, Moyenne | instanceId , type |
PT1M | Non |
Ressource | Capacité de déploiement Nombre d’instances dans le déploiement. |
DeploymentCapacity |
Count | Minimum, Maximum, Moyenne | instanceId , State |
PT1M | Non |
Ressource | Utilisation du disque Pourcentage d’utilisation du disque sur une instance. L’utilisation est rapportée à intervalles d’une minute. |
DiskUtilization |
Pourcentage | Minimum, Maximum, Moyenne | instanceId , disk |
PT1M | Oui |
Ressource | Énergie de processeur graphique en joules Énergie par intervalle en joules sur un nœud GPU. L’énergie est rapportée à intervalles d’une minute. |
GpuEnergyJoules |
Count | Minimum, Maximum, Moyenne | instanceId |
PT1M | Non |
Ressource | Pourcentage d’utilisation de la mémoire du processeur graphique Pourcentage d’utilisation de la mémoire GPU sur une instance. L’utilisation est rapportée à intervalles d’une minute. |
GpuMemoryUtilizationPercentage |
Pourcentage | Minimum, Maximum, Moyenne | instanceId |
PT1M | Oui |
Ressource | Pourcentage d’utilisation du processeur graphique Pourcentage d’utilisation du GPU sur une instance. L’utilisation est rapportée à intervalles d’une minute. |
GpuUtilizationPercentage |
Pourcentage | Minimum, Maximum, Moyenne | instanceId |
PT1M | Oui |
Trafic | Latence de requête P50 Latence moyenne de requête P50 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P50 |
Millisecondes | Average | <aucune> | PT1M | Oui |
Trafic | Latence de requête P90 Latence moyenne de requête P90 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P90 |
Millisecondes | Average | <aucune> | PT1M | Oui |
Trafic | Latence de requête P95 Latence moyenne de requête P95 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P95 |
Millisecondes | Average | <aucune> | PT1M | Oui |
Trafic | Latence de requête P99 Latence moyenne de requête P99 agrégée par toutes les valeurs de latence de requête collectées sur la période sélectionnée |
RequestLatency_P99 |
Millisecondes | Average | <aucune> | PT1M | Oui |
Trafic | Requêtes par minute Nombre de requêtes envoyées au déploiement en ligne en une minute |
RequestsPerMinute |
Count | Average | envoy_response_code |
PT1M | Non |
Créer des tableaux de bord et des alertes
Azure Monitor vous permet de créer des tableaux de bord et des alertes, basés sur des métriques.
Créer des tableaux de bord et visualiser des requêtes
Vous pouvez créer des tableaux de bord personnalisés pour visualiser les métriques de plusieurs sources sur le Portail Azure, notamment les métriques de votre point de terminaison en ligne. Pour plus d’informations sur la création de tableaux de bord et la visualisation des requêtes, consultez Tableaux de bord à l’aide des données de journal et Tableaux de bord à l’aide des données d’application.
Créez des alertes
Vous pouvez aussi créer des alertes personnalisées pour être notifié des mises à jour importantes de l’état de votre point de terminaison en ligne :
En haut à droite de la page de métriques, sélectionnez Nouvelle règle d’alerte.
Sélectionnez un nom de condition pour indiquer à quel moment l’alerte doit être déclenchée.
Sélectionnez Ajouter des groupes d’actions>Créer des groupes d’actions pour spécifier ce qui doit se passer quand votre alerte se déclenche.
Choisissez Créer une règle d’alerte pour finaliser la création de l’alerte.
Pour plus d’informations, consultez Créer des règles d’alerte Azure Monitor.
Activer la mise à l’échelle automatique en fonction des métriques
Vous pouvez activer la mise à l’échelle automatique des déploiements à l’aide de métriques en utilisant l’interface utilisateur ou du code. Quand vous utilisez du code (CLI ou SDK), vous pouvez utiliser les ID de métriques répertoriés dans le tableau des métriques disponibles comme conditions pour déclencher la mise à l’échelle automatique. Pour plus d’informations, consultez Mise à l’échelle automatique des points de terminaison en ligne.
Journaux d’activité
Trois journaux peuvent être activés pour les points de terminaison en ligne :
AmlOnlineEndpointTrafficLog : si vous souhaitez vérifier les informations de votre requête, vous pouvez activer les journaux de trafic. Vous trouverez quelques exemples ci-dessous :
En cas de réponse autre que 200, consultez la valeur de la colonne « ResponseCodeReason » pour déterminer ce qui s’est passé. Consultez également le motif dans la section « Codes d’état HTTPS » de l’article Résoudre les problèmes liés aux points de terminaison en ligne.
Vous pouvez consulter le code de réponse et le motif de la réponse de votre modèle à partir de la colonne « ModelStatusCode » et « ModelStatusReason ».
Vous souhaitez vérifier la durée de la requête, comme la durée totale, la durée de la requête/réponse et le retard causé par la limitation de bande passante réseau. Vous pouvez procéder à cette vérification à partir des journaux pour connaître la latence de la décomposition.
Si vous souhaitez consulter le nombre de requêtes ou en savoir plus sur les requêtes ayant échoué récemment, vous pouvez également activer les journaux.
AmlOnlineEndpointConsoleLog : contient les journaux que les conteneurs génèrent dans la console. Vous trouverez quelques exemples ci-dessous :
Si le conteneur ne démarre pas, le journal de la console peut être utile à des fins de débogage.
Surveillez le comportement du conteneur et assurez-vous que toutes les requêtes sont correctement traitées.
ID des requêtes d’écriture dans le journal de la console. En joignant l’ID de la requête, le journal AmlOnlineEndpointConsoleLog et le journal AmlOnlineEndpointTrafficLog dans l’espace de travail Log Analytics, vous pouvez suivre une requête depuis le point d’entrée du réseau d’un point de terminaison en ligne jusqu’au conteneur.
Vous pouvez également utiliser ce journal pour l’analyse des performances en déterminant le temps nécessaire au modèle pour traiter chaque requête.
AmlOnlineEndpointEventLog : contient des informations d’événement sur le cycle de vie du conteneur. Actuellement, nous fournissons des informations sur les types d’événements suivants :
Nom Message BackOff Interruption du redémarrage du conteneur défaillant Pulled Image conteneur « <IMAGE_NAME> » déjà présente sur la machine Killing Le diagnostic probe liveness du conteneur Serveur d’inférence a échoué. Celui-ci va être redémarré. Date de création Création du conteneur Récupérateur d’images Date de création Création du conteneur Serveur d’inférence Date de création Création du conteneur Montage de modèle LivenessProbeFailed Échec du diagnostic probe liveness : <FAILURE_CONTENT> ReadinessProbeFailed Échec du diagnostic probe readiness : <FAILURE_CONTENT> Démarré Démarrage du conteneur Récupérateur d’images Démarré Démarrage du conteneur Serveur d’inférence Démarré Démarrage du conteneur Montage de modèle Killing Arrêt du conteneur Serveur d’inférence Killing Arrêt du conteneur Montage de modèle
Activer/désactiver les journaux
Important
La journalisation utilise Azure Log Analytics. Si vous n’avez pas encore d’espace de travail Log Analytics, vous pouvez en créer un en suivant les étapes décrites dans Créer un espace de travail Log Analytics sur le portail Azure.
Sur le portail Azure, accédez au groupe de ressources qui contient votre point de terminaison, puis sélectionnez le point de terminaison.
Dans la section Surveillance à gauche de la page, sélectionnez Paramètres de diagnostic, puis Ajouter des paramètres.
Sélectionnez les catégories de journaux à activer, choisissez Envoyer à l’espace de travail Log Analytics, puis sélectionnez l’espace de travail Log Analytics à utiliser. Enfin, entrez un nom dans le champ Nom du paramètre de diagnostic et sélectionnez Enregistrer.
Important
L’activation de la connexion à l’espace de travail Log Analytics peut prendre jusqu’à une heure. Patientez une heure avant de passer aux étapes suivantes.
Envoyez des requêtes de scoring au point de terminaison. Cette activité doit créer des entrées dans les journaux.
Dans les propriétés du point de terminaison en ligne ou dans l’espace de travail Log Analytics, sélectionnez Journaux à gauche de l’écran.
Fermez la boîte de dialogue Requêtes qui s’ouvre automatiquement, puis double-cliquez sur AmlOnlineEndpointConsoleLog. Si vous ne voyez pas cette option, utilisez le champ Rechercher.
Sélectionnez Exécuter.
Exemples de requêtes
Vous trouverez des exemples de requêtes sous l’onglet Requêtes lors de la consultation des journaux. Recherchez Point de terminaison en ligne pour accéder à des exemples de requêtes.
Détails des colonnes des journaux
Les tableaux suivants fournissent des détails sur les données stockées dans chaque journal :
AmlOnlineEndpointTrafficLog
Propriété | Description |
---|---|
Méthode | Méthode demandée par le client. |
Chemin d’accès | Chemin d’accès demandé par le client. |
SubscriptionId | ID d’abonnement Machine Learning du point de terminaison en ligne. |
AzureMLWorkspaceId | ID de l’espace de travail Machine Learning du point de terminaison en ligne. |
AzureMLWorkspaceName | Nom de l’espace de travail Machine Learning du point de terminaison en ligne. |
EndpointName | Nom du point de terminaison en ligne. |
DeploymentName | Nom du déploiement en ligne. |
Protocole | Protocole de la requête. |
ResponseCode | Code de réponse final renvoyé au client. |
ResponseCodeReason | Motif du code de réponse final renvoyé au client. |
ModelStatusCode | Code d’état de la réponse du modèle. |
ModelStatusReason | Motif de l’état de la réponse du modèle. |
RequestPayloadSize | Nombre total d’octets reçus du client. |
ResponsePayloadSize | Nombre total d’octets renvoyés au client. |
UserAgent | En-tête user-agent de la requête, y compris les commentaires, mais tronqué jusqu’à un maximum de 70 caractères. |
XRequestId | ID de requête généré par Azure Machine Learning pour le suivi interne. |
XMSClientRequestId | ID de suivi généré par le client. |
TotalDurationMs | Durée en millisecondes entre l’heure de début de la requête et le dernier octet de réponse renvoyé au client. Si le client s’est déconnecté, elle est mesurée entre l’heure de début et l’heure de déconnexion du client. |
RequestDurationMs | Durée en millisecondes entre l’heure de début de la requête et le dernier octet de la requête reçue du client. |
ResponseDurationMs | Durée en millisecondes entre l’heure de début de la requête et le premier octet de réponse lu à partir du modèle. |
RequestThrottlingDelayMs | Retard en millisecondes dans le transfert de données de la requête en raison de la limitation de bande passante réseau. |
ResponseThrottlingDelayMs | Retard en millisecondes dans le transfert de données de la réponse en raison de la limitation de bande passante réseau. |
AmlOnlineEndpointConsoleLog
Propriété | Description |
---|---|
TimeGenerated | Horodatage (UTC) de la génération du journal. |
NomOpération | Opération associée à l’enregistrement du journal. |
InstanceId | ID de l’instance qui a généré cet enregistrement de journal. |
DeploymentName | Nom du déploiement associé à l’enregistrement du journal. |
ContainerName | Nom du conteneur dans lequel le journal a été généré. |
Message | Contenu du journal. |
AmlOnlineEndpointEventLog
Propriété | Description |
---|---|
TimeGenerated | Horodatage (UTC) de la génération du journal. |
NomOpération | Opération associée à l’enregistrement du journal. |
InstanceId | ID de l’instance qui a généré cet enregistrement de journal. |
DeploymentName | Nom du déploiement associé à l’enregistrement du journal. |
Nom | Nom de l’événement. |
Message | Contenu de l’événement. |
Utilisation d’Application Insights
Les environnements organisés incluent l’intégration d’Application Insights, que vous pouvez activer/désactiver lorsque vous créez un déploiement en ligne. Les métriques et journaux intégrés sont envoyés à Application Insights, dont vous pouvez utiliser les fonctionnalités intégrées (notamment Métriques en direct, Recherche de transactions, Échecs et Performances) pour une analyse plus approfondie.
Pour plus d’informations, consultez Vue d’ensemble d’Application Insights.
Dans le studio, vous pouvez utiliser l’onglet Supervision de la page d’un point de terminaison en ligne pour afficher des graphiques d’ordre général du moniteur d’activité pour le point de terminaison en ligne géré. Pour utiliser l’onglet Supervision, vous devez sélectionner Activer la collecte de données et de diagnostics Application Insights quand vous créez votre point de terminaison.
Contenu connexe
- Découvrez comment examiner les coûts concernant votre point de terminaison déployé.
- Découvrez plus en détail Metrics Explorer.