Acessar métricas internas no Azure IoT Edge
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao 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.
Você pode usar sua própria solução para acessar essas métricas. Ou você pode usar o módulo do coletor de métricas, que lida com a coleta de métricas internas e o envio delas ao Azure Monitor ou ao Hub IoT do Azure. Para obter mais informações, confira Coletar e transportar métricas.
As métricas são automaticamente expostas por padrão na porta 9600 dos módulos edgeHub e edgeAgent (http://edgeHub:9600/metrics
e http://edgeAgent:9600/metrics
). Elas não são portas mapeadas para o host por padrão.
Acesse as métricas do host expondo e mapeando a porta das métricas do createOptions
do módulo. O seguinte exemplo 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 do host diferentes e exclusivos se você estiver mapeando ambos 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 definida como false
para que as métricas internas estejam disponíveis para 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 contêm marcas para ajudar a identificar a natureza da métrica que está sendo coletada. Todas as métricas contêm as seguintes marcas:
Marca | Descrição |
---|---|
iothub | O Hub com o qual o dispositivo está se comunicando |
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. |
No formato de exposição do Prometheus, há quatro tipos principais de métrica: 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 fornecidos para as métricas internas de histograma e de resumo são 0,1, 0,5, 0,9 e 0,99.
O módulo edgeHub produz 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 for relatada por um determinado período (atualmente, 10 minutos). Para o tipo summary , os contadores correspondentes _count e _sum são emitidos. |
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 (storage_failure)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 produz 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, as informações estão codificadas nas marcas. Observe que 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. |