Zugreifen auf integrierte Metriken in Azure IoT Edge
Gilt für: IoT Edge 1.5 IoT Edge 1.4
Wichtig
IoT Edge 1.5 LTS und IoT Edge 1.4 LTS sind unterstützte Releases. Das Ende der Lebensdauer von IoT Edge 1.4 LTS wird am 12. November 2024 erreicht. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.
Die IoT Edge-Runtimekomponenten, der IoT Edge-Hub und der IoT Edge-Agent generieren integrierte Metriken im Prometheus-Offenlegungsformat. Fügen Sie diese Metriken remote hinzu, um die Integrität eines IoT Edge-Geräts zu überwachen und zu verstehen.
Sie können mit Ihrer eigenen Lösung auf diese Metriken zugreifen. Sie können auch das Metriksammel-Modul verwenden, das die integrierten Metriken sammelt und an Azure Monitor oder Azure IoT Hub sendet. Weitere Informationen finden Sie unter Sammeln und Transportieren von Metriken.
Metriken werden automatisch standardmäßig an Port 9600 der Module edgeHub und edgeAgent verfügbar gemacht (http://edgeHub:9600/metrics
und http://edgeAgent:9600/metrics
). Standardmäßig sind die Ports auf dem Host nicht zugeordnet.
Sie können vom Host aus auf die Metriken zugreifen, indem Sie den Metrikport in den createOptions
des Moduls verfügbar machen und zuordnen. Im Beispiel unten wird der Standardmetrikport dem Port 9601 auf dem Host zugeordnet:
{
"ExposedPorts": {
"9600/tcp": {}
},
"HostConfig": {
"PortBindings": {
"9600/tcp": [
{
"HostPort": "9601"
}
]
}
}
}
Wählen Sie verschiedene und eindeutige Hostportnummern, wenn Sie die Metrikendpunkte von edgeHub ebenso wie die auch edgeAgent zuordnen.
Hinweis
Die Umgebungsvariable httpSettings__enabled
sollte nicht auf false
festgelegt werden, damit integrierte Metriken für die Sammlung verfügbar sind.
Umgebungsvariablen, die zum Deaktivieren von Metriken verwendet werden können, finden Sie in der Dokumentation zum Repository azure/iotedge.
Verfügbare Metriken
Metriken enthalten Tags, um die Art der erfassten Metrik besser erkennbar zu machen. Alle Metriken enthalten die folgenden Tags:
Tag | Beschreibung |
---|---|
iothub | Der Hub, mit dem das Gerät kommuniziert |
edge_device | Die ID des aktuellen Geräts |
instance_number | Eine GUID, die die aktuelle Runtime darstellt. Bei einem Neustart werden alle Metriken zurückgesetzt. Diese GUID erleichtert das Abstimmen von Neustarts. |
Im Prometheus-Offenlegungsformat gibt es vier grundlegende Metriktypen: Zähler, Messgerät, Histogramm und Zusammenfassung. Weitere Informationen zu den verschiedenen Metriktypen finden Sie in der Dokumentation zu den Prometheus-Metriktypen.
Die für die integrierten Histogramm- und Zusammenfassungsmetriken bereitgestellten Quantile sind 0,1, 0,5, 0,9 und 0,99.
Das edgeHub-Modul erzeugt die folgenden Metriken:
Name | Dimensionen | Beschreibung |
---|---|---|
edgehub_gettwin_total |
source (Vorgangsquelle)id (Modul-ID) |
Typ: Zähler Gesamtzahl von GetTwin-Aufrufen |
edgehub_messages_received_total |
route_output (Ausgabe, von der die Nachricht gesendet wurde)id |
Typ: Zähler Gesamtzahl der von Clients empfangenen Nachrichten |
edgehub_messages_sent_total |
from (Nachrichtenquelle)to (Nachrichtenziel)from_route_output to_route_input (Nachrichtenzieleingabe)priority (Nachrichtenpriorität zum Ziel) |
Typ: Zähler Gesamtzahl der an Clients oder Upstream gesendeten Nachrichten to_route_input ist leer, wenn to $Upstream ist |
edgehub_reported_properties_total |
target (Updateziel)id |
Typ: Zähler Gemeldete Gesamtzahl der Aufrufe für Eigenschaftsupdates |
edgehub_message_size_bytes |
id |
Typ: Zusammenfassung Nachrichtengröße von Clients Die Werte werden möglicherweise als NaN gemeldet, wenn für einen bestimmtem Zeitraum (aktuell 10 Minuten) keine neuen Messungen gemeldet wurden. Für den Typ summary werden die entsprechenden Zähler _count und _sum ausgegeben. |
edgehub_gettwin_duration_seconds |
source id |
Typ: Zusammenfassung Beanspruchte Zeit für das Abrufen von Zwillingsvorgängen |
edgehub_message_send_duration_seconds |
from to from_route_output to_route_input |
Typ: Zusammenfassung Beanspruchte Zeit zum Senden einer Nachricht |
edgehub_message_process_duration_seconds |
from to priority |
Typ: Zusammenfassung Beanspruchte Zeit zum Verarbeiten einer Nachricht aus der Warteschlange |
edgehub_reported_properties_update_duration_seconds |
target id |
Typ: Zusammenfassung Beanspruchte Zeit zum Aktualisieren gemeldeter Eigenschaften |
edgehub_direct_method_duration_seconds |
from (Aufrufer)to (Empfänger) |
Typ: Zusammenfassung Beanspruchte Zeit zum Auflösen einer direkten Nachricht |
edgehub_direct_methods_total |
from to |
Typ: Zähler Gesamtzahl der gesendeten direkten Nachrichten |
edgehub_queue_length |
endpoint (Nachrichtenquelle)priority (Warteschlangenpriorität) |
Typ: Messgerät Aktuelle Länge der edgeHub-Warteschlange für eine bestimmte Priorität |
edgehub_messages_dropped_total |
reason (no_route, ttl_expiry)from from_route_output |
Typ: Zähler Gesamtzahl der wegen des Grunds entfernten Nachrichten |
edgehub_messages_unack_total |
reason (storage_failure)from from_route_output |
Typ: Zähler Gesamtzahl der wegen eines Speicherfehlers nicht bestätigten Nachrichten |
edgehub_offline_count_total |
id |
Typ: Zähler Gesamtzahl der Übergänge von edgeHub in den Offlinemodus |
edgehub_offline_duration_seconds |
id |
Typ: Zusammenfassung Die Zeit, die edgeHub offline war |
edgehub_operation_retry_total |
id operation (Vorgangsname) |
Typ: Zähler Die Gesamtzahl der Wiederholungen von edgeHub-Vorgängen |
edgehub_client_connect_failed_total |
id reason (nicht authentifiziert) |
Typ: Zähler Gesamtzahl der fehlgeschlagenen Verbindungsversuche von Clients mit edgeHub |
Das edgeAgent-Modul erzeugt die folgenden Metriken:
Name | Dimensionen | Beschreibung |
---|---|---|
edgeAgent_total_time_running_correctly_seconds |
module_name |
Typ: Messgerät Die Menge der Zeit, für die das Modul in der Bereitstellung angegeben wurde und sich im Ausführungszustand befand |
edgeAgent_total_time_expected_running_seconds |
module_name |
Typ: Messgerät Der Zeitraum, für den das Modul in der Bereitstellung angegeben wurde |
edgeAgent_module_start_total |
module_name , module_version |
Typ: Zähler Die Anzahl der Aufforderungen von edgeAgent an Docker, das Modul zu starten |
edgeAgent_module_stop_total |
module_name , module_version |
Typ: Zähler Die Anzahl der Aufforderungen von edgeAgent an Docker, das Modul zu beenden |
edgeAgent_command_latency_seconds |
command |
Typ: Messgerät Die von Docker zum Ausführen des angegebenen Befehls beanspruchte Zeit. Die möglichen Befehle sind: create, update, remove, start, stop und restart. |
edgeAgent_iothub_syncs_total |
Typ: Zähler Die Anzahl der Versuche von edgeAgent, seinen Zwilling mit iotHub zu synchronisieren, sowohl erfolgreiche als auch Fehlversuche. Diese Zahl schließt sowohl die Anforderung eines Zwillings durch den Agent als auch die Benachrichtigung zu einem Zwillingsupdate durch den Hub ein. |
|
edgeAgent_unsuccessful_iothub_syncs_total |
Typ: Zähler Die Anzahl der Fehlversuche von edgeAgent, seinen Zwilling mit iotHub zu synchronisieren. |
|
edgeAgent_deployment_time_seconds |
Typ: Zähler Sie beanspruchte Zeit für das Abschließen einer neuen Bereitstellung nach dem Empfang einer Änderung. |
|
edgeagent_direct_method_invocations_count |
method_name |
Typ: Zähler Die Anzahl der Aufrufe einer integrierten direkten Methode von edgeAgent, wie etwa „Ping“ oder „Restart“. |
edgeAgent_host_uptime_seconds |
Typ: Messgerät Kontinuierliche Betriebszeit des Hosts |
|
edgeAgent_iotedged_uptime_seconds |
Typ: Messgerät Die kontinuierliche Ausführungszeit von iotedged |
|
edgeAgent_available_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Typ: Messgerät Die Menge des auf dem Datenträger verbleibenden Speicherplatzes |
edgeAgent_total_disk_space_bytes |
disk_name , disk_filesystem , disk_filetype |
Typ: Messgerät Größe des Datenträgers |
edgeAgent_used_memory_bytes |
module_name |
Typ: Messgerät Die Menge des von allen Prozessen verwendeten Arbeitsspeichers |
edgeAgent_total_memory_bytes |
module_name |
Typ: Messgerät Verfügbares RAM |
edgeAgent_used_cpu_percent |
module_name |
Typ: Histogramm Der Prozentsatz der CPU-Auslastung durch alle Prozesse |
edgeAgent_created_pids_total |
module_name |
Typ: Messgerät Die Anzahl der Prozesse oder Threads, die der Container erstellt hat |
edgeAgent_total_network_in_bytes |
module_name |
Typ: Messgerät Die Anzahl der vom Netzwerk empfangenen Bytes |
edgeAgent_total_network_out_bytes |
module_name |
Typ: Messgerät Die Anzahl der an das Netzwerk gesendeten Bytes |
edgeAgent_total_disk_read_bytes |
module_name |
Typ: Messgerät Die Anzahl der vom Datenträger gelesenen Bytes |
edgeAgent_total_disk_write_bytes |
module_name |
Typ: Messgerät Die Anzahl der auf den Datenträger geschriebenen Bytes |
edgeAgent_metadata |
edge_agent_version , experimental_features , host_information |
Typ: Messgerät Allgemeine Metadaten zum Gerät. Der Wert ist immer 0, die Informationen sind in den Tags codiert. Beachten Sie, dass es sich bei experimental_features und host_information um JSON-Objekte handelt. host_information weist diese Form auf: {"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"} . Beachten Sie, dass ServerVersion die Docker-Version und Version die Version des IoT Edge-Sicherheitsdaemons ist. |