Cree una política de alertas

Las políticas de alertas para el ritmo de consumo del porcentaje de error aceptable se basan en el selector de series temporales select_slo_burn_rate, que se describe en Recupera datos de SLO. Hay otros selectores de series temporales y puedes usar algunos de ellos como base para las políticas de alertas. Si deseas obtener un análisis de las políticas de alertas basadas en SLO, consulta Alertas sobre tu ritmo de consumo.

Las políticas de alertas se crean con el método alertPolicies.create. El uso general de este método está documentado en Administra las políticas de alertas.

Las políticas de alertas para los SLO son similares a otras políticas de alertas sobre el límite de la métrica, pero varían de una forma específica: el filter en la especificación de MetricThreshold de la condición usa un selector de series temporales en lugar de un par de métricas y tipos de recursos supervisados.

Condiciones para las políticas de alertas basadas en SLO

Una política de alertas debe tener al menos una condición. Para una condición basada en SLO, usa una condición de tipo MetricThreshold.

Una condición de límite de la métrica puede contener dos pares de opciones de configuración de series temporales: filter y aggregations. Debido a que los datos de SLO se recuperan de forma distinta a otros datos de series temporales, el único campo que se usa en una condición para un SLO es el campo filter.

Una condición para un SLO establece los campos comparison, thresholdValue, duration y trigger.

En este ejemplo, se crea una condición que se infringe cuando la velocidad de consumo supera el doble de la velocidad normal. La estructura se ve así:

  "conditions": [
    {
      "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
      "conditionThreshold": {
        "filter": DATA_RETRIEVAL_FILTER_FOR_SLO,
        "comparison":"COMPARISON_GT",
        "thresholdValue": 2,
        "duration": {
          "seconds":"0",
        },
      },
    }
  ],

Para establecer el campo filter, necesitas el nombre del recurso de un SLO específico. Este valor tiene el formato projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}. Para obtener información sobre cómo encontrar el ID del SLO, consulta Genera una lista de SLO.

Para crear una alerta sobre el ritmo de consumo, usa el selector de series temporales select_slo_burn_rate. Este selector toma dos valores: el SLO objetivo y el período de retrospectiva. Para obtener más información, consulta select_slo_burn_rate.

Por ejemplo, el siguiente filtro obtiene el ritmo de consumo del SLO objetivo con un período de retrospectiva de 1 hora:

"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"

El resto de la política de alertas

Para completar la política de alertas, especifica los valores de los campos restantes:

  • displayName: Es una descripción de la política de alertas.
  • combiner: Describe la lógica para combinar condiciones. Esta política solo tiene una condición, así que AND o OR funcionan.
  • notificationChannels: Es un arreglo de canales de notificación existentes que se pueden usar cuando se activa la política de alertas. Para obtener información sobre cómo buscar y crear canales de notificación, consulta Canales de notificación.
  • documentation: Es información que se envía cuando se infringe la condición para ayudar a los destinatarios a diagnosticar el problema. Para obtener detalles, consulta Documentation.

Crea la política de alertas

En el siguiente ejemplo, se usa la API para crear una política de alertas de ritmo de consumo. Para obtener información acerca de cómo enumerar, modificar y borrar las políticas de alertas, consulta Administra las políticas de alertas según la API.

Protocolo

Para crear la política de alertas con curl, envía un mensaje de POST al extremo https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies y proporciona la política de alertas en el cuerpo de la solicitud. Con el JSON del cuerpo de la solicitud se describe una política de alertas que usa una condición de límite basada en el selector de series temporales select_slo_burn_rate con un período de retrospectiva de una hora.

  1. Crea una variable para conservar el cuerpo de la solicitud:

    CREATE_ALERT_POST_BODY=$(cat <<EOF
    {
      "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2",
      "combiner":"AND",
      "conditions": [
        {
          "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
          "conditionThreshold": {
            "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")",
            "comparison":"COMPARISON_GT",
            "thresholdValue": 2,
            "duration": {
              "seconds":"0",
            },
          },
        }
      ],
      "notificationChannels": ["${NOTIFICATION_CHANNEL}", ],
      "documentation": {
         "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.",
         "mime_type": "text/markdown",
      },
    }
    EOF
    )
    
  2. Publica la solicitud en el extremo:

    curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies