Acessar métricas internas no Azure IoT Edge
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.
Os componentes de tempo de execução do IoT Edge, o hub do IoT Edge e o agente do IoT Edge produzem métricas internas no formato de exposição Prometheus. Aceda a estas métricas remotamente para monitorizar e compreender o estado de funcionamento de um dispositivo IoT Edge.
Você pode usar sua própria solução para acessar essas métricas. Ou, você pode usar o módulo coletor de métricas, que lida com a coleta das métricas internas e enviá-las para o Azure Monitor ou o Hub IoT do Azure. Para obter mais informações, consulte 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
). Eles não são porta mapeada para o host por padrão.
Acesse as métricas do host expondo e mapeando a porta de métricas do módulo createOptions
. O exemplo abaixo 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 se estiver mapeando os pontos de extremidade de métricas do edgeHub e do edgeAgent.
Nota
A variável httpSettings__enabled
de ambiente não deve ser definida para false
que as métricas internas estejam disponíveis para coleta.
As variáveis de ambiente que podem ser usadas para desabilitar métricas são listadas no documento azure/iotedge repo.
Métricas disponíveis
As métricas contêm tags para ajudar a identificar a natureza da métrica que está sendo coletada. Todas as métricas contêm as seguintes tags:
Etiqueta | Description |
---|---|
iothub | O hub com o qual o dispositivo está falando |
edge_device | O ID do dispositivo atual |
instance_number | Um GUID que representa o tempo de execução atual. Na reinicialização, todas as métricas são redefinidas. Esse GUID facilita a reconciliação de reinicializações. |
No formato de exposição Prometheus, existem quatro tipos de métricas principais: contador, medidor, histograma e resumo. Para obter mais informações sobre os diferentes tipos de métricas, consulte a documentação de tipos de métricas Prometheus.
Os quantis fornecidos para o histograma embutido e métricas 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 | Description |
---|---|---|
edgehub_gettwin_total |
source (fonte 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 mensagem)id |
Tipo: contador Número total de mensagens recebidas de clientes |
edgehub_messages_sent_total |
from (fonte da mensagem)to (destino da mensagem)from_route_output to_route_input (entrada de destino da mensagem)priority (prioridade da mensagem para o destino) |
Tipo: contador Número total de mensagens enviadas aos clientes ou a montante to_route_input está vazio quando to está $upstream |
edgehub_reported_properties_total |
target (meta 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 comunicados como NaN se não fossem comunicadas novas medições durante um determinado período de tempo (atualmente 10 minutos), para summary o tipo, são emitidos contadores e _count _sum correspondentes. |
edgehub_gettwin_duration_seconds |
source id |
Tipo: resumo Tempo necessário para obter operações duplas |
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 (destinatário) |
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 (fonte da mensagem)priority (prioridade da fila) |
Tipo: calibre Comprimento atual da fila do edgeHub para uma determinada prioridade |
edgehub_messages_dropped_total |
reason (no_route, ttl_expiry)from from_route_output |
Tipo: contador Número total de mensagens removidas por motivo |
edgehub_messages_unack_total |
reason (storage_failure)from from_route_output |
Tipo: contador Número total de mensagens não reconhecidas devido a 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 O hub de borda de tempo estava offline |
edgehub_operation_retry_total |
id operation (nome da operação) |
Tipo: contador Número total de vezes que as operações 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 | Description |
---|---|---|
edgeAgent_total_time_running_correctly_seconds |
module_name |
Tipo: calibre A quantidade de tempo que o módulo foi especificado na implantação e ficou no estado de execução |
edgeAgent_total_time_expected_running_seconds |
module_name |
Tipo: calibre 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 edgeAgent pediu ao docker para iniciar o módulo |
edgeAgent_module_stop_total |
module_name , module_version |
Tipo: contador Número de vezes que edgeAgent pediu ao docker para parar o módulo |
edgeAgent_command_latency_seconds |
command |
Tipo: calibre 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 ou sem sucesso. Esse número inclui o Agente solicitando um gêmeo e o Hub notificando de uma atualização gêmea |
|
edgeAgent_unsuccessful_iothub_syncs_total |
Tipo: contador Número de vezes que o edgeAgent não conseguiu sincronizar seu gêmeo com o iotHub. |
|
edgeAgent_deployment_time_seconds |
Tipo: contador O tempo necessário para concluir uma nova implantação após receber uma alteração. |
|
edgeagent_direct_method_invocations_count |
method_name |
Tipo: contador Número de vezes que um método direto edgeAgent interno é chamado, como Ping ou Restart. |
edgeAgent_host_uptime_seconds |
Tipo: calibre Há quanto tempo o anfitrião está ligado |
|
edgeAgent_iotedged_uptime_seconds |
Tipo: calibre Há quanto tempo o iotedged está em execução |
|
edgeAgent_available_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Tipo: calibre Quantidade de espaço restante no disco |
edgeAgent_total_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Tipo: calibre Tamanho do disco |
edgeAgent_used_memory_bytes |
module_name |
Tipo: calibre Quantidade de RAM utilizada por todos os processos |
edgeAgent_total_memory_bytes |
module_name |
Tipo: calibre RAM disponível |
edgeAgent_used_cpu_percent |
module_name |
Tipo: histograma Porcentagem de CPU usada por todos os processos |
edgeAgent_created_pids_total |
module_name |
Tipo: calibre O número de processos ou threads que o contêiner criou |
edgeAgent_total_network_in_bytes |
module_name |
Tipo: calibre O número de bytes recebidos da rede |
edgeAgent_total_network_out_bytes |
module_name |
Tipo: calibre O número de bytes enviados para a rede |
edgeAgent_total_disk_read_bytes |
module_name |
Tipo: calibre O número de bytes lidos do disco |
edgeAgent_total_disk_write_bytes |
module_name |
Tipo: calibre O número de bytes gravados no disco |
edgeAgent_metadata |
edge_agent_version , experimental_features , host_information |
Tipo: calibre Metadados gerais sobre o dispositivo. O valor é sempre 0, as informações são codificadas nas tags. Note experimental_features e host_information são objetos json. host_information {"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"} parece . Observação ServerVersion é a versão do Docker e Version é a versão do daemon de segurança do IoT Edge. |