En esta página se describe el proceso para crear reglas de alerta basadas en registros y métricas de entornos aislados de Google Distributed Cloud (GDC) para facilitar la monitorización proactiva y una respuesta más rápida a los incidentes.
GDC te permite definir reglas de alerta basadas en las métricas o los registros de tu proyecto. Estas reglas activan alertas automáticamente cuando se cumplen condiciones específicas. Estos son los tipos de reglas de alerta que puede definir:
- Reglas basadas en métricas: activan alertas basadas en datos numéricos recogidos de tus aplicaciones o infraestructura. Por ejemplo, puedes crear una regla para activar una alerta si el uso de la CPU supera el 80%. Crea reglas basadas en métricas con la consola de GDC o una definición de recurso personalizado
MonitoringRule
. - Reglas basadas en registros: activan alertas basadas en el análisis de datos de registro. Estas alertas te permiten identificar y responder a eventos o patrones específicos de tus registros, como mensajes de error o actividad inusual. Crea reglas basadas en registros con la consola de GDC o una
LoggingRule
definición de recurso personalizado.
Tanto las reglas basadas en métricas como las basadas en registros se basan en una expresión de lenguaje de consulta para definir la condición que activa una alerta. Esta expresión filtra y analiza los datos entrantes, evaluando si se cumplen los criterios definidos.
La primera vez que se cumple una condición, la alerta pasa al estado pendiente. Si las condiciones se cumplen durante el periodo que definas, la alerta pasará al estado abierto. En ese momento, el sistema envía la alerta.
Para proporcionar más contexto y facilitar la gestión eficiente de las alertas, puede añadir etiquetas y anotaciones a sus reglas de alerta:
Etiquetas: pares clave-valor que categorizan e identifican las alertas. Usa etiquetas para información como la siguiente:
- Nivel de gravedad (error, crítico o advertencia)
- Código de alerta
- Nombre del recurso
Anotaciones: proporciona información adicional no identificable para enriquecer la alerta. Las anotaciones pueden incluir la siguiente información:
- Mensajes de error detallados
- Expresiones relevantes
- Enlaces a runbooks o guías de solución de problemas
Antes de empezar
Para obtener los permisos que necesitas para gestionar reglas basadas en métricas, pide a tu administrador de gestión de identidades y accesos de la organización o del proyecto que te conceda uno de los roles de recursos MonitoringRule
asociados.
Por otro lado, para obtener los permisos que necesitas para gestionar reglas basadas en registros, pide a tu administrador de gestión de identidades y accesos de la organización o del proyecto que te conceda uno de los roles de recursos LoggingRule
asociados.
En función del nivel de acceso y de los permisos que necesites, puedes obtener los roles de creador, editor o lector de estos recursos en una organización o en un proyecto. Para obtener más información, consulta Preparar permisos de gestión de identidades y accesos.
Definir reglas de alertas
Puedes definir reglas de alertas en el espacio de nombres de tu proyecto mediante la consola de GDC (opción preferida) o las APIs de monitorización y registro para aplicar recursos personalizados.
Selecciona uno de los siguientes métodos para definir reglas de alerta basadas en métricas o registros:
Consola
Para crear reglas de alerta en grupos de reglas desde la consola de GDC, sigue estos pasos:
- En la consola de GDC, selecciona un proyecto.
- En el menú de navegación, selecciona Operaciones > Alertas.
- Haga clic en la pestaña Alerting Policy (Política de alertas).
- Haz clic en Crear grupo de reglas.
Elige el tipo de regla de alerta:
- Selecciona Métricas para las reglas de alerta basadas en métricas.
- Selecciona Registros para ver las reglas de alertas basadas en registros.
Configura el grupo de reglas de alerta:
- En el campo Nombre del grupo de reglas de alerta, introduce un nombre para el grupo de reglas.
- En el campo Intervalo de evaluación de reglas, introduce el número de segundos de cada intervalo.
En el campo Límite, introduce el número máximo de alertas.
En la sección Reglas de alerta, haz clic en
Añadir regla.En la ventana Crear regla de alerta, introduce los siguientes detalles:
- Nombre de la regla de alerta.
Expresión de la regla de alerta. Usa LogQL para las reglas basadas en registros y PromQL para las reglas basadas en métricas.
Duración en segundos antes de que una alerta pase de pendiente a abierta.
El nivel de gravedad, como Error o Advertencia.
Nombre corto para identificar el recurso relacionado.
Código de alerta para identificar la alerta.
Una URL de runbook o información para solucionar problemas.
Un mensaje o una descripción de alerta.
Opcional: Añade Etiquetas y 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. Puedes agrupar más reglas de alerta en este grupo de reglas.
API
Crea reglas de alerta a partir de las APIs de monitorización o de registro:
Define un recurso personalizado
MonitoringRule
(reglas basadas en métricas) oLoggingRule
(reglas basadas en registros) en un archivo YAML.La especificación completa de recursos muestra un ejemplo de reglas basadas en métricas y en registros.
Sustituye los siguientes valores del archivo YAML según tus necesidades:
Campo Descripción namespace
El espacio de nombres del proyecto. name
Nombre de la configuración de la regla de alerta. source
La fuente de registro de la regla de alerta. Las opciones válidas son operational
yaudit
. Solo se aplica a los recursos deLoggingRule
.interval
Duración del intervalo de evaluación de reglas en segundos. limit
Opcional. El número máximo de alertas. Asigna el valor 0
para recibir alertas ilimitadas.alertRules
Las definiciones para crear reglas de alerta. alertRules.alert
El nombre de la alerta. alertRules.expr
Una expresión LogQL para reglas basadas en registros o una expresión PromQL para reglas basadas en métricas. La expresión debe evaluarse como un valor verdadero o falso para determinar si la alerta pasa a un estado pendiente. alertRules.for
Opcional. Duración en segundos antes de que una alerta pase de pendiente a abierta. El valor predeterminado es 0
segundos (activación inmediata).alertRules.labels
Pares clave-valor para categorizar e identificar la alerta. Requiere las siguientes etiquetas: severity
,code
yresource
.alertRules.annotations
Opcional. Metadatos no identificativos de la alerta en forma de pares clave-valor. Guarda el archivo YAML.
Aplica la configuración de recursos al servidor de la API Management en el mismo espacio de nombres que tus reglas de alertas basadas en métricas o en registros:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yaml
Haz los cambios siguientes:
KUBECONFIG_PATH
: la ruta al archivo kubeconfig del servidor de la API Management.ALERT_RULE_NAME
: el nombre del archivo de definición deMonitoringRule
oLoggingRule
.
Especificación completa del recurso
En esta sección se incluyen las plantillas YAML que puede usar para crear reglas de alerta basadas en métricas y en registros aplicando recursos personalizados. Si creas alertas desde la consola de GDC, puedes saltarte esta sección.
Define reglas de alertas en los siguientes recursos personalizados:
MonitoringRule
: reglas basadas en métricas.LoggingRule
: reglas basadas en registros.
MonitoringRule
En el siguiente archivo YAML se muestra una plantilla para el recurso personalizado MonitoringRule
. Para obtener más información, consulta la documentación de referencia de la API.
# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: MONITORING_RULE_NAME
spec:
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure metric-based alert rules.
alertRules:
# Define an alert name.
- alert: my-metric-based-alert
# Define the PromQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# 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
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Haz los cambios siguientes:
PROJECT_NAMESPACE
: el espacio de nombres de tu proyecto.MONITORING_RULE_NAME
: el nombre del archivo de definición deMonitoringRule
.
LoggingRule
En el siguiente archivo YAML se muestra una plantilla para el recurso personalizado LoggingRule
. Para obtener más información, consulta la documentación de referencia de la API.
# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: LOGGING_RULE_NAME
spec:
# Choose the log source to base alerts on (operational or audit logs).
# Optional.
# Valid options: 'operational' and 'audit'
# Default value: 'operational'
source: operational
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure log-based alert rules.
alertRules:
# Define an alert name.
- alert: my-log-based-alert
# Define the LogQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# 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: warning
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Haz los cambios siguientes:
PROJECT_NAMESPACE
: el espacio de nombres de tu proyecto.LOGGING_RULE_NAME
: el nombre del archivo deLoggingRule
definición.