Überwachen von Onlineendpunkten
Azure Machine Learning nutzt die Integration in Azure Monitor, um Metriken und Protokolle für Onlineendpunkte nachzuverfolgen und zu überwachen. Sie können Metriken in Diagrammen anzeigen, Metriken von Endpunkte und Bereitstellungen vergleichen, Metriken an Dashboards im Azure-Portal anheften, Warnungen konfigurieren, Protokolltabellen abfragen und Protokolle an unterstützte Ziele pushen. Sie können auch Application Insights verwenden, um Ereignisse aus Benutzercontainern zu analysieren.
Metriken: Für Metriken auf Endpunktebene wie Anforderungslatenz, Anforderungen pro Minute, neue Verbindungen pro Sekunde und Netzwerkbytes können Sie einen Drilldown durchführen, um Detailinformationen auf Bereitstellungsebene oder Statusebene anzuzeigen. Sie können einen Drilldown zu Metriken auf Bereitstellungsebene ausführen, z. B. CPU-/GPU-Auslastung und Arbeitsspeicher oder Datenträgernutzung auf Instanzebene. In Monitor können Sie diese Metriken in Diagrammen nachverfolgen und Dashboards und Warnungen für die weitere Analyse einrichten.
Protokolle: Sie können Metriken an einen Log Analytics-Arbeitsbereich senden, in dem Sie die Protokolle mithilfe der Kusto-Abfragesyntax abfragen können. Sie können Metriken auch zur weiteren Verarbeitung an Azure Storage-Konten oder Azure Event Hubs senden. Für Datenverkehrsprotokolle, Konsolenprotokolle (Container) und Ereignisse im Zusammenhang mit Onlineendpunkten können Sie dedizierte Protokolltabellen verwenden. Kusto-Abfragen unterstützen komplexe Analysefunktionen und das Verknüpfen mehrerer Tabellen.
Application Insights: Kuratierte Umgebungen umfassen die Integration mit Application Insights. Sie können diese Integration aktivieren oder deaktivieren, wenn Sie eine Onlinebereitstellung erstellen. Wenn Sie sie aktivieren, werden integrierte Metriken und Protokolle an Application Insights gesendet. Anschließend können Sie die integrierten Features von Application Insights für die weitere Analyse verwenden. Beispiele für diese Features sind Livemetriken, Transaktionssuche, Fehleransicht und Leistungsansicht.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Auswählen der richtigen Methode zum Anzeigen und Nachverfolgen von Metriken und Protokollen
- Anzeigen von Metriken zu Ihrem Onlineendpunkt
- Erstellen eines Dashboards für Ihre Metriken
- Erstellen einer Metrikwarnung
- Anzeigen von Protokollen für Ihren Onlineendpunkt
- Verwenden von Application Insights zum Nachverfolgen von Metriken und Protokollen
Voraussetzungen
- Ein Azure Machine Learning-Onlineendpunkt
- Mindestens Lesezugriff auf den Endpunkt
Verwenden von Metriken
Sie können Metrikseiten für Onlineendpunkte und -bereitstellungen im Azure-Portal anzeigen.
Zugreifen auf Metriken aus Azure Machine Learning Studio
Eine einfache Möglichkeit für den Zugriff auf Metrikseiten stellen die Links auf der Benutzeroberfläche von Azure Machine Learning Studio dar. Sie finden diese Links auf der Seite eines Endpunkts auf der Registerkarte Details. Diese Links führen zur Metrikseite für den Endpunkt oder die Bereitstellung im Azure-Portal.
Führen Sie die folgenden Schritte aus, um über die Links in Studio auf die Metrikseiten zuzugreifen:
Navigieren Sie in Azure Machine Learning Studio zu Ihrem Arbeitsbereich.
Wählen Sie unter Ressourcen die Option Endpunkte aus.
Wählen Sie den Namen eines Endpunkts aus.
Wählen Sie unter Endpunktattribute die Option Metriken anzeigen aus.
Die Metrikseite des Endpunkts wird im Azure-Portal geöffnet.
Navigieren Sie in Azure Machine Learning Studio auf einer Endpunktseite zum Abschnitt für eine Bereitstellung, und wählen Sie dann Metriken anzeigen aus.
Die Metrikseite der Bereitstellung wird im Azure-Portal geöffnet.
Zugreifen auf Metriken über das Azure-Portal
Eine weitere Möglichkeit zum Anzeigen der Metrikseite für einen Endpunkt oder eine Bereitstellung bietet das Azure-Portal:
Öffnen Sie das Azure-Portal.
Navigieren Sie zur Ressource für den Onlineendpunkt oder die Onlinebereitstellung.
Onlineendpunkte und -bereitstellungen sind Azure Resource Manager-Ressourcen. Um sie zu finden, navigieren Sie zur Ressourcengruppe und suchen nach den Ressourcentypen Onlineendpunkt für maschinelles Lernen und Onlinebereitstellung für maschinelles Lernen.
Wählen Sie auf der Seite „Ressource“ unter Überwachung die Option Metriken aus.
Verfügbare Metriken
Die angezeigten Metriken hängen von der ausgewählten Ressource ab. Der Geltungsbereich von Metriken für Onlineendpunkte und Onlinebereitstellungen unterscheidet sich.
Metriken im Geltungsbereich von Endpunkten
Weitere Informationen zu Metriken im Geltungsbereich von Onlineendpunkten finden Sie unter Unterstützte Metriken für Microsoft.MachineLearningServices/workspaces/onlineEndpoints.
Bandbreiteneinschränkung
Die Bandbreite wird gedrosselt, wenn die Kontingentgrenzwerte für verwaltete Onlineendpunkte überschritten werden. Weitere Informationen zu Grenzwerten für Onlineendpunkte finden Sie unter Azure Machine Learning-Onlineendpunkte und -Batchendpunkte im Artikel zu Kontingenten und Grenzwerten in Azure Machine Learning. So ermitteln Sie, ob Anforderungen gedrosselt werden
- Überwachen Sie die Metrik „Netzwerkbytes“.
- Überprüfen Sie die folgenden Felder im Antwortnachspann:
ms-azureml-bandwidth-request-delay-ms
undms-azureml-bandwidth-response-delay-ms
. Die Werte der Felder sind die Verzögerungen der Bandbreitendrosselung in Millisekunden.
Weitere Informationen finden Sie unter Probleme mit dem Bandbreitengrenzwert.
Metriken im Geltungsbereich von Bereitstellungen
Weitere Informationen zu Metriken im Geltungsbereich von Bereitstellungen finden Sie unter Unterstützte Metriken für Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments.
Erstellen von Dashboards und Warnungen
Sie können in Monitor Dashboards und Warnungen erstellen, die auf Metriken basieren.
Erstellen von Dashboards und Visualisieren von Abfragen
Sie können benutzerdefinierte Dashboards erstellen, um Metriken aus verschiedenen Quellen im Azure-Portal zu visualisieren, einschließlich der Metriken für Ihren Onlineendpunkt. Weitere Informationen zum Erstellen von Dashboards und zum Visualisieren von Abfragen finden Sie unter Erstellen und Freigeben von Dashboards mit Log Analytics-Daten und Erstellen benutzerdefinierter KPI-Dashboards mit Application Insights.
Erstellen von Warnungen
Sie können auch benutzerdefinierte Warnungen erstellen, damit Sie Benachrichtigungen zu wichtigen Statusupdates zu Ihrem Onlineendpunkt erhalten:
Navigieren Sie im Azure-Portal zu einer Metrikseite, und wählen Sie dann Neue Warnungsregel aus.
Wählen Sie im Fenster „Signal auswählen“ das Signal aus, für das Sie eine Warnung erstellen möchten, und wählen Sie dann Übernehmen aus.
Geben Sie auf der Seite „Warnungsregel erstellen“ einen Schwellenwert ein, und bearbeiten Sie alle anderen Einstellungen nach Bedarf. Weitere Informationen zu Warnungsregeleinstellungen finden Sie unter Konfigurieren von Warnungsregelbedingungen. Wählen Sie anschließend Weiter: Aktionen aus.
Erstellen Sie im Fenster „Aktionsgruppen auswählen“ eine Aktionsgruppe, oder wählen Sie eine aus, um anzugeben, was passiert, wenn Ihre Warnung ausgelöst wird. Weitere Informationen finden Sie unter Konfigurieren von Details von Warnungsregeln.
Wählen Sie Überprüfen und Erstellen aus, um das Erstellen der Warnung abzuschließen.
Automatisches Skalieren basierend auf Metriken
Sie können Bereitstellungen so konfigurieren, dass sie basierend auf Metriken automatisch skaliert werden. Um das Feature für die Autoskalierung zu aktivieren, können Sie die Benutzeroberfläche oder Code verwenden.
Für die Aktivierung über Code können Sie die Azure Machine Learning CLI und das Azure Machine Learning SDK für Python verwenden. Wenn Sie Code verwenden, konfigurieren Sie die Bedingungen zum Auslösen der automatischen Skalierung, indem Sie den REST-API-Namen der Metriken angeben.
- Die Namen der Endpunktmetriken, die im Code verwendet werden sollen, finden Sie in der Tabelle unter Unterstützte Metriken für Microsoft.MachineLearningServices/workspaces/onlineEndpoints in der Spalte Name in REST-API.
- Die Namen der Bereitstellungsmetriken, die im Code verwendet werden sollen, finden Sie in der Tabelle unter Unterstützte Metriken für Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments in der Spalte Name in REST-API.
Weitere Informationen finden Sie unter Autoskalierung von Onlineendpunkten in Azure Machine Learning.
Protokolle verwenden
Es gibt drei Protokolle, die Sie für Onlineendpunkte aktivieren können:
AmlOnlineEndpointTrafficLog: Mit diesem Datenverkehrsprotokoll können Sie die Informationen von Anforderungen an den Endpunkt überprüfen. Dieses Protokoll ist in den folgenden Fällen hilfreich:
- Eine Anforderungsantwort ist nicht 200, und Sie benötigen weitere Informationen. In der Spalte
ResponseCodeReason
im Protokoll wird der Grund aufgeführt. Beschreibungen zu Statuscodes und die Gründe finden Sie im Artikel zur Problembehandlung bei Onlineendpunkten unter HTTPS-Statuscodes. - Sie möchten den Antwortcode und den Antwortgrund Ihres Modells nach einer Anforderung nachschlagen. Diese Informationen werden in den Spalten
ModelStatusCode
undModelStatusReason
bereitgestellt. - Sie möchten die Dauer einer Anforderung erfahren. Die Protokolle enthalten eine Aufschlüsselung der Wartezeit. Diese Aufschlüsselung zeigt die Gesamtdauer, die Anforderungsdauer, die Antwortdauer und die Verzögerung durch die Netzwerkdrosselung.
- Sie möchten die Anzahl der zuletzt ausgeführten erfolgreichen und fehlerhaften Anforderungen überprüfen. Die Protokolle enthalten diese Informationen.
- Eine Anforderungsantwort ist nicht 200, und Sie benötigen weitere Informationen. In der Spalte
AmlOnlineEndpointConsoleLog: Dieses Protokoll enthält Anweisungen, die von den Containern als Ausgabe an die Konsole geschrieben werden. Dieses Protokoll ist in den folgenden Fällen hilfreich:
- Ein Container konnte nicht gestartet werden. Das Konsolenprotokoll kann beim Debuggen hilfreich sein.
- Sie möchten das Verhalten des Containers überwachen und sicherstellen, dass alle Anforderungen ordnungsgemäß bearbeitet werden.
- Sie möchten eine Anforderung vom Netzwerkeinstiegspunkt eines Onlineendpunkts bis zum Container nachverfolgen. Sie können eine Log Analytics-Abfrage verwenden, die die Anforderungs-ID mit Informationen aus den Protokollen AmlOnlineEndpointConsoleLog und AmlOnlineEndpointTrafficLog verknüpft.
- Sie möchten eine Leistungsanalyse ausführen, um beispielsweise die Zeit zu bestimmen, die das Modell benötigt, um die einzelnen Anforderung zu verarbeiten.
AmlOnlineEndpointEventLog: Dieses Protokoll enthält Ereignisinformationen zum Containerlebenszyklus. Derzeit enthält das Protokoll Informationen zu den folgenden Ereignistypen:
Name `Message` BackOff Backoff für den Neustart fehlerhafter Container Mithilfe von Pull übertragen Containerimage „<IMAGE_NAME>“ bereits auf dem Computer vorhanden Wird beendet Containerrückschlussserver mit fehlerhaftem Livetest wird neu gestartet Erstellt Containerimageabrufer wurde erstellt Erstellt Containerrückschlussserver wurde erstellt Erstellt Containermodelleinbindung wurde erstellt LivenessProbeFailed Fehler bei Livetest: <FAILURE_CONTENT> ReadinessProbeFailed Fehler bei Bereitschaftstest: <FAILURE_CONTENT> Gestartet Containerimageabrufer wurde gestartet Gestartet Containerrückschlussserver wurde gestartet Gestartet Containermodelleinbindung wurde gestartet Wird beendet Containerrückschlussserver wurde beendet Wird beendet Containermodelleinbindung wurde beendet
Aktivieren von Protokollen
Wichtig
Für die Protokollierung wird das Protokollanalysefeature von Monitor verwendet. Wenn Sie noch nicht über einen Log Analytics-Arbeitsbereich verfügen, können Sie einen erstellen, indem Sie die Schritte unter Erstellen eines Arbeitsbereichs ausführen.
Navigieren Sie im Azure-Portal zu der Ressourcengruppe mit Ihrem Endpunkt, und wählen Sie dann den Endpunkt aus.
Wählen Sie unter Überwachung die Option Diagnoseeinstellung und dann Diagnoseeinstellung hinzufügen aus.
Geben Sie im Fenster „Diagnoseeinstellung“ die folgenden Informationen ein:
- Geben Sie neben Name der Diagnoseeinstellung einen Namen für Ihre Einstellung ein.
- Wählen Sie unter Protokolle die Protokollkategorien aus, die Sie aktivieren möchten.
- Wählen Sie unter Zieldetails die Option An Log Analytics-Arbeitsbereich senden und dann das Abonnement und den Log Analytics-Arbeitsbereich aus, die Sie verwenden möchten.
Wählen Sie Speichern.
Wichtig
Es kann bis zu einer Stunde dauern, bis die Verbindung mit dem Log Analytics-Arbeitsbereich verfügbar ist. Warten Sie eine Stunde, bevor Sie mit den Schritten im nächsten Abschnitt fortfahren.
Abfrageprotokolle
Senden Sie Bewertungsanforderungen an den Endpunkt, um Einträge in den Protokollen zu erstellen.
Öffnen Sie das Azure-Portal. Verwenden Sie zum Öffnen der Protokolle eine der folgenden Optionen:
- Wechseln Sie zur Eigenschaftenseite für Ihren Onlineendpunkt. Wählen Sie unter Überwachung die Option Protokolle aus.
- Wechseln Sie zu Ihrem Log Analytics-Arbeitsbereich. Wählen Sie auf der linken Seite Protokolle aus.
Schließen Sie das Fenster Abfragehub, das standardmäßig geöffnet wird.
Doppelklicken Sie unter Andere auf AmlOnlineEndpointConsoleLog. Wenn AmlOnlineEndpointConsoleLog nicht angezeigt wird, geben Sie diesen Wert in das Suchfeld ein.
Klicken Sie auf Ausführen.
Beispielabfragen
Es stehen Beispielabfragen zur Verfügung. Führen Sie die folgenden Schritte aus, um die Abfragen anzuzeigen:
Wählen Sie auf der Seite „Protokolle“ die Option Abfragen aus.
Geben Sie im Suchfeld Onlineendpunkt ein.
Details der Protokollspalte
Die folgenden Tabellen enthalten detaillierte Informationen zu den Daten, die in den einzelnen Protokollen gespeichert sind:
AmlOnlineEndpointTrafficLog
Eigenschaft | BESCHREIBUNG |
---|---|
Methode | Die Methode, die der Client anfordert |
Pfad | Der Pfad, den der Client anfordert |
SubscriptionId | Die Machine Learning-Abonnement-ID des Onlineendpunkts. |
AzureMLWorkspaceId | Die Machine Learning-Arbeitsbereichs-ID des Onlineendpunkts. |
AzureMLWorkspaceName | Der Name des Machine Learning-Arbeitsbereichs des Online-Endpunkts. |
EndpointName | Der Name des Onlineendpunkts. |
DeploymentName | Der Name der Onlinebereitstellung. |
Protocol | Das Protokoll der Anforderung. |
ResponseCode | Der endgültige Antwortcode, der an den Client zurückgegeben wird |
ResponseCodeReason | Der endgültige Grund für den Antwortcode, der an den Client zurückgegeben wird |
ModelStatusCode | Der Antwortstatuscode vom Modell |
ModelStatusReason | Der Antwortstatusgrund vom Modell |
RequestPayloadSize | Die insgesamt vom Client empfangenen Bytes. |
ResponsePayloadSize | Die insgesamt an den Client zurückgesendeten Bytes. |
UserAgent | Der Benutzer-Agent-Header der Anforderung, einschließlich Kommentaren, aber auf maximal 70 Zeichen abgeschnitten |
XRequestId | Die Anforderungs-ID, die Azure Machine Learning für die interne Ablaufverfolgung generiert |
XMSClientRequestId | Die vom Client generierte Nachverfolgungs-ID |
TotalDurationMs | Die Dauer in Millisekunden vom Startzeitpunkt der Anforderung bis zum letzten Antwortbyte, das an den Client zurückgesendet wurde. Wenn der Client die Verbindung unterbrochen hat, wird die Zeit von der Startzeit bis zur Unterbrechung der Verbindung durch den Client gemessen. |
RequestDurationMs | Die Dauer in Millisekunden vom Startzeitpunkt der Anforderung bis zum letzten Byte der vom Client empfangenen Anforderung |
ResponseDurationMs | Die Dauer in Millisekunden vom Startzeitpunkt der Anforderung bis zum ersten vom Modell gelesenen Antwortbyte |
RequestThrottlingDelayMs | Die Verzögerung in Millisekunden bei der Anforderungsdatenübertragung aufgrund der Netzwerkdrosselung |
ResponseThrottlingDelayMs | Die Verzögerung in Millisekunden bei der Antwortdatenübertragung aufgrund der Netzwerkdrosselung |
AmlOnlineEndpointConsoleLog
Eigenschaft | BESCHREIBUNG |
---|---|
TimeGenerated | Der UTC-Zeitstempel des Zeitpunkts, zu dem das Protokoll generiert wurde |
Vorgangsname | Der mit dem Protokolleintrag verbundene Vorgang |
InstanceId | Die ID der Instanz, die diesen Protokolleintrag generiert hat |
DeploymentName | Der Name der Bereitstellung, die dem Protokolleintrag zugeordnet ist |
ContainerName | Der Name des Containers, in dem das Protokoll generiert wurde |
Nachricht | Der Inhalt des Protokolls |
AmlOnlineEndpointEventLog
Eigenschaft | BESCHREIBUNG |
---|---|
TimeGenerated | Der UTC-Zeitstempel des Zeitpunkts, zu dem das Protokoll generiert wurde |
Vorgangsname | Der mit dem Protokolleintrag verbundene Vorgang |
InstanceId | Die ID der Instanz, die diesen Protokolleintrag generiert hat |
DeploymentName | Der Name der Bereitstellung, die dem Protokolleintrag zugeordnet ist |
Name | Der Name des Ereignisses |
Nachricht | Der Inhalt des Ereignisses |
Verwenden von Application Insights
Kuratierte Umgebungen umfassen die Integration mit Application Insights. Aufgrund dieser Integration werden integrierte Metriken und Protokolle an Application Insights gesendet. Daher können Sie die integrierten Application Insights-Features für die weitere Analyse verwenden. Beispiele für diese Features sind Livemetriken, Transaktionssuche, Fehleransicht und Leistungsansicht.
Weitere Informationen finden Sie unter Übersicht über Application Insights.
Sie können die Integration mit Application Insights aktivieren, wenn Sie in Studio eine Onlinebereitstellung erstellen. Wählen Sie auf der Seite „Bereitstellung“ unter Application Insights-Diagnose die Option Aktiviert aus.
Wenn Sie Application Insights aktivieren, können Sie Überwachungsdiagramme auf hoher Ebene für einen verwalteten Onlineendpunkt anzeigen. Wechseln Sie in Studio zur Seite des Endpunkts, und wählen Sie dann die Registerkarte Überwachung aus.