Referencia de las estadísticas de consultas avanzadas

Selecciona una versión de la documentación:

En este documento, se describen los parámetros de configuración, las dimensiones de telemetría, las vistas y las funciones de observabilidad para las estadísticas de consultas avanzadas en AlloyDB Omni.

Si deseas obtener más información para habilitar y consultar las estadísticas de consultas avanzadas, consulta Supervisa el rendimiento de las consultas con las estadísticas de consultas avanzadas.

Parámetros de configuración

Para aplicar los cambios de parámetros que no requieren que se reinicie la base de datos, ejecuta ALTER SYSTEM SET seguido de SELECT pg_reload_conf(). En la siguiente tabla, se describen los parámetros de configuración para las estadísticas de consultas avanzadas:

Parámetro Tipo Valor predeterminado Se debe reiniciar el dispositivo Descripción
google_insights_v2.enabled boolean off Sí para la habilitación inicial con shared_preload_libraries. No para una recarga posterior con pg_reload_conf(). Habilita o inhabilita la recopilación de telemetría de estadísticas de consultas avanzadas en la instancia.
google_insights_v2.qi_max_query_string_length integer 10240 No (recarga con pg_reload_conf()) Establece la longitud máxima en bytes (1024 a 102400) registrada para las plantillas de SQL normalizadas, en las que los valores literales se enmascaran como parámetros posicionales, como $1 y $2.
google_insights_v2.qi_preserve_comments boolean off No (recarga con pg_reload_conf()) Controla si los comentarios de SQL se conservan dentro de las cadenas de consulta normalizadas strings.
google_insights_v2.qi_track_wait_event_types boolean on No (recarga con pg_reload_conf()) Registra categorías de cuello de botella wait_class de alto nivel, como CPU, IO, Lock, Timeout, y IPC.
google_insights_v2.qi_track_wait_events boolean on No (recarga con pg_reload_conf()) Registra nombres detallados de wait_event de PostgreSQL, como DataFileExtend, transactionid y WALWrite.
google_insights_v2.qi_track_client_address boolean off No (recarga con pg_reload_conf()) Registra las direcciones IP del cliente que se conectan en las vistas de estadísticas de consultas y direcciones de clientes.
google_insights_v2.qi_track_tag boolean off No (recarga con pg_reload_conf()) Permite el seguimiento de etiquetas, como SQLCommenter etiquetas, en los comentarios de SQL.
google_insights_v2.qi_track_active_queries boolean off No (recarga con pg_reload_conf()) Permite el seguimiento en tiempo real de las consultas activas y las transacciones abiertas.

Vistas y métricas de observabilidad por dimensión

En las siguientes secciones, se enumeran las vistas de observabilidad y las columnas de métricas disponibles en el esquema google_insights_v2 para cada dimensión de telemetría.

Consultas

La dimensión de consultas realiza un seguimiento de las estadísticas de ejecución y el texto de SQL normalizado para las consultas en la instancia. Para conservar los comentarios de SQL en el texto de consulta normalizado, establece google_insights_v2.qi_preserve_comments en on.

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • observability_service_query_view
    • observability_service_query_coarse_1_view
    • observability_service_query_coarse_2_view
  • Columnas relacionadas:
    • query_id: identificador hash de la consulta en SQL normalizada
    • query: texto de consulta en SQL normalizado
    • database: base de datos lógica en la que se ejecutó la consulta
    • username: rol de base de datos que ejecutó la consulta
    • total_execution_time: tiempo de ejecución acumulado en microsegundos
    • total_wait_time: tiempo de espera acumulado en microsegundos
    • total_read_time: tiempo de lectura de disco acumulado en microsegundos
    • total_write_time: tiempo de escritura de disco acumulado en microsegundos
    • total_rows: cantidad total de filas que muestra o afecta la consulta
    • total_shared_blocks_hit: cantidad total de aciertos de búfer compartido
    • total_shared_blocks_read: cantidad total de bloques compartidos leídos del disco
    • count: cantidad total de veces que se ejecutó la consulta
    • recorded_on: marca de tiempo en la que se registró el intervalo de telemetría

Tipos de eventos de espera

La dimensión de tipos de eventos de espera registra categorías de cuello de botella wait_class de alto nivel cuando google_insights_v2.qi_track_wait_event_types se establece en on (habilitado de forma predeterminada).

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • Columnas relacionadas:
    • wait_class: categoría de evento de espera, como IO, Lock, LWLock, CPU o Internal wait event.
    • wait_event: nombre detallado del evento de espera de PostgreSQL dentro de la clase de espera
    • time_spent: tiempo de espera acumulado para el tipo de evento de espera en microsegundos
    • count: cantidad total de veces que ocurrió el tipo de evento de espera
    • database: base de datos lógica en la que ocurrió el evento de espera
    • username: rol de base de datos asociado con el evento de espera
    • tag_id: identificador numérico del conjunto de etiquetas de SQLCommenter asociado
    • tag_string: cadena de comentario de SQL sin procesar que contiene las etiquetas de la aplicación
    • recorded_on: marca de tiempo en la que se registró el intervalo de telemetría
    • query_id: identificador hash de la consulta (en observability_service_wait_event_stats_by_query_view)

Eventos de espera

La dimensión de eventos de espera registra nombres detallados de PostgreSQL wait_event cuando google_insights_v2.qi_track_wait_events se establece en on (habilitado de forma predeterminada).

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • observability_service_wait_event_no_query_view
    • observability_service_wait_event_stats_by_query_view
  • Columnas relacionadas:
    • wait_event: nombre específico del evento de espera de PostgreSQL, como DataFileExtend, DataFileRead, WALWrite o Internal wait event
    • wait_class: categoría de evento de espera a la que pertenece el evento de espera
    • time_spent: tiempo de espera acumulado para el evento de espera en microsegundos
    • count: cantidad total de veces que ocurrió el evento de espera
    • database: base de datos lógica en la que ocurrió el evento de espera
    • username: rol de base de datos asociado con el evento de espera
    • tag_id: identificador numérico del conjunto de etiquetas de SQLCommenter asociado
    • tag_string: cadena de comentario de SQL sin procesar que contiene las etiquetas de la aplicación
    • recorded_on: marca de tiempo en la que se registró el intervalo de telemetría
    • query_id: identificador hash de la consulta (en observability_service_wait_event_stats_by_query_view)

Bases de datos

La dimensión de bases de datos realiza un seguimiento del consumo de recursos y el volumen de consultas por base de datos lógica cuando google_insights_v2.enabled se establece en on.

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • observability_service_db_load_conn_view
    • observability_service_query_view
    • observability_service_wait_event_no_query_view
  • Columnas relacionadas:
    • database: nombre de la base de datos lógica
    • username: rol de base de datos que ejecutó consultas en la base de datos
    • total_execution_time: tiempo de ejecución de consultas acumulado en la base de datos en microsegundos
    • total_wait_time: tiempo de espera acumulado en la base de datos en microsegundos
    • count: cantidad total de ejecuciones de consultas en la base de datos
    • recorded_on: marca de tiempo en la que se registró el intervalo de telemetría

Usuarios y direcciones IP de clientes

La dimensión de usuarios y direcciones IP de clientes realiza un seguimiento de la carga por rol de base de datos (username) de forma predeterminada. Para recopilar también las direcciones IP de los clientes que se conectan (client_address), debes establecer google_insights_v2.qi_track_client_address en on (off de forma predeterminada).

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • observability_service_query_view
    • observability_service_client_address_stats_by_query_view
  • Columnas relacionadas:
    • client_address: dirección IP del cliente que se conecta (cuando google_insights_v2.qi_track_client_address es on)
    • username: nombre del rol de base de datos
    • database: nombre de la base de datos lógica
    • query_id: identificador hash de la consulta en SQL normalizada
    • time_spent: tiempo de ejecución de consultas acumulado para la dirección del cliente en microsegundos
    • count: cantidad total de ejecuciones de consultas para el usuario o la dirección IP del cliente
    • recorded_on: marca de tiempo en la que se registró el intervalo de telemetría

Etiquetas

La dimensión de etiquetas realiza un seguimiento de las estadísticas de ejecución de consultas por metadatos de etiquetas de aplicaciones. Para recopilar métricas de etiquetas, debes establecer google_insights_v2.qi_track_tag en on (off de forma predeterminada). Cuando se establece en off, estas vistas no muestran filas.

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • observability_service_db_load_tag_view
    • observability_service_tag_view
  • Columnas relacionadas:
    • tag_id: identificador numérico de la combinación de etiquetas de la aplicación
    • tag_string: cadena de comentario de SQL sin procesar que contiene las etiquetas de la aplicación
    • application: nombre de la aplicación extraído de las etiquetas de SQLCommenter
    • db_driver: controlador de base de datos extraído de las etiquetas de SQLCommenter
    • framework_name: nombre del framework de la aplicación extraído de las etiquetas de SQLCommenter
    • framework_controller: controlador de framework extraído de las etiquetas de SQLCommenter
    • framework_action: acción de framework extraída de las etiquetas de SQLCommenter
    • framework_route: ruta de framework extraída de las etiquetas de SQLCommenter
    • traceparent: contexto de seguimiento de W3C extraído de las etiquetas de SQLCommenter
    • database: nombre de la base de datos lógica en la que se ejecutó la consulta etiquetada
    • username: rol de base de datos que ejecutó la consulta etiquetada
    • total_execution_time: tiempo de ejecución de consultas acumulado para la combinación de etiquetas en microsegundos
    • count: cantidad total de ejecuciones de consultas para la combinación de etiquetas
    • recorded_on: marca de tiempo en la que se registró el intervalo de telemetría

Consultas activas

La dimensión de consultas activas realiza un seguimiento de las consultas en ejecución y las transacciones abiertas en tiempo real. Para consultar las sesiones activas, debes establecer google_insights_v2.qi_track_active_queries en on. Cuando se establece en off, la consulta de estas vistas muestra un error.

Las siguientes vistas y columnas están disponibles para esta dimensión:

  • Vistas de observabilidad:
    • stat_activity
    • stat_activity_v3
  • Columnas relacionadas:
    • pid: ID del proceso de backend (para finalizar una sesión, pasa el ID del proceso a la función del sistema pg_terminate_backend(pid) de PostgreSQL)
    • normalized_query_hash: identificador hash de la consulta en SQL normalizada
    • normalized_query: texto de SQL normalizado de la consulta activa
    • state: estado actual del backend, como active o idle in transaction
    • backend_start: marca de tiempo en la que comenzó la sesión actual (para calcular la duración de la sesión en segundos, calcula EXTRACT(EPOCH FROM (clock_timestamp() - backend_start)))
    • xact_start: marca de tiempo en la que comenzó la transacción actual (para calcular la duración de la transacción en segundos, calcula EXTRACT(EPOCH FROM (clock_timestamp() - xact_start)))
    • query_start: marca de tiempo en la que comenzó la consulta actual (para calcular la duración de la consulta en segundos, calcula EXTRACT(EPOCH FROM (clock_timestamp() - query_start)))
    • wait_event_type: categoría de evento de espera si el backend está esperando
    • wait_event: nombre del evento de espera si el backend está esperando
    • database: nombre de la base de datos lógica para la sesión activa
    • username: nombre del rol de base de datos para la sesión activa
    • application_name: nombre de la aplicación que se conecta
    • client_addr: dirección IP del cliente que se conecta