Accedere alle metriche predefinite in Azure IoT Edge
Si applica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS è di fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
I componenti di runtime di IoT Edge, l'hub IoT Edge e l'agente IoT Edge producono metriche predefinite nel formato di esposizione prometheus. Accedere a queste metriche in modalità remota per monitorare e comprendere l'integrità di un dispositivo IoT Edge.
È possibile usare la propria soluzione per accedere a queste metriche. In alternativa, è possibile usare il modulo metrics-collector, che gestisce la raccolta delle metriche predefinite e l'invio a Monitoraggio di Azure o hub IoT di Azure. Per altre informazioni, vedere Raccogliere e trasportare le metriche.
Le metriche vengono esposte automaticamente per impostazione predefinita sulla porta 9600 dei moduli edgeHub e edgeAgent (http://edgeHub:9600/metrics
e http://edgeAgent:9600/metrics
). Non sono mappate per impostazione predefinita all'host.
Accedere alle metriche dall'host esponendo ed eseguendo il mapping della porta delle metriche dal modulo createOptions
. L'esempio seguente esegue il mapping della porta delle metriche predefinita alla porta 9601 nell'host:
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
Scegliere numeri di porta host diversi e univoci se si esegue il mapping degli endpoint delle metriche di edgeHub e edgeAgent.
Nota
La variabile di ambiente non deve essere impostata su false
per le metriche predefinite httpSettings__enabled
da rendere disponibili per la raccolta.
Le variabili di ambiente che possono essere usate per disabilitare le metriche sono elencate nella documentazione del repository azure/iotedge.
Metriche disponibili
Le metriche contengono tag per identificare la natura della metrica da raccogliere. Tutte le metriche contengono i tag seguenti:
Tag | Descrizione |
---|---|
iothub | L'hub con cui il dispositivo sta parlando |
edge_device | ID del dispositivo corrente |
instance_number | GUID che rappresenta il runtime corrente. Al riavvio, tutte le metriche vengono reimpostate. Questo GUID semplifica la riconciliazione dei riavvii. |
Nel formato di esposizione prometheus sono disponibili quattro tipi di metriche principali: contatore, misuratore, istogramma e riepilogo. Per altre informazioni sui diversi tipi di metrica, vedere la documentazione relativa ai tipi di metriche Prometheus.
I quantili forniti per l'istogramma predefinito e le metriche di riepilogo sono 0,1, 0,5, 0,9 e 0,99.
Il modulo edgeHub produce le metriche seguenti:
Nome | Dimensioni | Descrizione |
---|---|---|
edgehub_gettwin_total |
source (origine operazione)id (ID modulo) |
Tipo: contatore Numero totale di chiamate GetTwin |
edgehub_messages_received_total |
route_output (output che ha inviato il messaggio)id |
Tipo: contatore Numero totale di messaggi ricevuti dai client |
edgehub_messages_sent_total |
from (origine messaggio)to (destinazione del messaggio)from_route_output to_route_input (input di destinazione del messaggio)priority (priorità del messaggio per la destinazione) |
Tipo: contatore Numero totale di messaggi inviati ai client o upstream to_route_input è vuoto quando to è $upstream |
edgehub_reported_properties_total |
target (destinazione di aggiornamento)id |
Tipo: contatore Chiamate totali degli aggiornamenti delle proprietà segnalate |
edgehub_message_size_bytes |
id |
Tipo: riepilogo Dimensioni dei messaggi dai client I valori possono essere segnalati come NaN se non vengano segnalate nuove misurazioni per un determinato periodo di tempo (attualmente 10 minuti); per summary il tipo, i contatori corrispondenti _count e _sum vengono generati. |
edgehub_gettwin_duration_seconds |
source id |
Tipo: riepilogo Tempo impiegato per le operazioni get twin |
edgehub_message_send_duration_seconds |
from to from_route_output to_route_input |
Tipo: riepilogo Tempo impiegato per inviare un messaggio |
edgehub_message_process_duration_seconds |
from to priority |
Tipo: riepilogo Tempo impiegato per elaborare un messaggio dalla coda |
edgehub_reported_properties_update_duration_seconds |
target id |
Tipo: riepilogo Tempo impiegato per aggiornare le proprietà segnalate |
edgehub_direct_method_duration_seconds |
from (chiamante)to (ricevitore) |
Tipo: riepilogo Tempo impiegato per risolvere un messaggio diretto |
edgehub_direct_methods_total |
from to |
Tipo: contatore Numero totale di messaggi diretti inviati |
edgehub_queue_length |
endpoint (origine messaggio)priority (priorità coda) |
Tipo: misuratore Lunghezza corrente della coda di edgeHub per una determinata priorità |
edgehub_messages_dropped_total |
reason (no_route, ttl_expiry)from from_route_output |
Tipo: contatore Numero totale di messaggi rimossi a causa del motivo |
edgehub_messages_unack_total |
reason (storage_failure)from from_route_output |
Tipo: contatore Numero totale di messaggi non riconosciuti a causa di un errore di archiviazione |
edgehub_offline_count_total |
id |
Tipo: contatore Numero totale di volte in cui edgeHub è andato offline |
edgehub_offline_duration_seconds |
id |
Tipo: riepilogo L'hub perimetrale temporale era offline |
edgehub_operation_retry_total |
id operation (nome operazione) |
Tipo: contatore Numero totale di tentativi di operazioni edgeHub |
edgehub_client_connect_failed_total |
id reason (non autenticato) |
Tipo: contatore Numero totale di volte in cui i client non sono riusciti a connettersi a edgeHub |
Il modulo edgeAgent produce le metriche seguenti:
Nome | Dimensioni | Descrizione |
---|---|---|
edgeAgent_total_time_running_correctly_seconds |
module_name |
Tipo: misuratore Periodo di tempo in cui il modulo è stato specificato nella distribuzione ed era nello stato di esecuzione |
edgeAgent_total_time_expected_running_seconds |
module_name |
Tipo: misuratore Periodo di tempo in cui il modulo è stato specificato nella distribuzione |
edgeAgent_module_start_total |
module_name , module_version |
Tipo: contatore Numero di volte in cui edgeAgent ha chiesto a Docker di avviare il modulo |
edgeAgent_module_stop_total |
module_name , module_version |
Tipo: contatore Numero di volte in cui edgeAgent ha chiesto a Docker di arrestare il modulo |
edgeAgent_command_latency_seconds |
command |
Tipo: misuratore Quanto tempo è necessario per eseguire docker per eseguire il comando specificato. I comandi possibili sono: creare, aggiornare, rimuovere, avviare, arrestare e riavviare |
edgeAgent_iothub_syncs_total |
Tipo: contatore Numero di tentativi di sincronizzazione del dispositivo gemello con iotHub, sia riuscito che non riuscito. Questo numero include sia l'agente che richiede un gemello e l'hub che invia una notifica di un aggiornamento gemello |
|
edgeAgent_unsuccessful_iothub_syncs_total |
Tipo: contatore Numero di volte in cui edgeAgent non è riuscito a sincronizzare il gemello con iotHub. |
|
edgeAgent_deployment_time_seconds |
Tipo: contatore Tempo necessario per completare una nuova distribuzione dopo la ricezione di una modifica. |
|
edgeagent_direct_method_invocations_count |
method_name |
Tipo: contatore Numero di volte in cui viene chiamato un metodo diretto edgeAgent predefinito, ad esempio Ping o Restart. |
edgeAgent_host_uptime_seconds |
Tipo: misuratore Quanto tempo l'host è stato attivo |
|
edgeAgent_iotedged_uptime_seconds |
Tipo: misuratore Quanto tempo è in esecuzione iotedged |
|
edgeAgent_available_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Tipo: misuratore Quantità di spazio lasciata sul disco |
edgeAgent_total_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Tipo: misuratore Dimensioni del disco |
edgeAgent_used_memory_bytes |
module_name |
Tipo: misuratore Quantità di RAM usata da tutti i processi |
edgeAgent_total_memory_bytes |
module_name |
Tipo: misuratore RAM disponibile |
edgeAgent_used_cpu_percent |
module_name |
Tipo: istogramma Percentuale di CPU usata da tutti i processi |
edgeAgent_created_pids_total |
module_name |
Tipo: misuratore Numero di processi o thread creati dal contenitore |
edgeAgent_total_network_in_bytes |
module_name |
Tipo: misuratore Numero di byte ricevuti dalla rete |
edgeAgent_total_network_out_bytes |
module_name |
Tipo: misuratore Numero di byte inviati alla rete |
edgeAgent_total_disk_read_bytes |
module_name |
Tipo: misuratore Numero di byte letti dal disco |
edgeAgent_total_disk_write_bytes |
module_name |
Tipo: misuratore Numero di byte scritti su disco |
edgeAgent_metadata |
edge_agent_version , experimental_features , host_information |
Tipo: misuratore Metadati generali sul dispositivo. Il valore è sempre 0, le informazioni vengono codificate nei tag. Si noti experimental_features e host_information sono oggetti JSON. host_information ha un aspetto simile a {"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"} . Si noti ServerVersion che è la versione di Docker ed Version è la versione del daemon di sicurezza di IoT Edge. |