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 è la versione supportata. IoT Edge 1.4 LTS è di fine vita a partire dal 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
I componenti del runtime IoT Edge, l'hub di IoT Edge e l'agente di IoT Edge, producono metriche incorporate 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 all'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 httpSettings__enabled
non deve essere impostata su false
per le metriche predefinite 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 dei messaggi)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 (Aggiorna destinazione)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 il tipo summary , 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 (destinatario) |
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 (operation_Name) |
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 a una 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 nel 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 che 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 che ServerVersion è la versione di Docker e Version è la versione del daemon di sicurezza di IoT Edge. |