Monitore os Gêmeos Digitais do Azure com métricas, alertas e diagnósticos

Os Gêmeos Digitais do Azure integram-se ao Azure Monitor para fornecer métricas e informações de diagnóstico que você pode usar para monitorar seus recursos dos Gêmeos Digitais do Azure. As Métricas são habilitadas por padrão e mostram informações sobre o estado dos recursos dos Gêmeos Digitais do Azure em sua assinatura do Azure. Os Alertas podem notificar você proativamente quando determinadas condições são encontradas em seus dados de métricas. Você também pode coletar logs de diagnóstico para sua instância de serviço para monitorar seu desempenho, acesso e outros dados.

Esses recursos de monitoramento podem ajudar você a avaliar a integridade geral do serviço dos Gêmeos Digitais do Azure e dos recursos conectados a ele. Você pode usá-los para entender o que está acontecendo na instância dos Gêmeos Digitais do Azure e executar a análise da causa raiz dos problemas sem precisar entrar em contato com o Suporte do Azure.

Eles podem ser acessados no portal do Azure, agrupados no título Monitoramento do recurso dos Gêmeos Digitais do Azure.

Captura de tela do portal do Azure mostrando as opções de monitoramento.

Métricas e alertas

Para obter informações gerais sobre como exibir métricas de recursos do Azure, consulte Introdução ao gerenciador de métricas na documentação do Azure Monitor. Para obter informações gerais sobre como configurar alertas para métricas do Azure, consulte Criar uma regra de alerta.

O restante desta seção descreve as métricas controladas pelas instâncias dos Gêmeos Digitais do Azure e a relação de cada métrica com o status geral da instância.

Métricas para acompanhar limites de serviço

Você pode configurar essas métricas para saber quando está prestes a atingir um limite de serviço publicado de algum aspecto da solução.

Para configurar o acompanhamento, use o recurso alertas no Azure Monitor. Você pode definir limites para essas métricas para receber um alerta quando uma métrica atingir um percentual do limite publicado.

Métrica Nome de exibição da métrica Unidade Tipo de agregação Descrição Dimensões
TwinCount Contagem de gêmeos (versão prévia) Contagem Total Número total de gêmeos na instância dos Gêmeos Digitais do Azure. Use essa métrica para saber se você está se aproximando do limite de serviço do número máximo de gêmeos permitidos por instância. Nenhum
ModelCount Contagem de modelos (versão prévia) Contagem Total Número total de modelos na instância dos Gêmeos Digitais do Azure. Use essa métrica para saber se você está se aproximando do limite de serviço do número máximo de modelos permitidos por instância. Nenhum

Métricas de solicitação de API

Métricas que têm a ver com solicitações de API:

Métrica Nome de exibição da métrica Unidade Tipo de agregação Descrição Dimensões
ApiRequests Solicitações da API Contagem Total O número de solicitações de API feitas para operações de leitura, gravação, exclusão e consulta dos Gêmeos Digitais. Autenticação,
Operação,
Protocolo,
Código de status,
Classe do código de status,
Texto de status
ApiRequestsFailureRate Taxa de falhas das solicitações de API Porcentagem Média O percentual de solicitações de API da instância recebidas pelo serviço que resultam no código de resposta de erro interno (500), referentes a operações de leitura, gravação, exclusão e consulta dos Gêmeos Digitais. Autenticação,
Operação,
Protocolo,
Código de status,
Classe do código de status,
Texto de status
ApiRequestsLatency Latência das solicitações a API Milissegundos Média O tempo de resposta das solicitações de API. Esse valor se refere ao tempo desde o momento em que os Gêmeos Digitais do Azure recebem a solicitação de leitura, gravação, exclusão ou consulta, até o momento em que o serviço envia a mensagem de êxito/falha. Autenticação,
Operação,
Protocolo

Métricas de cobrança

Métricas que têm a ver com a cobrança:

Métrica Nome de exibição da métrica Unidade Tipo de agregação Descrição Dimensões
BillingApiOperations Operações da API de cobrança Contagem Total Métrica de cobrança da contagem de todas as solicitações de API feitas no serviço de Gêmeos Digitais do Azure. ID de Medidor
BillingMessagesProcessed Mensagens de cobrança processadas Contagem Total Métrica de cobrança do número de mensagens enviadas dos Gêmeos Digitais do Azure a pontos de extremidade externos.

Para ser considerado uma mensagem para fins de cobrança, o conteúdo deve ter menos de 1 KB. Conteúdos maiores que esse limite serão contados como mensagens adicionais em incrementos de 1 KB (portanto, uma mensagem entre 1 KB e 2 KB será contada como duas mensagens, entre 2 KB e 3 KB serão três mensagens e assim por diante).
Essa restrição também se aplica a respostas, portanto, uma chamada que retorna 1,5 KB no corpo da resposta, por exemplo, será cobrada como duas operações.
ID de Medidor
BillingQueryUnits Unidades de consulta de cobrança Contagem Total O número de unidades de consulta, uma medida de uso de recursos de serviço calculada internamente, consumidas para executar consultas. Também há uma API auxiliar disponível para medir as unidades de consulta: classe QueryChargeHelper ID de Medidor

Para obter mais informações sobre a cobrança dos Gêmeos Digitais do Azure, confira Preço dos Gêmeos Digitais do Azure.

Métricas de entrada

Métricas que têm a ver com a entrada de dados:

Métrica Nome de exibição da métrica Unidade Tipo de agregação Descrição Dimensões
IngressEvents Eventos de entrada Contagem Total O número de eventos de telemetria de dispositivos recebidos no Gêmeos Digitais do Azure. Resultado
IngressEventsFailureRate Taxa de falha de eventos de entrada Porcentagem Média A porcentagem de eventos de telemetria de dispositivos de entrada para os quais o serviço retorna um código de resposta de erro interno (500). Resultado
IngressEventsLatency Latência de eventos de entrada Milissegundos Média O tempo entre a chegada do evento e o momento quando ele está pronto para sair dos Gêmeos Digitais do Azure, momento no qual o serviço envia o resultado êxito/falha. Resultado

Métricas de operação em massa (das APIs de trabalhos)

Métricas relacionadas a operações em massa das APIs de trabalhos:

Métrica Nome de exibição da métrica Unidade Tipo de agregação Descrição Dimensões
ImportJobLatency Importar latência do trabalho Milissegundos Média Tempo total necessário para que um trabalho de importação seja concluído. Operação,
Autenticação,
Protocolo
ImportJobEntityCount Importar contagem de entidades de trabalho Contagem Total O número de gêmeos, modelos ou relações processados por um trabalho de importação. Operação,
Resultado
DeleteJobLatency Excluir latência do trabalho Milissegundos Média Tempo total necessário para a conclusão de uma tarefa de exclusão. Operação,
Autenticação,
Protocolo
DeleteJobEntityCount Excluir Contagem de Entidades de Trabalho Contagem Total O número de modelos, gêmeos e/ou relacionamentos excluídos como parte de uma tarefa de exclusão. Operação,
Resultado

Métricas de roteamento

Métricas que têm a ver com o roteamento:

Métrica Nome de exibição da métrica Unidade Tipo de agregação Descrição Dimensões
MessagesRouted Mensagens roteadas Contagem Total O número de mensagens roteadas para um serviço do Azure de ponto de extremidade, como Hubs de Eventos, Barramento de Serviço ou Grade de Eventos. Tipo de ponto de extremidade,
Resultado
RoutingFailureRate Taxa de falha de roteamento Porcentagem Média O percentual de eventos que resultam em erro durante o roteamento dos Gêmeos Digitais do Azure até um serviço do Azure de ponto de extremidade, como os Hubs de Eventos, o Barramento de Serviço ou a Grade de Eventos. Tipo de ponto de extremidade,
Resultado
RoutingLatency Latência de roteamento Milissegundos Média O tempo entre o roteamento do evento nos Gêmeos Digitais do Azure até a publicação dele no serviço do Azure de ponto de extremidade, como os Hubs de Eventos, o Barramento de Serviço ou a Grade de Eventos. Tipo de ponto de extremidade,
Resultado

Dimensões de métrica

As dimensões ajudam a identificar mais detalhes sobre as métricas. Algumas das métricas de roteamento apresentam informações por ponto de extremidade. A tabela a seguir contém os valores possíveis dessas dimensões.

Dimensão Valores
Autenticação OAuth
Operação (para solicitações 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 Ponto de Extremidade Grade de Eventos,
Hubs de Eventos,
Barramento de Serviço
Protocolo HTTPS
Resultado Êxito,
Falha
Código de status 200, 404, 500 e assim por diante.
Classe do código de status 2xx, 4xx, 5xx e assim por diante.
Texto de status Erro interno do servidor, não encontrado e assim por diante.

Logs de diagnóstico

Para obter informações gerais sobre as configurações de diagnóstico do Azure, incluindo como habilitá-las, consulte Configurações de diagnóstico no Azure Monitor. Para obter informações sobre como consultar logs de diagnóstico usando o Log Analytics, consulte Visão geral do Log Analytics no Azure Monitor.

O restante desta seção descreve as categorias de log de diagnóstico que os Gêmeos Digitais do Azure podem coletar e seus esquemas.

Categorias de log

Aqui estão mais detalhes sobre as categorias de logs que os Gêmeos Digitais do Azure coletam.

Categoria do log Descrição
ADTModelsOperation Registrar em log todas as chamadas à API relacionadas aos Modelos
ADTQueryOperation Registrar em log todas as chamadas à API relacionadas às Consultas
ADTEventRoutesOperation Registrar em log todas as chamadas à API relacionadas a Rotas de Eventos e saída de eventos dos Gêmeos Digitais do Azure para um serviço de ponto de extremidade como a Grade de Eventos, os Hubs de Eventos e o Barramento de Serviço
ADTDigitalTwinsOperation Registrar em log todas as chamadas à API relacionadas aos gêmeos individuais

Cada categoria de log consiste em operações de gravação, leitura, exclusão e ação. Estas categorias são mapeadas para chamadas à API REST da seguinte maneira:

Tipo de evento Operações da API REST
Gravar PUT e PATCH
Ler GET
Excluir Delete (excluir)
Ação POST

Veja uma lista abrangente das operações e das chamadas à API REST dos Gêmeos Digitais do Azure que são registradas em log em cada categoria.

Observação

Cada categoria de log contém várias operações/chamadas à API REST. Na tabela a seguir, cada categoria de log é mapeada para todas as operações/chamadas à API REST abaixo dela até que a próxima categoria de log seja listada.

Categoria do log Operação Chamadas à API REST e outros eventos
ADTModelsOperation Microsoft.DigitalTwins/models/write API de atualização de modelos de gêmeo digital
Microsoft.DigitalTwins/models/read APIs de lista e obtenção por ID de modelos de gêmeo digital
Microsoft.DigitalTwins/models/delete API de exclusão de modelos de gêmeo digital
Microsoft.DigitalTwins/models/action API de adição de modelos de gêmeo digital
ADTQueryOperation Microsoft.DigitalTwins/query/action API de gêmeos de consulta
ADTEventRoutesOperation Microsoft.DigitalTwins/eventroutes/write API de adição de rotas de eventos
Microsoft.DigitalTwins/eventroutes/read APIs de lista e obtenção por ID de rotas de eventos
Microsoft.DigitalTwins/eventroutes/delete API de exclusão de rotas de eventos
Microsoft.DigitalTwins/eventroutes/action Falha ao tentar publicar eventos em um serviço de ponto de extremidade (não uma chamada à API)
ADTDigitalTwinsOperation Microsoft.DigitalTwins/digitaltwins/write Adição de Gêmeos Digitais, adicionar relacionamento, atualizar, atualizar componente
Microsoft.DigitalTwins/digitaltwins/read Obtenção por ID de Gêmeos Digitais, obter componente, obter relacionamento por ID, listar relacionamentos de entrada, listar relacionamentos
Microsoft.DigitalTwins/digitaltwins/delete Exclusão de Gêmeos Digitais, excluir relacionamento
Microsoft.DigitalTwins/digitaltwins/action Telemetria do componente de envio Gêmeos Digitais, enviar telemetria

Esquemas de log

Cada categoria de log tem um esquema que define como os eventos nessa categoria são relatados. Cada entrada de log individual é armazenada como texto e formatada como um blob JSON. Os campos no log e os corpos JSON de exemplo são fornecidos para cada tipo de log abaixo.

ADTDigitalTwinsOperation, ADTModelsOperation e ADTQueryOperation usam um esquema de log de API consistente. ADTEventRoutesOperation estende o esquema para conter um campo endpointName nas propriedades.

Esquemas de log de API

Esse esquema de log é consistente para ADTDigitalTwinsOperation, ADTModelsOperation e ADTQueryOperation. O mesmo esquema também é usado para ADTEventRoutesOperation, exceto o nome da operação Microsoft.DigitalTwins/eventroutes/action (para obter mais informações sobre esse esquema, confira a próxima seção, Esquemas de log de saída).

O esquema contém informações pertinentes a chamadas à API para uma instância dos Gêmeos Digitais do Azure.

Aqui estão as descrições de campo e propriedade para logs de API.

Nome do campo Tipo de dados Descrição
Time Datetime A data e hora em que o evento de auditoria ocorreu, em UTC
ResourceId String A ID de recurso do Azure Resource Manager para o recurso em que o evento ocorreu
OperationName String O tipo de ação que está sendo executada durante o evento
OperationVersion String A versão da API usada durante o evento
Category String O tipo de recurso que está sendo emitido
ResultType String Resultado do evento
ResultSignature String Código de status HTTP para o evento
ResultDescription String Detalhes adicionais sobre o evento
DurationMs String Quanto tempo demorou para executar o evento em milissegundos
CallerIpAddress String Um endereço IP de origem mascarado para o evento
CorrelationId Guid Identificador exclusivo do evento
ApplicationId Guid ID do aplicativo usada na autorização de portador
Level Int A severidade do registro em log do evento
Location String A região onde o evento ocorreu
RequestUri Uri O ponto de extremidade usado durante o evento
TraceId String TraceId, como parte do contexto de rastreamento do W3C. A ID do rastreamento inteiro usado para identificar exclusivamente um rastreamento distribuído entre sistemas.
SpanId String SpanId, como parte do contexto de rastreamento do W3C. A ID desta solicitação no rastreamento.
ParentId String ParentId, como parte do contexto de rastreamento do W3C. Uma solicitação sem uma ID pai é a raiz do rastreamento.
TraceFlags String TraceFlags, como parte do contexto de rastreamento do W3C. Controla os sinalizadores de rastreamento, como amostragem, o nível de rastreamento e assim por diante.
TraceState String TraceState, como parte do contexto de rastreamento do W3C. Informações adicionais de identificação de rastreamento específicas do fornecedor para abranger diferentes sistemas de rastreamento distribuídos.

Veja a seguir os corpos de JSON de exemplo para esses tipos de logs.

ADTDigitalTwinsOperation
{
  "time": "2020-03-14T21:11:14.9918922Z",
  "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "aaaa0000-bb11-2222-33cc-444444dddddd",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "bbbb1111-cc22-3333-44dd-555555eeeeee",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "cccc2222-dd33-4444-55ee-666666ffffff",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "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

Veja um exemplo de corpo JSON para uma ADTEventRoutesOperation que não é do tipo Microsoft.DigitalTwins/eventroutes/action (para obter mais informações sobre esse esquema, confira a próxima seção, Esquemas de log de saída).

  {
    "time": "2020-10-30T22:18:38.0708705Z",
    "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "dddd3333-ee44-5555-66ff-777777aaaaaa",
    "identity": {
      "claims": {
        "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
      }
    },
    "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 log de saída

O exemplo a seguir é o esquema para logs de ADTEventRoutesOperation específicos do nome da operação Microsoft.DigitalTwins/eventroutes/action. Eles contêm detalhes relacionados à exceções e a operações de API em relação aos pontos de extremidade de saída conectados a uma instância de Gêmeos Digitais do Azure.

Nome do campo Tipo de dados Descrição
Time Datetime A data e hora em que o evento de auditoria ocorreu, em UTC
ResourceId String A ID de recurso do Azure Resource Manager para o recurso em que o evento ocorreu
OperationName String O tipo de ação que está sendo executada durante o evento
Category String O tipo de recurso que está sendo emitido
ResultDescription String Detalhes adicionais sobre o evento
CorrelationId Guid Identificador exclusivo fornecido pelo cliente para o evento
ApplicationId Guid ID do aplicativo usada na autorização de portador
Level Int A severidade do registro em log do evento
Location String A região onde o evento ocorreu
TraceId String TraceId, como parte do contexto de rastreamento do W3C. A ID do rastreamento inteiro usado para identificar exclusivamente um rastreamento distribuído entre sistemas.
SpanId String SpanId, como parte do contexto de rastreamento do W3C. A ID desta solicitação no rastreamento.
ParentId String ParentId, como parte do contexto de rastreamento do W3C. Uma solicitação sem uma ID pai é a raiz do rastreamento.
TraceFlags String TraceFlags, como parte do contexto de rastreamento do W3C. Controla os sinalizadores de rastreamento, como amostragem, o nível de rastreamento e assim por diante.
TraceState String TraceState, como parte do contexto de rastreamento do W3C. Informações adicionais de identificação de rastreamento específicas do fornecedor para abranger diferentes sistemas de rastreamento distribuídos.
EndpointName String O nome do ponto de extremidade de saída criada nos Gêmeos Digitais do Azure

Veja um exemplo de corpo JSON para um ADTEventRoutesOperation do tipo Microsoft.DigitalTwins/eventroutes/action.

{
  "time": "2020-11-05T22:18:38.0708705Z",
  "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "dddd3333-ee44-5555-66ff-777777aaaaaa",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "",
  "properties": {
    "endpointName": "myEventHub"
  },
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
},

Próximas etapas

Leia mais sobre o Azure Monitor e seus recursos na documentação do Azure Monitor.