Supervisión de Azure Digital Twins con métricas, alertas y diagnósticos

Azure Digital Twins se integra con Azure Monitor para proporcionar métricas e información de diagnóstico que puede usar para supervisar los recursos de Azure Digital Twins. Las métricas están habilitadas de forma predeterminada y proporcionan información sobre el estado de los recursos de Azure Digital Twins en la suscripción de Azure. Las alertas le pueden informar de manera proactiva cuando se detectan ciertas condiciones en los datos de métricas. También puede recopilar registros de diagnóstico de una instancia de servicio para supervisar su rendimiento, acceso y otros datos.

Estas características de supervisión le ayudan a evaluar el estado general del servicio Azure Digital Twins y los recursos conectados a este. Se pueden usar para hacerse una idea de lo que ocurre en una instancia de Azure Digital Twins y analizar las causas principales de los problemas sin necesidad de ponerse en contacto con el soporte técnico de Azure.

Se puede acceder a ellos desde Azure Portal, agrupados en el encabezado Supervisión del recurso de Azure Digital Twins.

Screenshot of the Azure portal showing the Monitoring options.

Métricas y alertas

Para obtener información general sobre cómo ver las métricas de recursos de Azure, consulte Introducción al explorador de métricas en la documentación de Azure Monitor. Para obtener información general sobre cómo configurar alertas para métricas de Azure, consulte Creación de una nueva regla de alertas.

En el resto de la sección se describen las métricas de las que las instancias de Azure Digital Twins realizan un seguimiento y cómo se relaciona cada métrica con el estado general de la instancia.

Métricas para el seguimiento de los límites del servicio

Puede configurar estas métricas para que realicen un seguimiento cuando se acerque al límite del servicio publicado en algún aspecto de la solución.

Para configurar este seguimiento, use la característica de alertas de Azure Monitor. Asimismo, puede definir los umbrales de estas métricas para recibir una alerta cuando una métrica alcance un determinado porcentaje de su límite publicado.

Métrica Nombre de métrica para mostrar Unidad Tipo de agregación Descripción Dimensiones
TwinCount Recuento de gemelos (versión preliminar) Count Total Número total de gemelos de una instancia de Azure Digital Twins. Use esta métrica para determinar si se está aproximando al límite del servicio respecto al número máximo de gemelos permitido por instancia. None
ModelCount Recuento de modelos (versión preliminar) Count Total Número total de modelos de una instancia de Azure Digital Twins. Use esta métrica para determinar si se está aproximando al límite del servicio respecto al número máximo de modelos permitido por instancia. None

Métricas de solicitud de API

Métricas relacionadas con las solicitudes de API:

Métrica Nombre de métrica para mostrar Unidad Tipo de agregación Descripción Dimensions
ApiRequests Solicitudes de API Count Total Número de solicitudes de API realizadas para las operaciones de lectura, escritura, eliminación y consulta de Digital Twins. Autenticación
Operación
Protocolo
Código de estado,
Clase de código de estado,
Texto de estado
ApiRequestsFailureRate Tasa de errores de solicitudes de API Percent Average Porcentaje de solicitudes de API que el servicio recibe para la instancia que proporciona un código de respuesta de error interno (500) para las operaciones de lectura, escritura, eliminación y consulta de Digital Twins. Autenticación
Operación
Protocolo
Código de estado,
Clase de código de estado,
Texto de estado
ApiRequestsLatency Latencia de solicitudes de API Milisegundos Average Tiempo de respuesta de las solicitudes de API. Este valor hace referencia a la hora desde la que Azure Digital Twins recibe la solicitud hasta que el servicio envía un resultado de éxito o error para las operaciones de lectura, escritura, eliminación y consulta de Digital Twins. Autenticación
Operación
Protocolo

Métricas de facturación

Métricas relacionadas con la facturación:

Métrica Nombre de métrica para mostrar Unidad Tipo de agregación Descripción Dimensiones
BillingApiOperations Operaciones de la API de facturación Count Total Métrica de facturación para el recuento de todas las solicitudes de API realizadas en el servicio Azure Digital Twins. Meter ID
BillingMessagesProcessed Mensajes de facturación procesados Count Total Métrica de facturación para el número de mensajes enviados desde Azure Digital Twins a puntos de conexión externos.

Para que se considere un solo mensaje para su facturación, una carga no debe ser superior a 1 KB. Las cargas mayores que este límite se contarán como mensajes adicionales en incrementos de 1 KB (por lo que un mensaje de entre 1 y 2 KB se contará como dos mensajes; otro de entre 2 y 3 KB serán tres mensajes, etc.).
Esta restricción también se aplica a las respuestas, por lo que una llamada que devuelve 1,5 KB en el cuerpo de la respuesta, por ejemplo, se facturará como dos operaciones.
Meter ID
BillingQueryUnits Facturación de unidades de consulta Count Total Número de unidades de consulta, una medida del uso de recursos de servicio calculada internamente, que se consume para ejecutar consultas. También hay una API auxiliar disponible para medir las unidades de consulta: clase QueryChargeHelper. Meter ID

Para más información sobre la forma en que se factura Azure Digital Twins, consulte Precios de Azure Digital Twins.

Métricas de entrada

Métricas relacionadas con la entrada de datos:

Métrica Nombre de métrica para mostrar Unidad Tipo de agregación Descripción Dimensiones
IngressEvents Eventos de entrada Count Total Número de eventos de telemetría de dispositivo entrantes en Azure Digital Twins. Resultado
IngressEventsFailureRate Tasa de errores de los eventos de entrada Percent Average Porcentaje de eventos de telemetría de dispositivo entrantes para los que el servicio devuelve un código de respuesta de error interno (500). Resultado
IngressEventsLatency Latencia de eventos de entrada Milisegundos Average Hora a partir de la cual llega un evento cuando está listo para que Azure Digital Twins lo haga salir, momento en el que el servicio envía un resultado correcto o erróneo. Resultado

Métricas de operaciones masivas (desde las API de trabajos)

Métricas que tienen que ver con las operaciones masivas de las API de trabajos:

Métrica Nombre de métrica para mostrar Unidad Tipo de agregación Descripción Dimensiones
ImportJobLatency Latencia del trabajo de importación Milisegundos Average Tiempo total necesario para que se complete un trabajo de importación. Operación
Autenticación
Protocolo
ImportJobEntityCount Importar recuento de entidades de trabajo Count Total Número de gemelos, modelos o relaciones procesados por un trabajo de importación. Operación
Resultado
DeleteJobLatency Eliminar latencia de trabajo Milisegundos Average Tiempo total necesario para que se complete un trabajo de eliminación. Operación
Autenticación
Protocolo
DeleteJobEntityCount Eliminar recuento de entidades de trabajo Count Total Número de modelos, gemelos o relaciones eliminados como parte de un trabajo de eliminación. Operación
Resultado

Métricas de enrutamiento

Métricas relacionadas con el enrutamiento:

Métrica Nombre de métrica para mostrar Unidad Tipo de agregación Descripción Dimensiones
MessagesRouted Mensajes enrutados Count Total Número de mensajes enrutados a un servicio de Azure de punto de conexión, como Event Hubs, Service Bus o Event Grid. Tipo de punto de conexión,
Resultado
RoutingFailureRate Tasa de errores de enrutamiento Percent Average Porcentaje de eventos que producen un error a medida que se enrutan desde Azure Digital Twins a un servicio de Azure de punto de conexión, como Event Hubs, Service Bus o Event Grid. Tipo de punto de conexión,
Resultado
RoutingLatency Latencia de enrutamiento Milisegundos Average Tiempo transcurrido entre el enrutamiento de un evento desde Azure Digital Twins hasta su publicación en el servicio de Azure de punto de conexión, como Event Hubs, Service Bus o Event Grid. Tipo de punto de conexión,
Resultado

Dimensiones de métricas

Las dimensiones ayudan a identificar más detalles sobre las métricas. Algunas de las métricas de enrutamiento proporcionan información por punto de conexión. En la tabla siguiente se enumeran los valores posibles para estas dimensiones.

Dimensión Valores
Autenticación OAuth
Operación (para las solicitudes de 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
Tipo de punto de conexión Event Grid,
Event Hubs,
Service Bus
Protocolo HTTPS
Resultado Éxito
Error
Código de estado 200, 404, 500, etc.
Clase de código de estado 2xx, 4xx, 5xx, etc.
Texto de estado Error interno del servidor, No encontrado, etc.

Registros de diagnóstico

Para obtener información general sobre la configuración de diagnóstico de Azure, incluido cómo habilitarla, consulte Configuración de diagnóstico en Azure Monitor. Para obtener información sobre cómo consultar registros de diagnóstico mediante Log Analytics, consulte Introducción a Log Analytics en Azure Monitor.

En el resto de esta sección se describen las categorías de registro de diagnóstico que Azure Digital Twins puede recopilar y sus esquemas.

Categorías de registro

Aquí encontrará más detalles sobre las categorías de registros que recopila Azure Digital Twins.

Categoría de registro Descripción
ADTModelsOperation Registra todas las llamadas API relativas a modelos.
ADTQueryOperation Registra todas las llamadas API relativas a consultas.
ADTEventRoutesOperation Registra todas las llamadas API relativas a rutas de eventos, así como la salida de eventos de Azure Digital Twins a un servicio de punto de conexión como Event Grid, Event Hubs y Service Bus.
ADTDigitalTwinsOperation Registra todas las llamadas API que pertenecen a gemelos individuales.

Cada categoría de registro consta de operaciones de escritura, lectura, eliminación y acción. Estas se asignan a las llamadas API REST de la siguiente manera:

Tipo de evento Operaciones de API REST
Escritura PUT y PATCH
Lectura GET
Eliminar Delete
Acción PUBLICAR

Esta es una lista completa de las operaciones y las llamadas API REST de Azure Digital Twins correspondientes que se registran en cada categoría.

Nota:

Cada categoría de registro contiene varias operaciones y llamadas API REST. En la tabla siguiente, cada categoría de registro se asigna a todas las operaciones y llamadas API REST que hay debajo hasta que se muestra la siguiente categoría de registro.

Categoría de registro Operación Llamadas API REST y otros eventos
ADTModelsOperation Microsoft.DigitalTwins/models/write Digital Twin Models Update API
Microsoft.DigitalTwins/models/read Digital Twin Models Get By ID API y List API
Microsoft.DigitalTwins/models/delete Digital Twin Models Delete API
Microsoft.DigitalTwins/models/action Digital Twin Models Add API
ADTQueryOperation Microsoft.DigitalTwins/query/action Query Twins API
ADTEventRoutesOperation Microsoft.DigitalTwins/eventroutes/write Event Routes Add API
Microsoft.DigitalTwins/eventroutes/read Event Routes Get By ID API y List API
Microsoft.DigitalTwins/eventroutes/delete Event Routes Delete API
Microsoft.DigitalTwins/eventroutes/action Error al intentar publicar eventos en un servicio de punto de conexión (no una llamada API)
ADTDigitalTwinsOperation Microsoft.DigitalTwins/digitaltwins/write Agregar, agregar relaciones, actualizar, actualizar componente de Digital Twins
Microsoft.DigitalTwins/digitaltwins/read Obtener por identificador, obtener componente, obtener relación por identificador, enumerar relaciones entrantes, enumerar relaciones de Digital Twins
Microsoft.DigitalTwins/digitaltwins/delete Eliminar, eliminar relación de Digital Twins
Microsoft.DigitalTwins/digitaltwins/action Enviar telemetría de componentes, enviar telemetría de Digital Twins

Esquemas de registro

Cada categoría de registro tiene un esquema que define cómo se notifican los eventos de la categoría de que se trate. Cada entrada de registro individual se almacena como texto y se le da formato como un blob JSON. Los campos del registro y los cuerpos JSON de ejemplo se proporcionan para cada tipo de registro siguiente.

ADTDigitalTwinsOperation, ADTModelsOperation y ADTQueryOperation usan un esquema de registro de API coherente. ADTEventRoutesOperation extiende el esquema para que contenga un campo endpointName en las propiedades.

Esquemas de registro de API

Este esquema de registro es coherente para ADTDigitalTwinsOperation, ADTModelsOperation y ADTQueryOperation. También se usa el mismo esquema para ADTEventRoutesOperation, excepto el nombre de operación Microsoft.DigitalTwins/eventroutes/action (para obtener más información sobre el esquema, consulte la sección siguiente, Esquemas de registro de salida).

El esquema contiene información pertinente para las llamadas a API para una instancia de Azure Digital Twins.

Estas son las descripciones de campo y propiedad de los registros de API.

Nombre del campo Tipo de datos Descripción
Time DateTime La fecha y la hora en que ocurrió el evento de auditoría, en UTC
ResourceId Cadena El identificador de recurso Azure Resource Manager para el recurso en el que tuvo lugar el evento
OperationName Cadena El tipo de acción que se realiza durante el evento
OperationVersion Cadena La versión de API utilizada durante el evento
Category Cadena El tipo de recurso que se está emitiendo
ResultType Cadena El resultado del evento
ResultSignature Cadena El código de estado HTTP para el evento
ResultDescription Cadena Detalles adicionales acerca del evento
DurationMs Cadena Cuánto tiempo se tardó en realizar el evento en milisegundos
CallerIpAddress Cadena Una dirección IP de origen enmascarada para el evento
CorrelationId Guid Identificador único para el evento
ApplicationId Guid Identificador de aplicación usado en la autorización del portador
Level Int La gravedad del registro del evento
Location Cadena La región en la que tuvo lugar el evento
RequestUri Uri El punto de conexión utilizado durante el evento
TraceId Cadena TraceId, como parte del contexto de seguimiento de W3C. Identificador del seguimiento completo usado para identificar de forma única un seguimiento distribuido entre los sistemas.
SpanId Cadena SpanId, como parte del contexto de seguimiento de W3C. Identificador de esta solicitud en el seguimiento.
ParentId Cadena ParentId, como parte del contexto de seguimiento de W3C. Una solicitud sin un identificador primario es la raíz del seguimiento.
TraceFlags Cadena TraceFlags, como parte del contexto de seguimiento de W3C. Controla las marcas de seguimiento, como el muestreo, el nivel de seguimiento, etc.
TraceState Cadena TraceState, como parte del contexto de seguimiento de W3C. Información adicional de identificación de seguimiento específica del proveedor que abarca varios sistemas diferentes de seguimiento distribuido.

A continuación se muestran ejemplos de cuerpos JSON para estos tipos de registros.

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

Este es un ejemplo de cuerpo de JSON de un objeto ADTEventRoutesOperation que no es del tipo Microsoft.DigitalTwins/eventroutes/action (para más información sobre el esquema, consulte la sección siguiente, Esquemas de registro de salida).

  {
    "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"
    }
  },

Esquemas de registro de salida

Este es el esquema para los registros ADTEventRoutesOperation específicos del nombre de operación Microsoft.DigitalTwins/eventroutes/action. Contienen detalles relacionados con las excepciones y las operaciones de API en torno a los puntos de conexión de salida conectados a una instancia de Azure Digital Twins.

Nombre del campo Tipo de datos Descripción
Time DateTime La fecha y la hora en que ocurrió el evento de auditoría, en UTC
ResourceId Cadena El identificador de recurso Azure Resource Manager para el recurso en el que tuvo lugar el evento
OperationName Cadena El tipo de acción que se realiza durante el evento
Category Cadena El tipo de recurso que se está emitiendo
ResultDescription Cadena Detalles adicionales acerca del evento
CorrelationId Guid Identificador único proporcionado por el cliente para el evento
ApplicationId Guid Identificador de aplicación usado en la autorización del portador
Level Int La gravedad del registro del evento
Location Cadena La región en la que tuvo lugar el evento
TraceId Cadena TraceId, como parte del contexto de seguimiento de W3C. Identificador del seguimiento completo usado para identificar de forma única un seguimiento distribuido entre los sistemas.
SpanId Cadena SpanId, como parte del contexto de seguimiento de W3C. Identificador de esta solicitud en el seguimiento.
ParentId Cadena ParentId, como parte del contexto de seguimiento de W3C. Una solicitud sin un identificador primario es la raíz del seguimiento.
TraceFlags Cadena TraceFlags, como parte del contexto de seguimiento de W3C. Controla las marcas de seguimiento, como el muestreo, el nivel de seguimiento, etc.
TraceState Cadena TraceState, como parte del contexto de seguimiento de W3C. Información adicional de identificación de seguimiento específica del proveedor que abarca varios sistemas diferentes de seguimiento distribuido.
EndpointName Cadena El nombre del punto de conexión de salida creado en Azure Digital Twins

Este es un ejemplo de cuerpo JSON para un ADTEventRoutesOperation de tipo 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"
  }
},

Pasos siguientes

Obtenga más información sobre Azure Monitor y sus funcionalidades en la documentación de Azure Monitor.