Superviser une solution Recherche Azure AI

Effectué

Azure Monitor peut vous donner des insights sur l’utilisation et les performances de votre service de recherche. Vous pouvez également recevoir des alertes proactives en cas de problèmes.

Ici, vous allez explorer toutes les options de supervision disponibles pour le service Recherche Azure AI. Vous apprendrez ensuite à créer des alertes utiles pour gérer votre solution de recherche.

Superviser Recherche Azure AI dans Azure Monitor

Quand vous créez votre service Recherche Azure AI, vous pouvez voir la latence de recherche actuelle, les requêtes par seconde et le pourcentage de requêtes limitées sans aucune configuration supplémentaire. Ces données sont disponibles sous l’onglet Monitoring de la page Vue d’ensemble.

A screenshot of the monitor tab in Azure AI Search.

Vous pouvez également voir les ressources utilisées par votre solution de recherche sous l’onglet Utilisation.

A screenshot of the usage tab on the overview page of Azure AI Search service.

Ces informations de monitoring de base constituent un bon point de départ, mais vous pouvez aller plus loin en effectuant des étapes de configuration supplémentaires. Si vous êtes familiarisé avec la prise en charge d’autres ressources sur la plateforme Azure, vous savez qu’Azure Monitor peut être utilisé pour toutes vos ressources Azure.

En fait, vous avez déjà vu comment activer Azure Monitor dans l’unité Optimiser les performances. Effectuez ces étapes pour autoriser Azure Monitor à utiliser les données capturées dans Log Analytics et voir un ensemble complet de données de diagnostic.

Quand vous commencez à utiliser Log Analytics, vous avez accès aux données de performances et de diagnostic dans ces tables de journaux :

  • AzureActivity : présente les tâches qui ont été exécutées, comme la mise à l’échelle du service de recherche.
  • AzureDiagnostics : toutes les opérations liées aux requêtes et à l’indexation.
  • AzureMetrics : données utilisées pour les métriques qui mesurent l’intégrité et les performances de votre service de recherche.

Utiliser des métriques pour présenter visuellement les données de diagnostic

La création de graphiques vous permet de voir facilement les performances de votre service de recherche. Sous la section Monitoring de votre service de recherche, sélectionnez Métriques.

A screenshot of the metrics page.

Sélectionnez à présent l’une de ces métriques capturées pour l’ajouter :

  • DocumentsProcessedCount
  • SearchLatency
  • SearchQueriesPerSecond
  • SkillExecutionCount
  • ThrottledSearchQueriesPercentage

Par exemple, vous pouvez représenter la latence de recherche par rapport au pourcentage de requêtes limitées pour voir si les réponses aux requêtes sont affectées par la limitation.

Écrire des requêtes Kusto sur vos journaux de solutions de recherche

Log Analytics vous permet d’écrire n’importe quelle requête Kusto sur des données de journal capturées. Le moyen le plus simple d’exécuter ces requêtes consiste à sélectionner Journaux sous la section Monitoring. La fonctionnalité Journaux ouvre Log Analytics avec la fenêtre de requête automatiquement délimitée à votre solution Recherche Azure AI.

A screenshot of a Log Analytics Kusto query against the AzureDiagnostic table.

La requête ci-dessus vous permet de voir la liste des opérations récentes et le nombre de fois qu’elles se sont produites.

AzureDiagnostics
| summarize count() by OperationName

Voici des requêtes utiles pour vous aider à surveiller et à diagnostiquer les problèmes liés à votre solution de recherche :

Requête

Kusto


requêtes longues ;

AzureDiagnostics
| project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s
| where OperationName == "Query.Search"
| sort by DurationMs

État de l'indexeur

AzureDiagnostics
| project OperationName, Description_s, Documents_d, ResultType, resultSignature_d
| where OperationName == "Indexers.Status"

Codes d’état HTTP

AzureDiagnostics
| where TimeGenerated > ago(7d)
| summarize count() by resultSignature_d
| render barchart

Taux de requêtes

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

Latence moyenne des requêtes

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

Nombre moyen de requêtes par 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

Opérations d’indexation par 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

Créer des alertes pour être averti des problèmes courants liés à la solution de recherche

Les alertes peuvent vous permettre de gérer de manière proactive votre service de recherche. Voici quelques alertes couramment utilisées que vous pouvez envisager de créer :

A screenshot of all the metric you can create alerts for.

  • Latence de recherche : en utilisant le signal de la métrique, vous pouvez spécifier la latence (en secondes) qui déclenche l’alerte.
  • Pourcentage de requêtes de recherche limité : en utilisant le signal de la métrique, vous pouvez spécifier le pourcentage.
  • Supprimer le service de recherche : en utilisant le signal du journal d’activité, vous êtes averti si votre service de recherche est supprimé.
  • Arrêter le service de recherche : en utilisant le signal du journal d’activité, vous êtes averti si votre service de recherche est arrêté, ce qui se produit s’il fait l’objet d’un scale-up ou d’un scale-down ou s’il doit être redémarré.