Überwachen des Status und der Ergebnisse von Indexern in Azure AI Search

Sie können die Indexerverarbeitung im Azure-Portal oder programmatisch über REST-Aufrufe oder ein Azure-SDK überwachen. Zusätzlich zum Status über den Indexer selbst können Sie Start- und Endzeiten sowie detaillierte Fehler und Warnungen einer bestimmten Ausführung anzeigen.

Überwachen mit dem Azure-Portal

Der aktuelle Status all Ihrer Indexer wird auf der Übersichtsseite Ihres Suchdiensts angezeigt. Die Portalseiten werden alle paar Minuten aktualisiert, sodass nicht sofort ein Hinweis auf einen neuen Indizierungslauf erkennbar ist. Wählen Sie oben auf der Seite Aktualisieren aus, um sofort die neueste Ansicht abzurufen.

Indexers list

Status Beschreibung
In Bearbeitung Gibt die aktive Ausführung an. Im Portal werden partielle Informationen angezeigt. Beim Fortschreiten der Indizierung erkennen Sie, dass der Wert Dokumente erfolgreich entsprechend ansteigt. Die Ausführung von Indexern, die große Datenmengen verarbeiten, kann sehr lange dauern. So können beispielsweise Indexer, die Millionen von Quelldokumenten verarbeiten, eine Laufzeit von 24 Stunden haben und nahezu umgehend neu gestartet werden und dort weitermachen, wo aufgehört wurde. Daher verfügen Indexer mit hohem Datenvolumen im Portal unter Umständen durchgehend über den Status In Bearbeitung. Details zum Fortschritt sowie zu vergangenen Ausführungen sind allerdings auch während der Ausführung eines Indexers verfügbar.
Erfolgreich Gibt an, dass die Ausführung erfolgreich war. Eine Indexerausführung kann auch erfolgreich sein, wenn bei einzelnen Dokumenten Fehler aufgetreten sind – vorausgesetzt, die Fehleranzahl liegt unter der Indexereinstellung Max. Fehlerelemente.
Fehler Die Anzahl der Fehler hat Max. Fehlerelemente überschritten, und die Indizierung wurde beendet.
Zurücksetzen Der interne Änderungsnachverfolgungs-Zustand des Indexers wurde zurückgesetzt. Der Indexer wird vollständig ausgeführt, und es werden alle Dokumente aktualisiert, nicht nur diejenigen mit jüngeren Zeitstempeln.

Sie können einen Indexer in der Liste auswählen, um weitere Informationen zu seiner aktuellen Ausführung sowie zu vergangen Ausführungen anzuzeigen.

Indexer summary and execution history

Im Diagramm Indexerzusammenfassung wird die Anzahl verarbeiteter Dokumente der letzten Ausführungen grafisch dargestellt.

Die Liste Ausführungsdetails enthält bis zu 50 der letzten Ausführungsergebnisse. Wählen Sie in der Liste auf ein Ausführungsergebnis aus, um Einzelheiten zur entsprechenden Ausführung anzuzeigen. Hierzu zählen unter anderem die Start- und Endzeit sowie möglicherweise aufgetretene Fehler und Warnungen.

Indexer execution details

Sollten bei der Ausführung dokumentenspezifische Probleme aufgetreten sein, werden diese in den Feldern „Fehler“ und „Warnungen“ aufgeführt.

Indexer details with errors

Warnungen sind bei bestimmten Arten von Indexern keine Seltenheit und deuten nicht immer auf ein Problem hin. So werden beispielsweise von Indexern, die Azure AI Services verwenden, unter Umständen Warnungen ausgegeben, wenn Bild- oder PDF-Dateien keinen zu verarbeitenden Text enthalten.

Weitere Informationen zur Untersuchung von Indexerfehlern und -warnungen finden Sie unter Beheben von häufigen Problemen bei Suchindexern in der kognitiven Azure-Suche.

Überwachen mit Azure-Überwachungsmetriken

Cognitive AI Search ist eine überwachte Ressource in Azure Monitor. Dies bedeutet, dass Sie den Metrik-Explorer verwenden können, um grundlegende Metriken zur Anzahl der vom Indexer verarbeiteten Dokumente und Skillaufrufe anzuzeigen. Diese Metriken können zum Überwachen des Indexerfortschritts und zum Einrichten von Warnungen verwendet werden.

Metrikansichten können nach vordefinierten Dimensionen gefiltert oder aufgeteilt werden.

Metrikname Beschreibung Dimensionen Beispiele für Anwendungsfälle
Anzahl verarbeiteter Dokumente Zeigt die Anzahl der vom Indexer verarbeiteten Dokumente an. Datenquellenname, Fehler, Indexname, Indexername, Skillsetname
– Kann als grobes Maß für den Durchsatz (Anzahl der Dokumente, die im Laufe der Zeit vom Indexer verarbeitet werden) herangezogen werden.
– Wird für Warnungen bei fehlerhaften Dokumenten eingerichtet.
Anzahl von Aufrufen der Skillausführung Zeigt die Anzahl der Skillaufrufe an. Datenquellenname, Fehler, Indexname, Indexername, Skillname, Skilltyp, Skillsetname
– Wird referenziert, um sicherzustellen, dass Skills wie erwartet aufgerufen werden, indem die relativen Aufrufzahlen zwischen Skills und der Anzahl der Skillaufrufe mit der Anzahl der Dokumente verglichen werden
– Wird für Warnungen bei fehlerhaften Skillaufrufen eingerichtet.

Der folgende Screenshot zeigt die Anzahl der Dokumente, die von Indexern innerhalb eines Diensts über eine Stunde verarbeitet wurden und nach Indexernamen aufgeteilt werden.

Indexer documents processed metric

Sie können das Diagramm auch so konfigurieren, dass die Anzahl von Skillaufrufen im gleichen Stundenintervall angezeigt wird.

Indexer skills invoked metric

Überwachen mithilfe des Befehls zum Abrufen des Indexerstatus (Rest-API)

Status und Ausführungsverlauf eines Indexers können mithilfe des Befehls zum Abrufen des Indexerstatus abgerufen werden:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2020-06-30
api-key: [Search service admin key]

Die Antwort enthält den Gesamtstatus des Indexers, den letzten (oder laufenden) Aufruf des Indexers sowie den Verlauf der letzten Indexeraufrufe.

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
     },
    "executionHistory":[ {
        "status":"success",
         "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    }]
}

Der Ausführungsverlauf enthält bis zu 50 der letzten Ausführungen und ist in umgekehrter chronologischer Reihenfolge sortiert, sodass die neuesten Ausführungen zuerst aufgeführt werden.

Es gibt zwei verschiedene Statuswerte. Der übergeordnete Status gilt für den Indexer an sich. Der Indexerstatus Wird ausgeführt bedeutet, dass der Indexer ordnungsgemäß eingerichtet ist und ausgeführt werden kann, jedoch nicht, dass er momentan ausgeführt wird.

Jede Ausführung des Indexers hat auch einen eigenen Status, der angibt, ob die jeweilige Ausführung gerade stattfindet (running) oder bereits abgeschlossen wurde (success, transientFailure oder persistentFailure).

Wenn ein Indexer zurückgesetzt wird, um den Zustand seiner Änderungsnachverfolgung zu aktualisieren, wird ein separater Ausführungsverlaufseintrag mit dem Status Reset hinzugefügt.

Weitere Informationen zu Statuscodes und Indexerüberwachungsdaten finden Sie unter Abrufen des Indexerstatus.

Überwachung mit .NET

Im folgenden C#-Beispiel werden Informationen zum Status eines Indexers sowie die Ergebnisse der letzten (oder aktuellen) Ausführung in der Konsole ausgegeben:

static void CheckIndexerStatus(SearchIndexerClient indexerClient, SearchIndexer indexer)
{
    try
    {
        string indexerName = "hotels-sql-idxr";
        SearchIndexerStatus execInfo = indexerClient.GetIndexerStatus(indexerName);

        Console.WriteLine("Indexer has run {0} times.", execInfo.ExecutionHistory.Count);
        Console.WriteLine("Indexer Status: " + execInfo.Status.ToString());

        IndexerExecutionResult result = execInfo.LastResult;

        Console.WriteLine("Latest run");
        Console.WriteLine("Run Status: {0}", result.Status.ToString());
        Console.WriteLine("Total Documents: {0}, Failed: {1}", result.ItemCount, result.FailedItemCount);

        TimeSpan elapsed = result.EndTime.Value - result.StartTime.Value;
        Console.WriteLine("StartTime: {0:T}, EndTime: {1:T}, Elapsed: {2:t}", result.StartTime.Value, result.EndTime.Value, elapsed);

        string errorMsg = (result.ErrorMessage == null) ? "none" : result.ErrorMessage;
        Console.WriteLine("ErrorMessage: {0}", errorMsg);
        Console.WriteLine(" Document Errors: {0}, Warnings: {1}\n", result.Errors.Count, result.Warnings.Count);
    }
    catch (Exception e)
    {
        // Handle exception
    }
}

Die Konsolenausgabe sieht in etwa wie folgt aus:

Indexer has run 18 times.
Indexer Status: Running
Latest run
  Run Status: Success
  Total Documents: 7, Failed: 0
  StartTime: 11:29:31 PM, EndTime: 11:29:31 PM, Elapsed: 00:00:00.2560000
  ErrorMessage: none
  Document Errors: 0, Warnings: 0

Es gibt zwei verschiedene Statuswerte. Der übergeordnete Status gilt für den Indexer an sich. Der Indexerstatus Wird ausgeführt bedeutet, dass der Indexer ordnungsgemäß eingerichtet ist und ausgeführt werden kann, jedoch nicht, dass er momentan ausgeführt wird.

Jede Ausführung des Indexers hat auch einen eigenen Status, der angibt, ob die jeweilige Ausführung gerade stattfindet (Running) oder bereits abgeschlossen wurde (Success oder TransientError).

Wenn ein Indexer zurückgesetzt wird, um den Zustand seiner Änderungsnachverfolgung zu aktualisieren, wird ein separater Verlaufseintrag mit dem Status Reset hinzugefügt.

Nächste Schritte

Weitere Informationen zu Statuscodes und zur Indexerüberwachung finden Sie in den folgenden API-Referenzen: