Teilen über


Hinzufügen benutzerdefinierter Metriken

Gilt für: Häkchen für IoT Edge 1.5 IoT Edge 1.5 IoT Edge 1.4 Häkchen 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.

Sammeln Sie zusätzlich zu den integrierten Metriken, die von den Systemmodulen bereitgestellt werden, benutzerdefinierte Metriken von Ihren IoT Edge-Modulen. Die integrierten Metriken bieten Ihnen eine grundlegende Übersicht über die Integrität Ihrer Bereitstellung. Möglicherweise benötigen Sie jedoch zusätzliche Informationen aus benutzerdefinierten Modulen, um das Bild zu vervollständigen. Benutzerdefinierte Module können in Ihre Überwachungslösung integriert werden, indem Sie die entsprechende Prometheus-Clientbibliothek für die Ausgabe von Metriken nutzen. Mit diesen zusätzlichen Informationen können Sie neue Ansichten oder Warnungen aktivieren, die speziell auf Ihre Anforderungen zugeschnitten sind.

Repository für Beispielmodule

Beispiele für benutzerdefinierte Module, die für die Ausgabe von Metriken instrumentiert wurden, finden Sie im azure-samples-Repository. Selbst wenn noch kein Beispiel in Ihrer gewünschten Sprache verfügbar ist, kann Ihnen der allgemeine Ansatz bei der Entwicklung weiterhelfen.

Benennungskonventionen

Allgemeine Informationen finden Sie in den Best Practices der Prometheus-Dokumentation. Die folgenden zusätzlichen Empfehlungen können für IoT Edge-Szenarien hilfreich sein.

  • Fügen Sie den Modulnamen am Anfang des Metriknamens ein, um deutlich zu machen, welches Modul die Metrik ausgegeben hat.

  • Beziehen Sie den IoT Hub-Namen oder den Namen der IoT Central-Anwendung, die IoT Edge-Geräte-ID und die Modul-ID als Bezeichnungen (auch als tags/dimensions bezeichnet) in jede Metrik mit ein. Diese Informationen sind als Umgebungsvariablen für jedes Modul verfügbar, das vom IoT Edge-Agent gestartet wird. Der Ansatz wird durch das Beispiel im Beispiel-Repository demonstriert. Ohne diese Zusatzinformationen ist es unmöglich, einen bestimmten Metrikwert dem entsprechenden Gerät zuzuordnen.

  • Fügen Sie eine Instanz-ID in die Bezeichnungen ein. Eine Instanz-ID kann eine beliebige eindeutige ID wie z. B. eine GUID sein, die während des Modulstarts generiert wird. Instanz-ID-Informationen können bei der Abstimmung von Modulneustarts helfen, während die Metriken eines Moduls im Back-End verarbeitet werden.

Konfigurieren des Metrikensammlers für das Sammeln benutzerdefinierter Metriken

Sobald ein benutzerdefiniertes Modul Metriken ausgibt, besteht der nächste Schritt im Konfigurieren des Metrikensammler-Moduls, mit dem diese benutzerdefinierten Metriken gesammelt und abtransportiert werden.

Die MetricsEndpointsCSV-Umgebungsvariable muss aktualisiert werden, sodass sie die URL des Metrikendpunkts vom benutzerdefinierten Modul enthält. Wenn Sie die Umgebungsvariable aktualisieren, müssen Sie sicherstellen, dass diese auch die Endpunkte des Systemmoduls (wie im Konfigurationsbeispiel für den Metrikensammler gezeigt) enthält.

Hinweis

Standardmäßig muss der Metrikendpunkt eines benutzerdefinierten Moduls keinem Hostport zugeordnet werden, damit der Metrikensammler darauf zugreifen kann. Bei Linux ist es so, dass beide Module in einem benutzerdefinierten Docker-Bridge-Netzwerk namens azure-iot-edge gestartet werden, sofern dies nicht explizit überschrieben wird.

Benutzerdefinierte Docker-Netzwerke enthalten einen DNS-Standardresolver, der die modulübergreifende Kommunikation mithilfe von Modulnamen (Containern) ermöglicht. Wenn beispielsweise das benutzerdefinierte Modul module1 Metriken auf dem HTTP-Port 9600 über den Pfad /metrics ausgibt, sollte der Sammler so konfiguriert werden, dass er die Metriken vom Endpunkt http://module1:9600/metrics erfasst.

Führen Sie den folgenden Befehl auf dem IoT Edge-Gerät aus, um zu testen, ob auf die vom benutzerdefinierten Modul am HTTP-Port 9600 über den Pfad /metrics ausgegebenen Metriken zugegriffen werden kann:

sudo docker exec replace-with-metrics-collector-module-name curl http://replace-with-custom-module-name:9600/metrics

Hinzufügen benutzerdefinierter Visualisierungen

Sobald Sie benutzerdefinierte Metriken in Log Analytics erhalten, können Sie benutzerdefinierte Visualisierungen und Warnungen erstellen. Die Überwachungsarbeitsmappen können durch das Hinzufügen von abfragebasierte Visualisierungen erweitert werden.

Jeder Metrik wird die Ressourcen-ID des IoT-Hubs oder der IoT Central-Anwendung zugeordnet. Deshalb können Sie über die Seite Protokolle des zugeordneten IoT Hubs oder der IoT Central-Anwendung überprüfen, ob Ihre benutzerdefinierten Metriken ordnungsgemäß erfasst wurden, statt dafür den unterstützenden Log Analytics-Arbeitsbereich zu nutzen. Verwenden Sie diese einfache KQL-Abfrage für die Überprüfung:

InsightsMetrics
| where Name == 'replace-with-custom-metric-name'

Nachdem Sie sichergestellt haben, dass die Metriken korrekt erfasst werden, können Sie entweder eine neue Arbeitsmappe erstellen oder eine vorhandene Arbeitsmappe erweitern. Verwenden Sie die Arbeitsmappen-Dokumentation und Abfragen aus den kuratierten IoT Edge-Arbeitsmappen als Leitfaden.

Wenn Sie mit den Ergebnissen zufrieden sind, können Sie die Arbeitsmappe für Ihr Team freigeben oder sie im Rahmen der Ressourcenbereitstellungen in Ihrer Organisation programmgesteuert bereitstellen.

Nächste Schritte

Erfahren Sie mehr über zusätzliche Visualisierungsoptionen für Metriken mit kuratierten Arbeitsmappen.