Surveiller Azure Digital Twins avec des métriques, des alertes et des diagnostics

Azure Digital Twins s’intègre à Azure Monitor pour fournir des métriques et des informations de diagnostic que vous pouvez utiliser pour surveiller vos ressources Azure Digital Twins. Ces métriques sont activées par défaut et vous donnent des informations sur l’état des ressources Azure Digital Twins dans votre abonnement Azure. Les alertes vous avertissent de façon proactive lorsque certaines conditions sont détectées dans vos données de métriques. Vous pouvez également collecter les journaux de diagnostic de votre instance de service pour superviser ses performances, son accès et d’autres données.

Ces fonctionnalités de surveillance vous aident à évaluer l’intégrité globale du service Azure Digital Twins et des ressources qui y sont connectées. Vous pouvez les utiliser pour comprendre ce qui se passe dans votre instance Azure Digital Twins et analyser des causes racines sur des problèmes sans avoir besoin de contacter le support Azure.

Elles sont accessibles à partir du Portail Azure, regroupées sous le titre Surveillance de la ressource Azure Digital Twins.

Screenshot of the Azure portal showing the Monitoring options.

Métriques et alertes

Pour obtenir des informations générales sur l’affichage des métriques de ressources Azure, consultez Prise en main de l’Explorateur de métriques dans la documentation Azure Monitor. Pour obtenir des informations générales sur la configuration des alertes pour les métriques Azure, consultez Créer une règle d’alerte.

Le reste de cette section décrit les métriques suivies par chaque instance Azure Digital Twins, et la façon dont chaque métrique se rattache à l’état global de votre instance.

Métriques pour le suivi des limites de service

Vous pouvez configurer ces métriques afin de suivre le moment où vous approchez d’une limite de service publiée pour un certains aspect de votre solution.

Pour configurer le suivi, utilisez la fonctionnalité d’alertes dans Azure Monitor. Vous pouvez définir des seuils pour ces métriques afin de recevoir une alerte quand une métrique atteint un certain pourcentage de sa limite publiée.

Métrique Nom d’affichage de la métrique Unité Type d’agrégation Description Dimensions
TwinCount Nom de jumeaux (préversion) Count Total Nombre total de jumeaux dans une instance Azure Digital Twins. Cette métrique vous permet de déterminer si vous approchez de la limite du service relative au nombre maximal de jumeaux autorisés par instance. Aucun
ModelCount Nombre de modèles (préversion) Count Total Nombre total de modèles dans l’instance Azure Digital Twins. Cette métrique vous permet de déterminer si vous approchez de la limite du service relative au nombre maximal de modèles autorisés par instance. Aucun

Métriques de demande d’API

Métriques en rapport avec des demandes d’API :

Métrique Nom d’affichage de la métrique Unité Type d’agrégation Description Dimensions
ApiRequests Requêtes d’API Count Total Nombre de demandes d’API effectuées pour des opérations de lecture, d’écriture, de suppression et de requête de Digital Twins. Authentification
Opération
Protocole
Code d’état,
Classe de code d’état,
Texte d’état
ApiRequestsFailureRate Taux d’échec des demandes d’API Pourcentage Average Pourcentage de demandes d’API que le service reçoit pour votre instance, qui génèrent un code de réponse d’erreur interne (500) pour une opération de lecture, d’écriture, de suppression ou de requête de Digital Twins. Authentification
Opération
Protocole
Code d’état,
Classe de code d’état,
Texte d’état
ApiRequestsLatency Latence des demandes d’API Millisecondes Average Temps de réponse aux demandes d’API. Cette valeur fait référence au temps qui s’écoule entre le moment où Azure Digital Twins reçoit la requête et le moment où le service envoie un résultat de réussite ou d’échec d’une opération de lecture, d’écriture, de suppression ou de requête de Digital Twins. Authentification
Opération
Protocol

Métriques de facturation

Métriques en rapport avec la facturation :

Métrique Nom d’affichage de la métrique Unité Type d’agrégation Description Dimensions
BillingApiOperations Opérations de l’API de facturation Count Total Métrique de facturation pour le nombre total des demandes d’API adressées au service Azure Digital Twins. Meter ID
BillingMessagesProcessed Messages de facturation traités Count Total Métrique de facturation pour le nombre de messages envoyés à partir d’Azure Digital Twins vers des points de terminaison externes.

Pour être considérée comme un message unique à des fins de facturation, une charge utile ne doit pas dépasser 1 Ko. Les charges utiles supérieures à cette limite sont comptabilisées en tant que messages supplémentaires par incréments de 1 Ko (par conséquent, un message d’une taille comprise entre 1 et 2 Ko sera comptabilisé comme 2 messages, d’une taille comprise entre 2 et 3 Ko comme 3 messages, et ainsi de suite).
Cette restriction s’applique également aux réponses. Par exemple, un appel retournant 1,5 Ko dans le corps de la réponse est facturé comme s’il s’agissait de 2 opérations.
Meter ID
BillingQueryUnits Unités de requête de facturation Count Total Nombre d’unités de requête, mesure calculée en interne de l’utilisation des ressources des services, consommées pour exécuter des requêtes. Une API d’assistance est également disponible pour mesurer les unités de requête : Classe QueryChargeHelper Meter ID

Pour plus d’informations sur la façon dont Azure Digital Twins est facturé, consultez Tarification Azure Digital Twins.

Métriques d’entrée

Métriques en rapport avec l’entrée de données :

Métrique Nom d’affichage de la métrique Unité Type d’agrégation Description Dimensions
IngressEvents Événements d’entrée Count Total Nombre d’événements de télémétrie d’appareil entrants dans Azure Digital Twins. Résultats
IngressEventsFailureRate Taux d’échec des demandes des événement d’entrée Pourcentage Average Pourcentage d’événements de télémétrie d’appareil entrants pour lesquels le service retourne un code de réponse d’erreur interne (500). Résultats
IngressEventsLatency Latence des événement d’entrée Millisecondes Average Temps qui s’écoule entre l’arrivée d’un événement et le moment où il est prêt à être sorti par Azure Digital Twins, moment auquel le service envoie un résultat de réussite/échec. Résultats

Métriques d’opération en bloc (à partir des API Travaux)

Métriques ayant à faire avec les opérations en bloc à partir des API Travaux :

Métrique Nom d’affichage de la métrique Unité Type d’agrégation Description Dimensions
ImportJobLatency Latence d’un travail d’importation Millisecondes Average Temps total nécessaire à l’exécution d’un travail d’importation. Opération
Authentification
Protocol
ImportJobEntityCount Importer un nombre d’entités de travail Count Total Nombre de jumeaux, de modèles ou de relations traités par un travail d’importation. Opération
Résultats
DeleteJobLatency Supprimer la latence du travail Millisecondes Average Temps total nécessaire à la fin d’un travail de suppression. Opération
Authentification
Protocol
DeleteJobEntityCount Supprimer le nombre d’entités de travail Count Total Nombre de modèles, de jumeaux et/ou de relations supprimés dans le cadre d’un travail de suppression. Opération
Résultats

Métriques de routage

Métriques en rapport avec le routage :

Métrique Nom d’affichage de la métrique Unité Type d’agrégation Description Dimensions
MessagesRouted Messages routés Count Total Nombre de messages routés vers un service Azure de point de terminaison comme Event Hubs, Service Bus ou Event Grid. Type de point de terminaison,
Résultats
RoutingFailureRate Taux d’échec du routage Pourcentage Average Pourcentage d’événements qui génèrent une erreur lors de leur routage d’Azure Digital Twins vers un service Azure de point de terminaison, comme Event Hubs, Service Bus ou Event Grid. Type de point de terminaison,
Résultats
RoutingLatency Latence du routage Millisecondes Average Temps qui s’écoule entre le routage d’un événement à partir d’Azure Digital Twins et sa publication sur le service Azure de point de terminaison, comme Event Hubs, Service Bus ou Event Grid. Type de point de terminaison,
Résultats

Dimensions de métrique

Les dimensions permettent d’identifier plus de détails sur les métriques. Certaines des métriques de routage fournissent des informations pour chaque point de terminaison. Le tableau ci-dessous répertorie les valeurs possibles de ces dimensions.

Dimension Valeurs
Authentification OAuth
Opération (pour les demandes d’API) Microsoft.DigitalTwins/digitaltwins/delete,
Microsoft.DigitalTwins/digitaltwins/write,
Microsoft.DigitalTwins/digitaltwins/read,
Microsoft.DigitalTwins/eventroutes/read,
Microsoft.DigitalTwins/eventroutes/write,
Microsoft.DigitalTwins/eventroutes/delete,
Microsoft.DigitalTwins/models/read,
Microsoft.DigitalTwins/models/write,
Microsoft.DigitalTwins/models/delete,
Microsoft.DigitalTwins/query/action
Type de point de terminaison Event Grid,
Event Hubs,
Service Bus
Protocol HTTPS
Résultats Succès
Échec
Code de statut 200, 404, 500, etc.
Classe de code d’état 2xx, 4xx, 5xx, etc.
Texte d’état Erreur de serveur interne, Introuvable, etc.

Journaux de diagnostics

Pour obtenir des informations générales sur les paramètres de diagnostic Azure, notamment sur leur activation, consultez Paramètres de diagnostic dans Azure Monitor. Pour plus d’informations sur l’interrogation des journaux de diagnostic à l’aide de Log Analytics, consultez Vue d’ensemble de Log Analytics dans Azure Monitor.

Le reste de cette section décrit les catégories de journaux de diagnostic qu’Azure Digital Twins peut collecter, ainsi que leurs schémas.

Catégories de journal

Voici plus d’informations sur les catégories de journaux collectées par Azure Digital Twins.

Catégorie de journal Description
ADTModelsOperation Consigner tous les appels d’API en lien avec des modèles
ADTQueryOperation Consigner tous les appels d’API en lien avec des requêtes
ADTEventRoutesOperation Consigner tous les appels d’API se rapportant aux itinéraires d’événements, ainsi que la sortie d’événements provenant d’Azure Digital Twins vers un service de point de terminaison comme Event Grid, Event Hubs et Service Bus
ADTDigitalTwinsOperation Consigner tous les appels d’API en lien avec des jumeaux individuels

Chaque catégorie de journal se compose d'opérations d'écriture, de lecture, de suppression et d'action. Ces opérations sont mappées à des appels d'API REST, comme suit :

Type d'événement Opérations de l'API REST
Write PUT et PATCH
Lire GET
DELETE Suppression
Action PUBLICATION

Voici une liste complète des opérations et des appels d’API REST Azure Digital Twins correspondants consignés dans chaque catégorie.

Remarque

Chaque catégorie de journal contient plusieurs opérations/appels d’API REST. Dans le tableau ci-dessous, chaque catégorie de journal est mappée à l’ensemble des opérations/appels d’API REST en dessous, jusqu’à ce que la catégorie suivante du journal soit affichée.

Catégorie de journal Opération Appels d’API REST et autres événements
ADTModelsOperation Microsoft.DigitalTwins/models/write API de mise à jour des modèles de jumeaux numériques
Microsoft.DigitalTwins/models/read API de modèles de jumeaux numériques Get by ID et Liste
Microsoft.DigitalTwins/models/delete API de suppression des modèles de jumeaux numériques
Microsoft.DigitalTwins/models/action API d’ajout des modèles de jumeaux numériques
ADTQueryOperation Microsoft.DigitalTwins/query/action API de jumeaux numériques de requête
ADTEventRoutesOperation Microsoft.DigitalTwins/eventroutes/write API d’ajout de routages d’événements
Microsoft.DigitalTwins/eventroutes/read API de routages d'événements Get by ID et Liste
Microsoft.DigitalTwins/eventroutes/delete API de suppression de routages d’événements
Microsoft.DigitalTwins/eventroutes/action Échec lors de la tentative de publication des événements sur un service de point de terminaison (pas un appel d’API)
ADTDigitalTwinsOperation Microsoft.DigitalTwins/digitaltwins/write Ajouter des jumeaux numériques, Ajouter une relation, Mettre à jour, Mettre à jour un composant
Microsoft.DigitalTwins/digitaltwins/read Jumeaux numériques Get by ID, Obtenir un composant, Obtenir une relation par ID, Relations entrantes, Lister les relations
Microsoft.DigitalTwins/digitaltwins/delete Supprimer des jumeaux numériques, Supprimer une relation
Microsoft.DigitalTwins/digitaltwins/action Envoyer des données de télémétrie de composant de jumeaux numériques, Envoyer des données de télémétrie

Schémas des journaux

Chaque catégorie de journal dispose d'un schéma qui définit la façon dont les événements de cette catégorie sont signalés. Chaque entrée de journal est stockée sous forme de texte et formatée en tant qu'objet blob JSON. Les champs du journal et des exemples de corps JSON sont fournis pour chaque type de journal ci-dessous.

ADTDigitalTwinsOperation, ADTModelsOperation et ADTQueryOperation utilisent un schéma de journal d’API cohérent. ADTEventRoutesOperation étend le schéma pour qu’il contienne un champ endpointName dans les propriétés.

Schéma des journaux d'API

Ce schéma de journal est cohérent pour ADTDigitalTwinsOperation, ADTModelsOperation et ADTQueryOperation. Le même schéma est également utilisé pour ADTEventRoutesOperation, à l’exception du nom de l’opération Microsoft.DigitalTwins/eventroutes/action (pour plus d’informations sur ce schéma, consultez la section suivante, Schémas de journaux de sortie).

Le schéma contient des informations relatives aux appels d’API à une instance d’Azure Digital Twins.

Vous trouverez ci-dessous les descriptions des champs et des propriétés des journaux d'API.

Nom du champ Type de données Description
Time Date/Heure Date et heure (UTC) auxquelles l'événement s'est produit
ResourceId Chaîne ID Azure Resource Manager de la ressource sur laquelle l'événement s'est produit
OperationName Chaîne Type d'action réalisée pendant l'événement
OperationVersion Chaîne Version de l'API utilisée pendant l'événement
Category Chaîne Type de ressource émise
ResultType Chaîne Résultat de l'événement
ResultSignature Chaîne Code d'état HTTP de l'événement
ResultDescription Chaîne Détails supplémentaires sur l'événement
DurationMs Chaîne Temps nécessaire pour exécuter l'événement, en millisecondes
CallerIpAddress Chaîne Adresse IP source masquée de l'événement
CorrelationId Guid Identificateur unique de l’événement
ApplicationId Guid ID d’application utilisé dans l’autorisation du porteur
Level Int Gravité de la journalisation de l'événement
Location Chaîne Région où s'est produit l'événement
RequestUri Uri Point de terminaison utilisé pendant l'événement
TraceId Chaîne TraceId, dans le cadre du contexte de suivi du W3C. ID de la trace entière utilisé pour identifier de façon unique une trace distribuée sur plusieurs systèmes.
SpanId Chaîne SpanId dans le cadre du contexte de suivi du W3C. ID de cette requête dans la trace.
ParentId Chaîne ParentId dans le cadre du contexte de suivi du W3C. Une requête sans ID parent est la racine de la trace.
TraceFlags Chaîne TraceFlags dans le cadre du contexte de suivi du W3C. Contrôle des indicateurs de suivi tels que l’échantillonnage, le niveau de trace, etc.
TraceState Chaîne TraceState dans le cadre du contexte de suivi du W3C. Informations d’identification de trace supplémentaires spécifiques au fournisseur pour s’étendre sur différents systèmes de suivi distribués.

Vous trouverez ci-dessous des exemples de corps JSON correspondant à ces types de journaux.

ADTDigitalTwinsOperation
{
  "time": "2020-03-14T21:11:14.9918922Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/digitaltwins/write",
  "operationVersion": "2020-10-31",
  "category": "DigitalTwinOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": 8,
  "callerIpAddress": "13.68.244.*",
  "correlationId": "2f6a8e64-94aa-492a-bc31-16b9f0b16ab3",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/digitaltwins/factory-58d81613-2e54-4faa-a930-d980e6e2a884?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTModelsOperation
{
  "time": "2020-10-29T21:12:24.2337302Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/models/write",
  "operationVersion": "2020-10-31",
  "category": "ModelsOperation",
  "resultType": "Success",
  "resultSignature": "201",
  "resultDescription": "",
  "durationMs": "80",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "9dcb71ea-bb6f-46f2-ab70-78b80db76882",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/Models?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTQueryOperation
{
  "time": "2020-12-04T21:11:44.1690031Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/query/action",
  "operationVersion": "2020-10-31",
  "category": "QueryOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": "314",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "1ee2b6e9-3af4-4873-8c7c-1a698b9ac334",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/query?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTEventRoutesOperation

Voici un exemple de corps JSON pour une ADTEventRoutesOperation qui n’est pas de type Microsoft.DigitalTwins/eventroutes/action (pour plus d’informations sur ce schéma, consultez la section suivante, Schémas de journaux de sortie).

  {
    "time": "2020-10-30T22:18:38.0708705Z",
    "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
    "operationName": "Microsoft.DigitalTwins/eventroutes/write",
    "operationVersion": "2020-10-31",
    "category": "EventRoutesOperation",
    "resultType": "Success",
    "resultSignature": "204",
    "resultDescription": "",
    "durationMs": 42,
    "callerIpAddress": "212.100.32.*",
    "correlationId": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
    "identity": {
      "claims": {
        "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
      }
    },
    "level": "4",
    "location": "southcentralus",
    "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/EventRoutes/egressRouteForEventHub?api-version=2020-10-31",
    "properties": {},
    "traceContext": {
      "traceId": "95ff77cfb300b04f80d83e64d13831e7",
      "spanId": "b630da57026dd046",
      "parentId": "9f0de6dadae85945",
      "traceFlags": "01",
      "tracestate": "k1=v1,k2=v2"
    }
  },

Schéma des journaux de sortie

L’exemple suivant est un schéma pour les journaux ADTEventRoutesOperation spécifiques au nom d’opération Microsoft.DigitalTwins/eventroutes/action. Ceux-ci contiennent des détails sur les exceptions et les opérations d'API relatives aux points de terminaison de sortie connectés à une instance d'Azure Digital Twins.

Nom du champ Type de données Description
Time Date/Heure Date et heure (UTC) auxquelles l'événement s'est produit
ResourceId Chaîne ID Azure Resource Manager de la ressource sur laquelle l'événement s'est produit
OperationName Chaîne Type d'action réalisée pendant l'événement
Category Chaîne Type de ressource émise
ResultDescription Chaîne Détails supplémentaires sur l'événement
CorrelationId Guid Le client a fourni un identificateur unique pour l'événement
ApplicationId Guid ID d’application utilisé dans l’autorisation du porteur
Level Int Gravité de la journalisation de l'événement
Location Chaîne Région où s'est produit l'événement
TraceId Chaîne TraceId, dans le cadre du contexte de suivi du W3C. ID de la trace entière utilisé pour identifier de façon unique une trace distribuée sur plusieurs systèmes.
SpanId Chaîne SpanId dans le cadre du contexte de suivi du W3C. ID de cette requête dans la trace.
ParentId Chaîne ParentId dans le cadre du contexte de suivi du W3C. Une requête sans ID parent est la racine de la trace.
TraceFlags Chaîne TraceFlags dans le cadre du contexte de suivi du W3C. Contrôle des indicateurs de suivi tels que l’échantillonnage, le niveau de trace, etc.
TraceState Chaîne TraceState dans le cadre du contexte de suivi du W3C. Informations d’identification de trace supplémentaires spécifiques au fournisseur pour s’étendre sur différents systèmes de suivi distribués.
EndpointName Chaîne Nom du point de terminaison de sortie créé dans Azure Digital Twins

Voici un exemple de corps JSON pour une ADTEventRoutesOperation qui est de type Microsoft.DigitalTwins/eventroutes/action.

{
  "time": "2020-11-05T22:18:38.0708705Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/eventroutes/action",
  "operationVersion": "",
  "category": "EventRoutesOperation",
  "resultType": "",
  "resultSignature": "",
  "resultDescription": "Unable to send EventHub message to [myPath] for event Id [f6f45831-55d0-408b-8366-058e81ca6089].",
  "durationMs": -1,
  "callerIpAddress": "",
  "correlationId": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "",
  "properties": {
    "endpointName": "myEventHub"
  },
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
},

Étapes suivantes

Pour en savoir plus sur Azure Monitor et ses fonctionnalités, consultez la documentation Azure Monitor.