Supervisa los resultados de tus consulta en SQL con una política de alertas

En este documento, se explica cómo crear una política de alertas para supervisar los resultados de una consulta que ejecutas en el Análisis de registros. Estas consultas se escriben en SQL y deben consultar una vista de observabilidad llamada _AllSpans. La política de alertas te notifica cuando el resultado de la consulta satisface las condiciones que especificaste.

Las políticas de alertas que creas desde la página Análisis de registros se ejecutan en un motor de BigQuery. Por lo tanto, se debe poder acceder a los datos que se consultan a través de un conjunto de datos de BigQuery vinculado.

Para obtener información general sobre el Análisis de registros, consulta Consulta y analiza seguimientos con el Análisis de registros.

Cómo funcionan las políticas de alertas

Una política de alertas describe las circunstancias en las que quieres recibir alertas y cómo quieres que se te notifique sobre un incidente. Existen varios enfoques diferentes que puedes usar para recibir notificaciones cuando aparece contenido o patrones en tus datos de seguimiento:

  • Para supervisar la cantidad de intervalos de Cloud Trace que se transfieren por mes, tu uso de cuota y la velocidad de transferencia de intervalos, crea políticas de alertas en Cloud Monitoring. Si nunca creaste una política de alertas, consulta Crea políticas de alertas para obtener información detallada sobre el uso de la consola de Cloud Monitoring.

  • Para ver o explorar seguimientos o intervalos individuales, o ver los atributos adjuntos a los intervalos, usa la página Explorador de seguimiento. Para obtener información sobre esa página, consulta Busca y explora seguimientos.

  • Para supervisar el análisis agregado de tus datos de seguimiento, combina el Análisis de registros con las políticas de alertas. En este caso, usas consultas en SQL para consultar la vista _AllSpans en el bucket de observabilidad llamado _Trace. Por último, creas la política de alertas para supervisar los resultados de la consulta en SQL. Este tipo de política de alertas se denomina política de alertas basada en SQL.

    Para obtener más información sobre cómo se almacenan tus datos de seguimiento, consulta Descripción general del almacenamiento.

    En el resto de este documento, se describe cómo usar las políticas de alertas basadas en SQL.

Componentes de la política de alertas

Una política de alertas basada en SQL contiene una condición y una programación:

  • La condición contiene la consulta, que es una consulta en SQL que consulta tus datos. La condición también define las circunstancias en las que el resultado de la consulta hace que Monitoring cree un incidente.

  • La programación define con qué frecuencia la política de alertas ejecuta su consulta. La programación también define el tamaño de la ventana de visualización, que es un filtro que selecciona solo los datos que se recibieron desde la última vez que se evaluó la consulta. Por ejemplo, si estableces la programación en 60 minutos, la consulta se ejecuta cada 60 minutos con una ventana de visualización que selecciona los 60 minutos más recientes de datos.

Las políticas de alertas también contienen una lista de canales de notificaciones. Cuando se cumplen las condiciones de la política de alertas, Cloud Monitoring crea un incidente y, luego, envía notificaciones sobre el incidente a través de estos canales. Un incidente es un registro de los datos que hicieron que se cumpliera la condición junto con otra información pertinente. Esta información puede ayudarte a solucionar los problemas que causaron el incidente. Puedes ver el incidente con la Google Cloud consola de.

Tipos de evaluación para políticas de alertas basadas en SQL

Las condiciones que supervisan el resultado de una consulta en SQL admiten dos tipos de evaluación:

  • Umbral de recuento de filas: La condición se cumple cuando la cantidad de filas en el resultado de la consulta es mayor, igual o menor que un valor de umbral.

  • Booleano: La condición se cumple cuando una columna booleana específica en la tabla de resultados de la consulta contiene cualquier fila con un valor de true.

Las políticas de alertas que supervisan el resultado de una consulta en SQL deben tener solo una condición.

Políticas de alertas y BigQuery

Para que una política de alertas consulte tus datos de seguimiento, debes configurar un conjunto de datos de BigQuery vinculado. Los conjuntos de datos vinculados permiten que BigQuery lea tus datos de seguimiento y que realices funciones de BigQuery en los datos que muestra tu consulta en SQL.

Cuando una política de alertas ejecuta una consulta en SQL, esa consulta se ejecuta en el motor de BigQuery en el Google Cloud proyecto en el que se define la política de alertas. De forma predeterminada, las consultas que se ejecutan en el motor de BigQuery usan ranuras según demanda. Las ranuras según demanda y las ranuras reservadas están sujetas a los precios de BigQuery.

También puedes configurar reservas de ranura de BigQuery dedicadas para tu proyecto:

  1. Crea una reserva con ranuras dedicadas o identifica una reserva existente.
  2. Crea asignaciones de reserva para tu proyecto.

Ventana de visualización y tiempo de propagación de incidentes

Cuando se programa una política de alertas para evaluar su condición, el Análisis de registros retrasa la ejecución de la consulta en SQL durante cinco minutos para permitir que Cloud Logging indexe los datos recibidos durante la ventana de visualización. Por ejemplo, si la política de alertas usa una ventana de visualización que finaliza a las 2:00 p.m., el Análisis de registros no ejecuta la consulta en SQL hasta las 2:05 p.m.

Si se cumple la condición de alerta después de que se ejecuta la consulta, el incidente puede tardar hasta dos minutos adicionales en propagarse por el sistema.

Errores en la consulta

Las consultas emitidas por políticas de alertas basadas en SQL pueden fallar por varios motivos, incluidos los siguientes:

  • La cuenta de servicio de Monitoring ya no existe o ya no tiene los permisos necesarios para leer los datos de seguimiento que se consultan.

  • El tiempo de ejecución de la consulta excede los cinco minutos.

  • Se produce un error interno.

Una consulta fallida genera una entrada de registro que contiene el ID de la política de alertas y el estado de error. Puedes usar una política de alertas basada en registros para crear una alerta cuando se registra un error.

Antes de comenzar

En esta sección, se supone que tienes un conjunto de datos de BigQuery vinculado para tus datos de seguimiento.

Antes de crear una política de alertas basada en SQL, completa los siguientes pasos:

  1. Para obtener los permisos que necesitas para consultar datos de seguimiento y crear políticas de alertas basadas en SQL, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

  2. Verifica que exista la cuenta de servicio de Monitoring y que tenga los siguientes roles:

    1. Agente de servicio de Monitoring (roles/monitoring.notificationServiceAgent) en tu proyecto
    2. Visualizador de datos de BigQuery (roles/bigquery.dataViewer) en tu conjunto de datos vinculado

    Si la cuenta de servicio de Monitoring no existe, consulta Solución de problemas: No hay cuenta de servicio de Monitoring.

  3. Configura los canales de notificaciones que deseas usar para recibir notificaciones de incidentes. Para fines de redundancia, te recomendamos que crees varios tipos de canales de notificaciones. Para obtener más información, consulta Cómo crear y administrar canales de notificaciones.

Crea una política de alertas basada en SQL

Para crear una política de alertas basada en SQL, sigue estos pasos:

Google Cloud Consola de

  1. En la Google Cloud consola de, ve a la Análisis de registros página:

    Ir a Análisis de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. En la página Análisis de registros, en el editor de consultas, ingresa una consulta en SQL que consulte tus datos de seguimiento.

  3. En la barra de herramientas, haz clic en Ejecutar en BigQuery.

    El Análisis de registros ejecuta tu consulta en el motor de BigQuery y muestra los resultados en la tabla Resultados.

    Si no se muestra Ejecutar en BigQuery, haz clic en Seleccionar motor de consultas y, luego, en BigQuery. El botón Ejecutar consulta cambia a Ejecutar en BigQuery.

  4. En la tabla Resultados de la página Análisis de registros, haz clic en  Crear alerta.

    La página Análisis de registros muestra la ventana Crear una política de alertas de SQL, que muestra tu consulta en la sección Consulta en SQL.

  5. En la sección Condición de alerta , configura la condición y la programación de tu política de alertas.

  6. Configura los detalles de la alerta de tu política de alertas.

    1. Agrega canales de notificaciones y configura el contenido de las notificaciones, como una línea de asunto personalizada.

    2. Opcional: Agrega etiquetas de política de alertas y documentación.

    3. Haz clic en Siguiente.

  7. Revisa tu política de alertas y, luego, haz clic en Guardar para crearla.

API de Cloud Monitoring

Usa el alertPolicies.create método para crear políticas de alertas de forma programática. El Condition tipo de tu política de alertas debe ser MonitoringQueryLanguageCondition, que es una instancia de SqlCondition. Este tipo de condición permite que las condiciones de tu política de alertas se definan con SQL.

Para definir la programación, establece un valor periodicity para uno de los campos minutes, hours o days. Por ejemplo, si deseas que la consulta se ejecute cada 12 horas, establece la periodicidad del campo hours en 12.

Para definir la condición, usa los siguientes campos:

  • boolean_test: Configura la política de alertas para que se cumpla su condición cuando una fila de una columna booleana en la tabla de resultados de la consulta contenga un valor verdadero.
  • row_count_test: Configura la política de alertas para que se cumpla su condición cuando la cantidad de filas en la tabla de resultados de la consulta cumpla con un umbral determinado.

Para obtener una lista completa de campos y definiciones, consulta SqlCondition en la documentación de la API de Cloud Monitoring.

Para obtener más información sobre la API de Monitoring para políticas de alertas, consulta Administra las políticas de alertas con la API.

Terraform

  1. Instala y configura Terraform para tu proyecto. Para las configuraciones de App Hub, selecciona el proyecto host o el proyecto de administración de App Hub.

  2. En Cloud Shell, ve al directorio que contiene tu configuración de Terraform.

  3. En tu configuración de Terraform, configura una instancia del google_monitoring_alert_policy, incluido condition_sql.

  4. En Cloud Shell, ingresa terraform apply.

Para modificar tu política de alertas, realiza los cambios y, luego, vuelve a aplicar la configuración de Terraform. Para obtener más información, consulta Administra políticas de alertas con Terraform.

Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Limitaciones

  • Puedes tener una condición por política de alertas basada en SQL.
  • Las consultas emitidas por políticas de alertas basadas en SQL fallan cuando su tiempo de ejecución excede los cinco minutos.

  • Hay un retraso de hasta siete minutos, más el tiempo de ejecución de la consulta, entre el momento en que se programa una consulta y el momento en que se crea un incidente.

Para obtener una lista completa de los límites asociados con las políticas de alertas, consulta Límites de Monitoring.

¿Qué sigue?