Compartilhar via


Acessar métricas internas no Azure IoT Edge

Aplica-se a:Marca de seleção do IoT Edge 1.5 IoT Edge 1.5

Importante

O IoT Edge 1.5 LTS é a versão com suporte. O IoT Edge 1.4 LTS atingirá o fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Os componentes de runtime do IoT Edge, o hub do IoT Edge e o agente do IoT Edge produzem métricas internas no formato de exposição do Prometheus. Acesse essas métricas remotamente para monitorar e entender a integridade de um dispositivo do IoT Edge.

Use sua própria solução para acessar essas métricas ou usar o módulo coletor de métricas, que coleta as métricas internas e as envia para o Azure Monitor ou o Hub IoT do Azure. Para obter mais informações, confira Coletar e transportar métricas.

As métricas são expostas por padrão na porta 9600 dos módulos edgeHub e edgeAgent (http://edgeHub:9600/metrics e http://edgeAgent:9600/metrics). Eles não são mapeados para o host por padrão.

Acesse as métricas do host expondo e mapeando a porta de métricas no createOptions do módulo. O exemplo a seguir mapeia a porta de métricas padrão para a porta 9601 no host:

{
  "ExposedPorts": {
    "9600/tcp": {}
  },
  "HostConfig": {
    "PortBindings": {
      "9600/tcp": [
        {
          "HostPort": "9601"
        }
      ]
    }
  }
}

Escolha números de porta de host diferentes e exclusivos ao mapear os pontos de extremidade de métricas do edgeHub e do edgeAgent.

Observação

A variável de ambiente httpSettings__enabled não deve ser atribuída ao valor false para que as métricas internas estejam disponíveis para a coleta.

As variáveis de ambiente que podem ser usadas para desabilitar as métricas são listadas no documento do repositório azure/iotedge.

Métricas disponíveis

As métricas incluem marcas que identificam a natureza da métrica que está sendo coletada. Todas as métricas incluem as seguintes tags:

Marca Descrição
iothub O hub com o qual o dispositivo se comunica
edge_device A ID do dispositivo atual
instance_number Um GUID representando o runtime atual. Na reinicialização, todas as métricas são redefinidas. Esse GUID torna mais fácil reconciliar as reinicializações.

O formato de exposição do Prometheus inclui quatro tipos de métricas principais: contador, medidor, histograma e resumo. Para obter mais informações sobre os diferentes tipos de métrica, confira a documentação dos tipos de métrica do Prometheus.

Os quantis para o histograma integrado e as métricas de resumo são 0,1, 0,5, 0,9 e 0,99.

O módulo edgeHub gera as seguintes métricas:

Nome Dimensões Descrição
edgehub_gettwin_total source (origem da operação)
id (ID do módulo)
Tipo: contador
Número total de chamadas GetTwin
edgehub_messages_received_total route_output (saída que enviou a mensagem)
id
Tipo: contador
Número total de mensagens recebidas dos clientes
edgehub_messages_sent_total from (origem da mensagem)
to (destino da mensagem)
from_route_output
to_route_input (entrada do destino da mensagem)
priority (prioridade da mensagem para o destino)
Tipo: contador
Número total de mensagens enviadas aos clientes ou upstream
to_route_input está vazio quando o to é $upstream
edgehub_reported_properties_total target(destino de atualização)
id
Tipo: contador
Total de chamadas de atualizações de propriedade relatadas
edgehub_message_size_bytes id
Tipo: resumo
Tamanho da mensagem dos clientes
Os valores podem ser relatados como NaN se nenhuma nova medida fosse relatada por 10 minutos. Para o tipo summary, são emitidos os contadores _count e _sum correspondentes.
edgehub_gettwin_duration_seconds source
id
Tipo: resumo
Tempo gasto para operações get twin
edgehub_message_send_duration_seconds from
to
from_route_output
to_route_input
Tipo: resumo
Tempo necessário para enviar uma mensagem
edgehub_message_process_duration_seconds from
to
priority
Tipo: resumo
Tempo necessário para processar uma mensagem da fila
edgehub_reported_properties_update_duration_seconds target
id
Tipo: resumo
Tempo necessário para atualizar as propriedades relatadas
edgehub_direct_method_duration_seconds from (chamador)
to (receptor)
Tipo: resumo
Tempo necessário para resolver uma mensagem direta
edgehub_direct_methods_total from
to
Tipo: contador
Número total de mensagens diretas enviadas
edgehub_queue_length endpoint (origem da mensagem)
priority (prioridade da fila)
Tipo: medidor
Comprimento atual da fila do edgeHub para determinada prioridade
edgehub_messages_dropped_total reason (no_route, ttl_expiry)
from
from_route_output
Tipo: contador
Número total de mensagens removidas por causa do motivo
edgehub_messages_unack_total reason (falha de armazenamento)
from
from_route_output
Tipo: contador
Número total de mensagens não confirmadas por falha de armazenamento
edgehub_offline_count_total id Tipo: contador
Número total de vezes que o edgeHub ficou offline
edgehub_offline_duration_seconds id Tipo: resumo
Tempo que o edgeHub ficou offline
edgehub_operation_retry_total id
operation (nome da operação)
Tipo: contador
Número total de vezes que as operações do edgeHub foram repetidas
edgehub_client_connect_failed_total id
reason (não autenticado)
Tipo: contador
Número total de vezes que os clientes não conseguiram se conectar ao edgeHub

O módulo edgeAgent gera as seguintes métricas:

Nome Dimensões Descrição
edgeAgent_total_time_running_correctly_seconds module_name Tipo: medidor
A quantidade de tempo que o módulo foi especificado na implantação e estava no estado em execução
edgeAgent_total_time_expected_running_seconds module_name Tipo: medidor
A quantidade de tempo que o módulo foi especificado na implantação
edgeAgent_module_start_total module_name, module_version Tipo: contador
Número de vezes que o edgeAgent pediu ao Docker para iniciar o módulo
edgeAgent_module_stop_total module_name, module_version Tipo: contador
Número de vezes que o edgeAgent pediu ao Docker para interromper o módulo
edgeAgent_command_latency_seconds command Tipo: medidor
Quanto tempo o Docker levou para executar o comando fornecido. Os comandos possíveis são: criar, atualizar, remover, iniciar, parar e reiniciar
edgeAgent_iothub_syncs_total Tipo: contador
Número de vezes que o edgeAgent tentou sincronizar seu gêmeo com o iotHub, com e sem sucesso. Esse número inclui tanto as solicitações de gêmeo do agente quanto as notificação do Hub sobre atualizações do gêmeo
edgeAgent_unsuccessful_iothub_syncs_total Tipo: contador
Número de vezes que o edgeAgent falhou ao sincronizar seu gêmeo com o iotHub.
edgeAgent_deployment_time_seconds Tipo: contador
A quantidade de tempo que leva para concluir uma nova implantação depois de receber uma alteração.
edgeagent_direct_method_invocations_count method_name Tipo: contador
Número de vezes que um método direto interno do edgeAgent, como Ping ou Reiniciar, é chamado.
edgeAgent_host_uptime_seconds Tipo: medidor
Há quanto tempo o host está ativado
edgeAgent_iotedged_uptime_seconds Tipo: medidor
Há quanto tempo o iotedged está em execução
edgeAgent_available_disk_space_bytes disk_name, disk_filesystem, disk_filetype Tipo: medidor
Quantidade de espaço restante no disco
edgeAgent_total_disk_space_bytes disk_name, disk_filesystem, disk_filetype Tipo: medidor
Tamanho do disco
edgeAgent_used_memory_bytes module_name Tipo: medidor
Quantidade de RAM usada por todos os processos
edgeAgent_total_memory_bytes module_name Tipo: medidor
RAM disponível
edgeAgent_used_cpu_percent module_name Tipo: histograma
Percentual de CPU usada por todos os processos
edgeAgent_created_pids_total module_name Tipo: medidor
Número de processos ou threads que o contêiner criou
edgeAgent_total_network_in_bytes module_name Tipo: medidor
Número de bytes recebidos da rede
edgeAgent_total_network_out_bytes module_name Tipo: medidor
Número de bytes enviados para a rede
edgeAgent_total_disk_read_bytes module_name Tipo: medidor
Número de bytes lidos do disco
edgeAgent_total_disk_write_bytes module_name Tipo: medidor
Número de bytes gravados no disco
edgeAgent_metadata edge_agent_version, experimental_features, host_information Tipo: medidor
Metadados gerais sobre o dispositivo. O valor é sempre 0 e as informações são codificadas nas tags. Observe isso experimental_features e host_information são objetos JSON. host_information se parece com {"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.2.7", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": false}, "ServerVersion": "20.10.11+azure-3", "KernelVersion": "5.11.0-1027-azure", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 2, "Virtualized": "yes"}. Observe que ServerVersion é a versão do Docker e Version é a versão do daemon de segurança do IoT Edge.

Próximas etapas