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 :

  1. Accédez au studio Azure Machine Learning.

  2. Dans la barre de navigation gauche, sélectionnez la page Points de terminaison.

  3. Sélectionnez un point de terminaison en cliquant sur son nom.

  4. 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.

  5. 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.

    Capture d’écran montrant comment accéder aux métriques d’un point de terminaison et d’un déploiement à partir de l’interface utilisateur studio.

Pour accéder aux métriques directement à partir du Portail Azure :

  1. Connectez-vous au portail Azure.

  2. 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.

  3. 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 et ms-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 :

  1. En haut à droite de la page de métriques, sélectionnez Nouvelle règle d’alerte.

    Capture d’écran montrant le bouton « Nouvelle règle d’alerte » encadré en rouge.

  2. Sélectionnez un nom de condition pour indiquer à quel moment l’alerte doit être déclenchée.

    Capture d’écran montrant le bouton « Configurer la logique du signal » encadré en rouge.

  3. 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.

  4. 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.

  1. Sur le portail Azure, accédez au groupe de ressources qui contient votre point de terminaison, puis sélectionnez le point de terminaison.

  2. Dans la section Surveillance à gauche de la page, sélectionnez Paramètres de diagnostic, puis Ajouter des paramètres.

  3. 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.

    Capture d’écran de la boîte de dialogue des paramètres de diagnostic

    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.

  4. Envoyez des requêtes de scoring au point de terminaison. Cette activité doit créer des entrées dans les journaux.

  5. 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.

  6. 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.

    Capture d’écran montrant les requêtes de journal.

  7. Sélectionnez Exécuter.

    Captures d’écran des résultats après l’exécution d’une requête.

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.

Capture d’écran 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.

Capture d’écran montrant la surveillance des métriques au niveau du point de terminaison dans le studio.