Crea grupos que contengan las reglas de alerta para las métricas o los registros de tu proyecto en la consola de GDC. Las reglas de métricas envían alertas basadas en datos de métricas, y las reglas de registros envían alertas basadas en datos de registros. Debes ingresar la expresión del lenguaje de consultas que determina si la alerta debe pasar a un estado pendiente. Además, puedes incluir valores opcionales, como etiquetas y anotaciones.
Las etiquetas te permiten diferenciar las características de una alerta como un mapa de pares clave-valor. Usa etiquetas para agregar o reemplazar información, como el nivel de gravedad (error, crítico, advertencia o información), el código de alerta y un nombre corto para identificar el recurso.
Por otro lado, usa anotaciones para agregar metadatos que no identifiquen las alertas. Por ejemplo, puedes incluir valores para los mensajes y las expresiones que se muestran en los campos de la interfaz de usuario (IU) o las URLs de los runbooks para ayudar con las acciones resolutivas.
Como alternativa, puedes crear reglas de alertas con la API de Observability para interactuar directamente con un recurso personalizado y actualizar los cambios en el espacio de nombres de tu proyecto.
Antes de comenzar
Antes de continuar, asegúrate de tener los siguientes permisos necesarios:
Crea reglas de alertas basadas en registros
Para obtener los permisos que necesitas para crear o ver reglas de alertas basadas en registros, pídele al administrador de IAM del proyecto que te otorgue uno de los siguientes roles en el espacio de nombres de tu proyecto:
- Logging Rule Creator: Crea recursos personalizados
LoggingRule
. Solicita el rol de creador de reglas de Logging (loggingrule-creator
). - Editor de reglas de registro: Edita o modifica recursos personalizados
LoggingRule
. Solicita el rol de editor de reglas de Logging (loggingrule-editor
). - Logging Rule Viewer: Visualiza recursos personalizados de
LoggingRule
. Solicita el rol de visualizador de reglas de Logging (loggingrule-viewer
).
Crea reglas de alertas basadas en métricas
Para obtener los permisos que necesitas para crear o ver reglas de alertas basadas en métricas, pídele al administrador de IAM del proyecto que te otorgue uno de los siguientes roles en el espacio de nombres de tu proyecto:
- Editor de reglas de supervisión: Edita o modifica recursos personalizados
MonitoringRule
. Solicita el rol de editor de reglas de Monitoring (monitoringrule-editor
). - Visualizador de reglas de Monitoring: Visualiza recursos personalizados de
MonitoringRule
. Solicita el rol de Visualizador de reglas de Monitoring (monitoringrule-viewer
).
Para obtener más información sobre las asignaciones de roles, consulta Descripciones de roles predefinidos.
Cómo crear reglas
Puedes crear reglas de alertas con la consola de GDC, que es el método preferido, o bien implementar un recurso personalizado con la API de Observability en el espacio de nombres de tu proyecto.
Console
Sigue estos pasos para crear reglas de alertas desde la consola de GDC:
- En la consola de GDC, selecciona un proyecto.
- En el menú de navegación, haz clic en Operations > Alerting.
- Haz clic en la pestaña Política de alertas.
- Haz clic en Crear grupo de reglas.
- Selecciona si deseas crear un grupo para Métricas o Registros. Las reglas de métricas envían alertas basadas en datos de supervisión del sistema, y las reglas de registro envían alertas basadas en datos de registro del sistema.
- En el campo Nombre del grupo de reglas de alerta, ingresa un nombre para el grupo.
- En el campo Intervalo de evaluación de reglas, ingresa la cantidad de segundos para cada intervalo.
- En el campo Límite, ingresa la cantidad máxima de alertas. Ingresa
0
para recibir alertas ilimitadas. - En la sección Reglas de alertas, haz clic en Crear regla de alerta.
- Ingresa un nombre para la regla de alerta.
Ingresa una expresión para la regla de alerta:
- Para una regla de registro del sistema, ingresa una expresión de LogQL (lenguaje de consultas de registros).
- Para una regla de supervisión del sistema, ingresa una expresión de PromQL (lenguaje de consulta de Prometheus).
Esta expresión debe evaluarse como una declaración verdadera o falsa, que determina si la alerta debe pasar a un estado pendiente o no.
En el campo Duración, ingresa la cantidad de segundos para definir cuándo una alerta activa pasa del estado pendiente al estado abierto. Nota: Si estableces la duración en un valor de
0
, el sistema de Observabilidad enviará la alerta inmediatamente después de que se cumpla la condición.En el campo Gravedad, elige el nivel de gravedad, como Error o Advertencia.
Ingresa un nombre corto para identificar el recurso relacionado, como
AIS
oDHCP
.Ingresa un código de alerta para identificarla.
Ingresa una URL o información del runbook para ayudar a resolver el problema.
Ingresa un mensaje o una descripción de la alerta.
Opcional: Haz clic en Agregar etiqueta para agregar etiquetas como pares clave-valor.
Opcional: Haz clic en Agregar anotación para agregar anotaciones como pares clave-valor.
Haz clic en Guardar para crear la regla.
Haz clic en Crear para crear el grupo de reglas. El grupo de reglas aparece en la lista Grupo de reglas de alerta.
API
Puedes crear reglas de supervisión y registro del sistema en GDC con la API de Observability implementando recursos personalizados. Un recurso personalizado MonitoringRule
o LoggingRule
consta de una o más consultas y expresiones para formar una condición, la frecuencia de evaluación y, de manera opcional, la duración durante la cual se cumple la condición.
Sigue estos pasos para crear reglas de alertas implementando un recurso personalizado en el espacio de nombres de tu proyecto:
- Crea un archivo YAML para el recurso personalizado con las siguientes plantillas para las reglas de alertas de supervisión o registro:
- Para crear reglas de supervisión del sistema y enviar alertas basadas en datos de métricas, usa el recurso personalizado
MonitoringRule
. - Para crear reglas de registro del sistema y enviar alertas basadas en los datos de registro, usa el recurso personalizado
LoggingRule
.
- Para crear reglas de supervisión del sistema y enviar alertas basadas en datos de métricas, usa el recurso personalizado
- En el campo
namespace
del recurso personalizado, ingresa el espacio de nombres de tu proyecto. - En el campo
name
, ingresa un nombre para la configuración de la regla de alertas. - Opcional: Si configuras el recurso personalizado
LoggingRule
para las reglas de registro, puedes elegir la fuente de registro para las alertas en el camposource
. Por ejemplo, ingresa un valor comooperational
oaudit
. - En el campo
interval
, ingresa la cantidad de segundos para la duración del intervalo de evaluación de la regla. - Opcional: En el campo
limit
, ingresa la cantidad máxima de alertas. Ingresa0
para recibir alertas ilimitadas. Opcional: Si también deseas calcular métricas y configurar reglas de grabación, ingresa la siguiente información en el campo
recordRules
:- En el campo
record
, ingresa el nombre de la grabación. Este valor define la serie temporal en la que se escribirá la regla de grabación y debe ser un nombre de métrica válido. En el campo
expr
, ingresa una expresión para la regla de grabación:- Para una regla de registro del sistema, ingresa una expresión de LogQL (lenguaje de consultas de registros).
- Para una regla de supervisión del sistema, ingresa una expresión de PromQL (lenguaje de consulta de Prometheus).
Esta expresión debe resolverse en un valor numérico para registrarse como una métrica nueva.
Opcional: En el campo
labels
, define las etiquetas que deseas agregar o reemplazar como pares clave-valor.
- En el campo
En el campo
alertRules
, ingresa la siguiente información para configurar reglas de alertas:- En el campo
alert
, ingresa el nombre de la alerta. En el campo
expr
, ingresa una expresión para la regla de alerta:- En el caso de una regla de registro del sistema, ingresa una expresión de LogQL.
- Para una regla de supervisión del sistema, ingresa una expresión de PromQL.
Esta expresión debe evaluarse como una declaración verdadera o falsa, que determina si la alerta debe pasar a un estado pendiente o no.
Opcional: En el campo
for
, ingresa la duración en segundos durante la cual se debe cumplir la condición especificada para que la alerta pase del estado pendiente al estado abierta. La duración predeterminada si no especificas otro valor es de0
segundos.En el campo
labels
, define las etiquetas que deseas agregar o reemplazar como pares clave-valor. Se requieren las siguientes etiquetas:severity
: Elige el nivel de gravedad, comoerror
,critical
,warning
oinfo
.code
: Ingresa el código de alerta para identificarla.resource
: Ingresa un nombre corto para identificar el recurso relacionado, comoAIS
oDHCP
.
Opcional: En el campo
annotations
, agrega anotaciones como pares clave-valor.
- En el campo
Guarda el archivo YAML del recurso personalizado.
Implementa el recurso personalizado en el espacio de nombres del proyecto del clúster de administrador para crear las reglas de alerta.
Configura reglas de registro y supervisión del sistema a partir de recursos personalizados
En esta sección, se incluyen las plantillas de YAML que debes usar para crear reglas de alertas implementando recursos personalizados. Si creas alertas desde la consola de GDC, puedes omitir esta sección.
El recurso personalizado MonitoringRule
Para crear reglas de supervisión del sistema, debes crear un recurso personalizado MonitoringRule
. Un MonitoringRule
consta de reglas de registro y reglas de alerta que describen las condiciones para enviar una alerta.
En el siguiente archivo YAML, se muestra una plantilla del recurso personalizado MonitoringRule
:
# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose namespace that matches the project namespace
# Note: The alert or record will be produced in the same namespace
namespace: PROJECT_NAMESPACE
name: alerting-config
spec:
# Rule evaluation interval
interval: 60s
# Configure limit for number of alerts (0: no limit)
# Optional. Default: 0 (no limit)
limit: 0
# Configure recording rules to generate new metrics based on pre-existing metrics.
# Recording rules precompute expressions that are frequently needed or computationally expensive.
# These rules save their result as a new set of time series.
recordRules:
# Define which timeseries to write to. The value must be a valid metric name.
- record: MyMetricsName
# Define PromQL expression to evaluate for this rule
expr: rate({service_name="bob-service"} [1m])
# Define labels to add or overwrite
# Optional. Map of key-value pairs
labels:
<label_key>: <label_value>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define PromQL expression to evaluate for this rule
# https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
expr: rate({service_name="bob-service"} [1m])
# Define when an active alert moves from pending to open
# Optional. Default: 0s
for: 0s
# Define labels to add or overwrite
# Required, Map of key-value pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# additional labels are optional
labels:
severity: error
code: 202
resource: AIS
<label_key>: <label_value>
# Define annotations to add
# Optional. Map of key-value pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<label_key>: <label_value>
Reemplaza PROJECT_NAMESPACE por el espacio de nombres de tu proyecto.
El recurso personalizado LoggingRule
Para crear reglas de registro del sistema, debes crear un recurso personalizado LoggingRule
. Un LoggingRule
consta de reglas de registro y reglas de alerta que describen las condiciones para enviar una alerta.
# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose namespace that matches the project namespace
# Note: The alert or record will be produced in the same namespace
namespace: PROJECT_NAMESPACE
name: alerting-config
spec:
# Choose which log source to base alerts on (Operational/Audit Logs)
# Optional. Default: Operational
source: operational
# Rule evaluation interval
interval: 60s
# Configure limit for number of alerts (0: no limit)
# Optional. Default: 0 (no limit)
limit: 0
# Configure recording rules to generate new metrics based on pre-existing logs.
# Recording rules generate metrics based on logs.
# Use recording rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
recordRules:
# Define which timeseries to write to. The value must be a valid metric name.
- record: MyMetricsName
# Define LogQL expression to evaluate for this rule
# https://grafana.com/docs/loki/latest/rules/
expr: rate({service_name="bob-service"} [1m])
# Define labels to add or overwrite
# Optional. Map of key-value pairs
labels:
<label_key>: <label_value>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define LogQL expression to evaluate for this rule
expr: rate({service_name="bob-service"} [1m])
# Define when an active alert moves from pending to open
# Optional. Default: 0s
for: 0s
# Define labels to add or overwrite
# Required, Map of key-value pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to alert
# additional labels are optional
labels:
severity: warning
code: 202
resource: AIS
<label_name>: <label_value>
# Define annotations to add
# Optional. Map of key-value pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<label_name>: <label_value>
Reemplaza PROJECT_NAMESPACE por el espacio de nombres de tu proyecto.