En este documento, se explica cómo crear una política de alertas para supervisar los resultados de una consulta que ejecutas en Log Analytics. 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 Log Analytics 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 Cómo consultar y analizar registros 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 deseas recibir alertas y cómo quieres que se te notifique sobre un incidente. Existen algunos enfoques diferentes que puedes usar para recibir notificaciones cuando aparezcan contenido o patrones en tus datos de seguimiento:
Para supervisar la cantidad de intervalos de Cloud Trace transferidos 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 bien 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 políticas de alertas. En este caso, usarás consultas de SQL para consultar la vista
_AllSpansen el bucket de observabilidad llamado_Trace. Por último, crearás 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 registro, consulta la 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 la frecuencia con la que la política de alertas ejecuta su consulta. La programación también define el tamaño de la ventana de observació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 configuras la programación en 60 minutos, la consulta se ejecutará cada 60 minutos con una ventana de observación que seleccionará los 60 minutos de datos más recientes.
Las políticas de alertas también contienen una lista de canales de notificación. Cuando se cumple la condición 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 provocaron 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 consola de Google Cloud .
Tipos de evaluación para las 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 vinculado de BigQuery. Los conjuntos de datos vinculados permiten que BigQuery lea tus datos de seguimiento y que ejecutes funciones de BigQuery en los datos que devuelve 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 proyecto Google Cloud 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 a pedido. Las ranuras a pedido 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:
- Crea una reserva con ranuras dedicadas o identifica una reserva existente.
- Crea asignaciones de reservas para tu proyecto.
Ventana de visualización y tiempo de propagación del incidente
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 darle tiempo a Cloud Logging a indexar los datos recibidos durante el período de observación. Por ejemplo, si la política de alertas usa un período que finaliza a las 2 p.m., el Análisis de registros no ejecutará 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.
Fallos en las consultas
Las consultas emitidas por políticas de alertas basadas en SQL pueden fallar por varios motivos, incluidos los siguientes:
La cuenta de servicio de supervisión 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 supera 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 registre 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:
-
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:
-
Consultar datos de seguimiento:
Usuario de Cloud Trace (
roles/cloudtrace.user) -
Crea políticas de alertas basadas en SQL:
-
Editor de Monitoring (
roles/monitoring.editor) -
Logging SqlAlertWriter (
roles/logging.sqlAlertWriter)
-
Editor de Monitoring (
-
Consultar datos de seguimiento:
Usuario de Cloud Trace (
Verifica que exista la cuenta de servicio de Monitoring y que tenga los siguientes roles:
- Agente de servicio de Monitoring (
roles/monitoring.notificationServiceAgent) en tu proyecto. - Visualizador de datos de BigQuery (
roles/bigquery.dataViewer) en tu conjunto de datos vinculado
Si no existe la cuenta de servicio de Monitoring, consulta Solución de problemas: No hay una cuenta de servicio de Monitoring.
- Agente de servicio de Monitoring (
- Configura los canales de notificación que deseas usar para recibir notificaciones sobre 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, haz lo siguiente:
Consola deGoogle Cloud
-
En la consola de Google Cloud , ve a la página manage_search Análisis de registros:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En la página Log Analytics, en el editor de consultas, ingresa una consulta en SQL que consulte tus datos de seguimiento.
En la barra de herramientas, haz clic en Ejecutar en BigQuery.
Log Analytics 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 settings Seleccionar motor de consultas y, luego, en BigQuery. El botón Ejecutar consulta cambia a Ejecutar en BigQuery.
En la tabla Resultados de la página Análisis de registros, haz clic en add_alert Crear alerta.
En la página Análisis de registros, se muestra la ventana Crear política de alertas de SQL, en la que se muestra tu consulta en la sección Consulta en SQL.
En la sección Condición de alerta, configura la condición y la programación de tu política de alertas.
Configura los detalles de la alerta de tu política de alertas.
Agrega canales de notificaciones y configura el contenido de las notificaciones, como un asunto personalizado.
Opcional: Agrega etiquetas de política de alertas y documentación.
Haz clic en Siguiente.
Revisa tu política de alertas y, luego, haz clic en Guardar para crearla.
API de Cloud Monitoring
Usa el método alertPolicies.create para crear políticas de alertas de forma programática. El tipo Condition 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 de 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 de modo 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 de la tabla de resultados de la consulta alcance un umbral determinado.
Para obtener una lista completa de los campos y las 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 las políticas de alertas, consulta Administra las políticas de alertas con la API.
Terraform
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.
En Cloud Shell, ve al directorio que contiene tu configuración de Terraform.
En tu configuración de Terraform, configura una instancia del recurso google_monitoring_alert_policy, incluido condition_sql.
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, consultaTerraform con Google Cloud.
Limitaciones
- Puedes tener una condición por política de alertas basada en SQL.
- Las políticas de alertas basadas en SQL no pueden consultar una vista de análisis.
Las consultas emitidas por políticas de alertas basadas en SQL fallan cuando su tiempo de ejecución supera los cinco minutos.
Hay una demora 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?
- Cómo consultar un conjunto de datos vinculado de BigQuery
- Consultas en SQL de muestra
- Cómo guardar y compartir una consulta en SQL