Überwachen einer Azure KI-Suche-Lösung
Azure Monitor kann Ihnen Einblicke geben, wie gut Ihr Suchdienst verwendet wird und funktioniert. Sie können auch Warnungen erhalten, die Sie proaktiv über Probleme informieren.
Hier lernen Sie alle für Azure KI-Suche verfügbaren Überwachungsoptionen kennen. Dann erfahren Sie mehr über nützliche Warnungen, die Sie zum Verwalten Ihrer Suchlösung erstellen können.
Überwachen von Azure KI-Suche in Azure Monitor
Wenn Sie Ihren auf Azure KI-Suche basierenden Dienst ohne weitere Setups erstellen, können Sie Ihre aktuelle Suchlatenz, Abfragen pro Sekunde und den Prozentsatz der gedrosselten Abfragen anzeigen. Diese Daten können auf der Registerkarte Überwachung auf der Seite Übersicht angezeigt werden.
Auf der Registerkarte Verwendung können Sie auch überprüfen, welche Ressourcen Ihre Suchlösung nutzt.
Diese grundlegenden Informationen sind ein guter Anfang für das Überwachen, doch Sie können mit mehr Konfiguration einen Schritt weiter gehen. Wenn Sie mit dem Unterstützen anderer Ressourcen auf der Azure-Plattform vertraut sind, wissen Sie, dass Azure Monitor für alle Ihre Azure-Ressourcen verwendet werden kann.
Sie haben bereits in der Lerneinheit Leistung optimieren gesehen, wie Sie Azure Monitor aktivieren. Führen Sie diese Schritte aus, damit Azure Monitor Daten verwenden kann, die in Log Analytics erfasst wurden, um vollständige Diagnosedaten anzuzeigen.
Nachdem Sie mit dem Verwenden von Log Analytics begonnen haben, erhalten Sie Zugriff auf Leistungs- und Diagnosedaten in diesen Protokolltabellen:
- AzureActivity: Zeigt Ihnen ausgeführte Aufgaben an, z. B. das Skalieren des Suchdiensts
- AzureDiagnostics: Alle Abfrage- und Indizierungsvorgänge
- AzureMetrics: Für Metriken verwendete Daten, die die Integrität und Leistung Ihres Suchdiensts messen
Verwenden von Metriken zum visuellen Darstellen von Diagnosedaten
Das Erstellen von Diagrammen ist eine gute Möglichkeit, die Leistung Ihres Suchdiensts darzustellen. Wählen Sie im Abschnitt Überwachung Ihres Suchdiensts Metriken aus.
Wählen Sie dann aus, welche dieser erfassten Metriken Sie hinzufügen möchten:
- DocumentsProcessedCount
- SearchLatency
- SearchQueriesPerSecond
- SkillExecutionCount
- ThrottledSearchQueriesPercentage
Beispielsweise könnten Sie die Suchlatenz und den Prozentsatz gedrosselter Abfragen darstellen, um zu ermitteln, ob die Antworten auf Abfragen durch die Drosselung beeinflusst werden.
Schreiben von Kusto-Abfragen für Ihre Suchlösungsprotokolle
Log Analytics ermöglicht es Ihnen, jede Kusto-Abfrage für erfasste Protokolldaten zu schreiben. Am einfachsten können Sie diese Abfragen ausführen, indem Sie Protokolle im Abschnitt „Überwachen“ auswählen. Protokolle öffnen Log Analytics, wobei das Auftragsfenster automatisch auf Ihre Azure KI-Suche-Lösung festgelegt ist.
Mit der obigen Abfrage können Sie eine Liste der zuletzt verwendeten Vorgänge anzeigen und wie oft sie aufgetreten sind.
AzureDiagnostics
| summarize count() by OperationName
Im Folgenden finden Sie nützliche Abfragen, mit denen Sie Ihre Suchlösung überwachen und Probleme damit diagnostizieren können:
Abfrage
Kusto
Abfragen mit langer Ausführungszeit
AzureDiagnostics
| project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s
| where OperationName == "Query.Search"
| sort by DurationMs
Indexerstatus
AzureDiagnostics
| project OperationName, Description_s, Documents_d, ResultType, resultSignature_d
| where OperationName == "Indexers.Status"
HTTP-Statuscodes
AzureDiagnostics
| where TimeGenerated > ago(7d)
| summarize count() by resultSignature_d
| render barchart
Abfrageraten
AzureDiagnostics
| where OperationName == "Query.Search" and TimeGenerated > ago(1d)
| extend MinuteOfDay = substring(TimeGenerated, 0, 16)
| project MinuteOfDay, DurationMs, Documents_d, IndexName_s
| summarize QPM=count(), AvgDuractionMs=avg(DurationMs), AvgDocCountReturned=avg(Documents_d) by MinuteOfDay
| order by MinuteOfDay desc
| render timechart
Durchschnittliche Abfragelatenz
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime']..['_endTime']) // Time range filtering
| summarize AverageQueryLatency = avgif(DurationMs, OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))
by bin(TimeGenerated, intervalsize)
| render timechart
Durchschnittliche Abfragen pro Minute (QPM)
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize QueriesPerMinute=bin(countif(OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))/(intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart
Indizierungsvorgänge pro Minute (OPM)
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize IndexingOperationsPerSecond=bin(countif(OperationName == "Indexing.Index")/ (intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart
Erstellen von Warnungen zum Benachrichtigen über häufige Suchlösungsprobleme
Mit Warnungen können Sie Ihren Suchdienst proaktiv verwalten. Hier finden Sie einige häufig verwendete Warnungen, die Sie erstellen sollten:
- Suchlatenz: Mithilfe des Metriksignals können Sie angeben, welche Latenz die Warnung in Sekunden auslöst.
- Gedrosselter Suchprozentsatz: Mithilfe des Metriksignals können Sie den Prozentsatz angeben.
- Löschen des Suchdiensts: Mithilfe des Aktivitätsprotokollsignals werden Sie benachrichtigt, wenn Ihr Suchdienst gelöscht wird.
- Beenden des Suchdiensts: Mithilfe des Aktivitätsprotokollsignals werden Sie benachrichtigt, wenn Ihr Suchdienst beendet wird. Dies geschieht, wenn Ihr Suchdienst hoch- oder herunterskaliert wird oder neu gestartet werden muss.