Surveiller les requêtes Cortex Search¶
Cortex Search enregistre des informations détaillées sur les requêtes de recherche à des fins de surveillance et de débogage. Lorsque la journalisation des requêtes est activée, vous pouvez examiner les modèles de requêtes, les temps de réponse et les détails des requêtes pour un Cortex Search Service.
Informations collectées dans les journaux de requêtes¶
Les journaux de requêtes Cortex Search comprennent les informations suivantes :
Type d’opération (par exemple, QUERY)
Corps complet de la requête, y compris le texte et les paramètres de la requête
Code d’état de la réponse
Temps de réponse en millisecondes
Nom de la base de données, du schéma et du service
Informations sur l’utilisateur, le rôle et la session
Activer la journalisation des requêtes¶
Pour collecter des journaux de requêtes pour un Cortex Search Service, activez la propriété REQUEST_LOGGING sur le service.
Vous pouvez activer la journalisation des requêtes lorsque vous créez un service :
Vous pouvez également activer la journalisation des requêtes sur un service existant :
Pour désactiver la journalisation des requêtes :
Considérations opérationnelles¶
Volume des données de journal¶
Chaque requête Cortex Search journalisée produit une ligne d’événement dans SNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTS. La quantité de données que vous accumulez dépend de votre taux de requête et de la durée pendant laquelle la journalisation reste activée. Définissez la conservation et le stockage en fonction du volume de journal que vous prévoyez de conserver.
Considérations relatives aux clients¶
Les données stockées dans les tables SNOWFLAKE.LOCAL entraînent des frais de stockage Snowflake. Interroger les journaux de requêtes avec SQL utilise les ressources de l’entrepôt comme n’importe quelle autre requête.
Latence des requêtes¶
L’activation de la journalisation des requêtes n’affecte pas la latence des requêtes de Cortex Search.
Accéder aux journaux de requêtes Cortex Search¶
Les journaux de requêtes d’un Cortex Search Service sont stockés dans le tableau des événements SNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTS. Vous pouvez accéder à ces journaux à l’aide d’une fonction de table ou en interrogeant directement le tableau des événements.
Utilisation de la fonction snowflake.local.get_ai_observability_events ¶
Les utilisateurs disposant du privilège MONITOR sur un Cortex Search Service peuvent afficher les journaux de requêtes pour ce service en utilisant la fonction snowflake.local.get_ai_observability_events.
Accorder le privilège MONITOR : Accordez le privilège MONITOR sur le Cortex Search Service au rôle qui utilisera la fonction :
Événements d’observabilité des requêtes : Appelez
snowflake.local.get_ai_observability_eventsà l’aide du rôle avec le privilège MONITOR :
Interroger le tableau des événements en tant qu’ACCOUNTADMIN¶
Les utilisateurs disposant du rôle ACCOUNTADMIN peuvent interroger directement le tableau des événements :
Note
Les utilisateurs disposant du rôle ACCOUNTADMIN peuvent interroger la table snowflake.local.ai_observability_events et accéder aux événements de requêtes pour tous les Cortex Search Services du compte.
Contrôle d’accès et autorisations¶
Pour voir les journaux de requêtes Cortex Search, les utilisateurs doivent disposer de l’un des éléments suivants :
Privilège OWNERSHIP ou MONITOR sur le Cortex Search Service
Rôle ACCOUNTADMIN (pour l’accès direct au tableau des événements)
L’exemple suivant utilise le rôle ACCOUNTADMIN pour créer un nouveau rôle search_monitoring_role avec les autorisations requises pour voir les journaux de requêtes Cortex Search :
Schéma de sortie¶
La fonction snowflake.local.get_ai_observability_events renvoie un tableau avec les colonnes suivantes :
Nom de la colonne |
Type de données |
Description |
|---|---|---|
TIMESTAMP |
TIMESTAMP_NTZ(9) |
Heure de l’événement |
START_TIMESTAMP |
TIMESTAMP_NTZ(9) |
Heure de début de l’événement (peut être NULL) |
TRACE |
OBJECT |
Informations de traçage pour l’événement (peut être NULL) |
RESOURCE_ATTRIBUTES |
OBJECT |
Contient des informations sur la session, l’utilisateur et le rôle, y compris l’ID de la session, l’ID de l’utilisateur, le nom de l’utilisateur, l’ID du rôle et le nom du rôle |
RECORD_TYPE |
STRING |
Type d’enregistrement, généralement « EVENT » pour les requêtes Cortex Search |
RECORD |
OBJECT |
Contient le nom de l’événement, généralement « CORTEX_SEARCH_REQUEST » |
RECORD_ATTRIBUTES |
OBJECT |
Contient des métadonnées d’observabilité détaillées, y compris des informations sur la base de données, le schéma, le service, l’utilisateur, le rôle et la session |
VALUE |
VARIANT |
Contient les détails de la requête actuelle, y compris le type d’opération, le corps de la requête, l’état de statut de la réponse et le temps de réponse |
La colonne VALUE contient les champs clés suivants :
snow.ai.observability.operation_type: Le type d’opération, tel que « QUERY »snow.ai.observability.request_body: La requête complète, y compris le texte et les paramètres de la requêtesnow.ai.observability.response_status_code: code d’état HTTP de la réponsesnow.ai.observability.response_time_ms: Temps de réponse en millisecondessnow.ai.observability.database.name: Base de données contenant le Cortex Search Servicesnow.ai.observability.schema.name: Schéma contenant le Cortex Search Servicesnow.ai.observability.object.name: Nom du Cortex Search Service
L’exemple suivant montre des données trouvées dans la colonne VALUE :
Exemple¶
Interroger les journaux de requêtes des 24 dernières heures, en utilisant un rôle avec le privilège MONITOR sur le service.