Zugreifen auf integrierte Metriken in Azure IoT Edge

Gilt für:IoT Edge 1.4 Häkchen IoT Edge 1.4

Wichtig

IoT Edge Version 1.4 wird unterstützt. 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.

Nächste Schritte