Documentation de référence sur les insights avancés sur les requêtes

Sélectionnez une version de la documentation :

Ce document décrit les paramètres de configuration, les dimensions de télémétrie, ainsi que les vues et fonctions d'observabilité pour les insights avancés sur les requêtes dans AlloyDB Omni.

Pour en savoir plus sur l'activation et l'interrogation des insights avancés sur les requêtes, consultez Surveiller les performances des requêtes à l'aide des insights avancés sur les requêtes.

Paramètres de configuration

Pour appliquer les modifications de paramètres qui ne nécessitent pas de redémarrer la base de données, exécutez ALTER SYSTEM SET, suivi de SELECT pg_reload_conf(). Le tableau suivant décrit les paramètres de configuration pour les insights avancés sur les requêtes :

Paramètre Type Valeur par défaut Veuillez redémarrer Description
google_insights_v2.enabled boolean off Oui pour l'activation initiale avec shared_preload_libraries. Non pour un rechargement ultérieur avec pg_reload_conf(). Active ou désactive la collecte de données de télémétrie pour les insights avancés sur les requêtes dans l'instance.
google_insights_v2.qi_max_query_string_length integer 10240 Non (recharger avec pg_reload_conf()) Définit la longueur maximale en octets (1024 à 102400) enregistrée pour les modèles SQL normalisés, où les valeurs littérales sont masquées en tant que paramètres positionnels tels que $1 et $2.
google_insights_v2.qi_preserve_comments boolean off Non (recharger avec pg_reload_conf()) Contrôle si les commentaires SQL sont conservés dans les chaînes de requête normalisées.
google_insights_v2.qi_track_wait_event_types boolean on Non (recharger avec pg_reload_conf()) Enregistre les catégories de goulots d'étranglement wait_class de haut niveau, telles que CPU, IO, Lock, Timeout et IPC.
google_insights_v2.qi_track_wait_events boolean on Non (recharger avec pg_reload_conf()) Enregistre les noms wait_event PostgreSQL précis, tels que DataFileExtend, transactionid et WALWrite.
google_insights_v2.qi_track_client_address boolean off Non (recharger avec pg_reload_conf()) Enregistre les adresses IP des clients qui se connectent dans les vues de statistiques sur les requêtes et les adresses client statistiques.
google_insights_v2.qi_track_tag boolean off Non (recharger avec pg_reload_conf()) Permet de suivre les tags, tels que SQLCommenter tags, dans les commentaires SQL.
google_insights_v2.qi_track_active_queries boolean off Non (recharger avec pg_reload_conf()) Permet de suivre en temps réel les requêtes actives et les transactions ouvertes.

Vues et métriques d'observabilité par dimension

Les sections suivantes listent les vues d'observabilité et les colonnes de métriques disponibles dans le schéma google_insights_v2 pour chaque dimension de télémétrie.

Requêtes

La dimension des requêtes suit les statistiques d'exécution et le texte SQL normalisé pour les requêtes dans l'instance. Pour conserver les commentaires SQL dans le texte de requête normalisé, définissez google_insights_v2.qi_preserve_comments sur on.

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • observability_service_query_view
    • observability_service_query_coarse_1_view
    • observability_service_query_coarse_2_view
  • Colonnes associées :
    • query_id : identifiant de hachage de la requête SQL normalisée.
    • query : texte de la requête SQL normalisée.
    • database : base de données logique dans laquelle la requête a été exécutée.
    • username : rôle de base de données qui a exécuté la requête.
    • total_execution_time : temps d'exécution cumulé en microsecondes.
    • total_wait_time : temps d'attente cumulé en microsecondes.
    • total_read_time : temps de lecture cumulé sur le disque en microsecondes.
    • total_write_time : temps d'écriture cumulé sur le disque en microsecondes.
    • total_rows : nombre total de lignes renvoyées ou affectées par la requête.
    • total_shared_blocks_hit : nombre total de hits de mémoire tampon partagée.
    • total_shared_blocks_read : nombre total de blocs partagés lus sur le disque.
    • count : nombre total d'exécutions de la requête.
    • recorded_on : code temporel de l'enregistrement de l'intervalle de télémétrie.

Types d'événements d'attente

La dimension des types d'événements d'attente enregistre les catégories de goulots d'étranglement wait_class de haut niveau lorsque google_insights_v2.qi_track_wait_event_types est défini sur on (activé par défaut).

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • Colonnes associées :
    • wait_class : catégorie d'événement d'attente, telle que IO, Lock, LWLock, CPU ou Internal wait event.
    • wait_event : nom d'événement d'attente PostgreSQL précis dans la classe d'attente.
    • time_spent : temps d'attente cumulé pour le type d'événement d'attente en microsecondes.
    • count : nombre total d'occurrences du type d'événement d'attente.
    • database : base de données logique dans laquelle l'événement d'attente s'est produit.
    • username : rôle de base de données associé à l'événement d'attente.
    • tag_id : identifiant numérique de l'ensemble de tags SQLCommenter associé.
    • tag_string : chaîne de commentaire SQL brute contenant les tags d'application.
    • recorded_on : code temporel de l'enregistrement de l'intervalle de télémétrie.
    • query_id: identifiant de hachage de la requête (dans observability_service_wait_event_stats_by_query_view).

Événements d'attente

La dimension des événements d'attente enregistre les noms PostgreSQL précis wait_event lorsque google_insights_v2.qi_track_wait_events est défini sur on (activé par défaut).

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • Colonnes associées :
    • wait_event: nom d'événement d'attente PostgreSQL spécifique, tel que DataFileExtend, DataFileRead, WALWrite ou Internal wait event.
    • wait_class : catégorie d'événement d'attente à laquelle appartient l'événement d'attente.
    • time_spent : temps d'attente cumulé pour l'événement d'attente en microsecondes.
    • count : nombre total d'occurrences de l'événement d'attente.
    • database : base de données logique dans laquelle l'événement d'attente s'est produit.
    • username : rôle de base de données associé à l'événement d'attente.
    • tag_id : identifiant numérique de l'ensemble de tags SQLCommenter associé.
    • tag_string : chaîne de commentaire SQL brute contenant les tags d'application.
    • recorded_on : code temporel de l'enregistrement de l'intervalle de télémétrie.
    • query_id: identifiant de hachage de la requête (dans observability_service_wait_event_stats_by_query_view).

Bases de données

La dimension des bases de données suit la consommation de ressources et le volume de requêtes par base de données logique lorsque google_insights_v2.enabled est défini sur on.

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • observability_service_db_load_conn_view
    • observability_service_query_view
    • observability_service_wait_event_no_query_view
  • Colonnes associées :
    • database : nom de la base de données logique.
    • username : rôle de base de données qui a exécuté des requêtes dans la base de données.
    • total_execution_time: temps d'exécution cumulé des requêtes dans la base de données en microsecondes.
    • total_wait_time : temps d'attente cumulé dans la base de données en microsecondes.
    • count : nombre total d'exécutions de requêtes dans la base de données.
    • recorded_on : code temporel de l'enregistrement de l'intervalle de télémétrie.

Utilisateurs et adresses IP client

La dimension des utilisateurs et des adresses IP client suit la charge par rôle de base de données (username) par défaut. Pour collecter également les adresses IP des clients qui se connectent (client_address), vous devez définir google_insights_v2.qi_track_client_address sur on (off par défaut).

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • observability_service_query_view
    • observability_service_client_address_stats_by_query_view
  • Colonnes associées :
    • client_address : adresse IP client (lorsque google_insights_v2.qi_track_client_address est on).
    • username : nom du rôle de base de données.
    • database : nom de la base de données logique.
    • query_id : identifiant de hachage de la requête SQL normalisée.
    • time_spent: temps d'exécution cumulé des requêtes pour l'adresse client en microsecondes.
    • count: nombre total d'exécutions de requêtes pour l'utilisateur ou l'adresse IP du client.
    • recorded_on : code temporel de l'enregistrement de l'intervalle de télémétrie.

Tags

La dimension des tags suit les statistiques d'exécution des requêtes par métadonnées de tag d'application. Pour collecter des métriques de tag, vous devez définir google_insights_v2.qi_track_tag sur on (off par défaut). Lorsque cette option est définie sur off, ces vues ne renvoient aucune ligne.

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • observability_service_db_load_tag_view
    • observability_service_tag_view
  • Colonnes associées :
    • tag_id : identifiant numérique de la combinaison de tags d'application.
    • tag_string : chaîne de commentaire SQL brute contenant les tags d'application.
    • application : nom de l'application extrait des tags SQLCommenter.
    • db_driver : pilote de base de données extrait des tags SQLCommenter.
    • framework_name: nom du framework d'application extrait des tags SQLCommenter.
    • framework_controller: contrôleur de framework extrait des tags SQLCommenter.
    • framework_action : action de framework extraite des tags SQLCommenter.
    • framework_route : route de framework extraite des tags SQLCommenter.
    • traceparent : contexte de trace W3C extrait des tags SQLCommenter.
    • database : nom de la base de données logique dans laquelle la requête taguée a été exécutée.
    • username : rôle de base de données qui a exécuté la requête taguée.
    • total_execution_time: temps d'exécution cumulé des requêtes pour la combinaison de tags en microsecondes.
    • count : nombre total d'exécutions de requêtes pour la combinaison de tags.
    • recorded_on : code temporel de l'enregistrement de l'intervalle de télémétrie.

Requêtes actives

La dimension des requêtes actives suit les requêtes en cours d'exécution et les transactions ouvertes en temps réel. Pour interroger les sessions actives, vous devez définir google_insights_v2.qi_track_active_queries sur on. Lorsque cette option est définie sur off, l'interrogation de ces vues renvoie une erreur.

Les vues et colonnes suivantes sont disponibles pour cette dimension :

  • Vues d'observabilité :
    • stat_activity
    • stat_activity_v3
  • Colonnes associées :
    • pid : identifiant de processus backend. Pour mettre fin à une session, transmettez l'identifiant de processus à la fonction système PostgreSQL pg_terminate_backend(pid).
    • normalized_query_hash : identifiant de hachage de la requête SQL normalisée.
    • normalized_query : texte SQL normalisé de la requête active.
    • state : état actuel du backend, tel que active ou idle in transaction.
    • backend_start : code temporel du début de la session en cours. Pour calculer la durée de la session en secondes, calculez EXTRACT(EPOCH FROM (clock_timestamp() - backend_start)).
    • xact_start : code temporel du début de la transaction en cours. Pour calculer la durée de la transaction en secondes, calculez EXTRACT(EPOCH FROM (clock_timestamp() - xact_start)).
    • query_start : code temporel du début de la requête en cours. Pour calculer la durée de la requête en secondes, calculez EXTRACT(EPOCH FROM (clock_timestamp() - query_start)).
    • wait_event_type: catégorie d'événement d'attente si le backend est en attente.
    • wait_event : nom de l'événement d'attente si le backend est en attente.
    • database : nom de la base de données logique pour la session active.
    • username : nom du rôle de base de données pour la session active.
    • application_name : nom de l'application qui se connecte.
    • client_addr : adresse IP du client qui se connecte.