Alertas sobre tu ritmo de consumo

Puedes crear políticas de alertas sobre tus objetivos de nivel de servicio (SLO) para informarte si corres el riesgo de infringir un SLO. Selecciona el SLO que deseas supervisar y, luego, configura una condición que active una alerta cuando se infrinja la condición. La condición por lo general se expresa cuando seleccionas un valor límite que constituye una infracción y un período durante el cual se permite la infracción. Si se excede el límite por más tiempo que el período permitido, se activa la política de alertas.

En esta página, se describe cómo configurar una política de alertas del ritmo de consumo de tu porcentaje de error aceptable. No abarca las políticas de alertas en detalle; se da por sentado que ya conoces los conceptos básicos de las condiciones y los canales de notificación. Para obtener información general sobre las políticas de alertas y cómo crearlas, consulta Usa políticas de alertas.

Ritmo de consumo del porcentaje de error aceptable

El porcentaje de error aceptable para un período de cumplimiento es del 100% − SLO%. Si tu objetivo de SLO es del 95%, tu porcentaje de error aceptable es del 5% de tu rendimiento. El ritmo de consumo te indica qué tan rápido consumes el porcentaje de error aceptable. Para obtener más información, consulta Porcentajes de errores aceptables.

El selector de series temporales select_slo_burn_rate recupera la métrica de ritmo de consumo. Una política de alertas de ritmo de consumo te notifica cuando tu porcentaje de error aceptable se agota más rápido de lo normal.

Hay otros selectores de series temporales; consulta Recupera datos de SLO para obtener más información. Puedes crear políticas de alertas que utilicen algunos de estos otros selectores de series temporales, pero debes crearlas con la API de Cloud Monitoring.

Descripción general: crea una política de alertas en un SLO

Crear una política de alertas para un SLO es muy similar a crear una política de alertas para cualquier otra métrica.

En esta sección, se revisan los pasos generales y en las siguientes secciones se los describe con más detalle.

Si quieres crear una política de alertas para un SLO, debes seguir estos pasos:

  1. Identifica el SLO en el que deseas basar la política de alertas.

  2. Crea una condición para tu política de alertas que use el SLO elegido. La condición es dónde se usa el selector de series temporales para recuperar los datos del SLO. Por ejemplo, si usas el selector de series temporales para el ritmo de consumo, los datos recuperados reflejarán el ritmo de consumo del porcentaje de error aceptable para el SLO elegido.

    Mediante esta condición, también se especifica el límite y la duración de las infracciones del SLO antes de activar una alerta. Por ejemplo, si quieres que el ritmo de consumo sea superior al ritmo deseado durante un período determinado antes de activar una alerta. El valor “superior” es el límite de la condición, y el valor del “período” determinado es la duración de la condición.

  3. Identifica o crea un canal de notificaciones para usar en tu política de alertas.

  4. Proporciona documentación que explique a los usuarios qué activó la política de alertas.

  5. Recopila estas piezas en una invocación para crear una política de alertas.

Para obtener información general sobre las políticas de alertas y cómo crearlas, consulta Usa políticas de alertas.

Políticas de alertas y períodos de retrospectiva

Cuando recuperas los datos del SLO con un selector de series temporales, especificas un identificador para el SLO y un período de retrospectiva. El período de retrospectiva determina la distancia en el tiempo que quieres retroceder para recuperar los datos. El período de retrospectiva se usa para determinar qué es lo normal durante ese período.

Si deseas recibir una alerta sobre el consumo diario del porcentaje de error aceptable, elige un período de retrospectiva de 24 horas. Para alertar sobre el consumo por hora, elige un período de retrospectiva de una hora.

Tipos de alertas de porcentaje de error aceptable

Si configuras políticas de alertas para supervisar tu porcentaje de error aceptable, es una buena idea configurar dos políticas de alertas relacionadas:

  • Alerta de consumo rápido, que te advierte de un gran cambio repentino en el consumo que, si no se corrige, agotará tu porcentaje de error aceptable en muy poco tiempo. “A este ritmo, consumiremos el porcentaje de error aceptable de todo el mes en dos días”.

    Para una condición como esta, usar una duración de una retrospectiva más corta tiene sentido. Es deseable saber si surgió y persistió una condición que pueda ser catastrófica, aunque sea por poco tiempo. Si es en verdad catastrófica, no te conviene esperar demasiado para enterarte.

    El límite del ritmo de consumo del que se alerta aquí es mucho más alto que el modelo de referencia ideal para el período de retrospectiva.

  • Alerta de consumo lento, que te advierte sobre un ritmo de consumo que, si no se altera, agotará el porcentaje de error aceptable antes de que finalice el período de cumplimiento. Este tipo de condición es menos urgente que una condición de consumo rápido. “Estamos un poco por encima de lo que nos gustaría estar en este momento del mes, pero aún no tenemos grandes problemas”.

    Para una condición de consumo lento, tiene sentido usar una duración de retrospectiva más larga, con el fin de reducir las variaciones en el consumo a más corto plazo.

    El límite del ritmo de consumo que se alerta aquí es más alto que el modelo de referencia ideal para el período de retrospectiva, pero no lo es en gran medida. Una política basada en un período de retrospectiva más corto con un límite alto podría generar demasiadas alertas si el consumo a largo plazo se iguala. Pero si el consumo se mantiene demasiado alto durante un período más largo, con el tiempo consumirá todo tu porcentaje de error aceptable.

Crea una alerta de SLO: API

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.

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 alerta en muchos sentidos: son políticas de alerta con una condición de límite de métrica. Se diferencian de otras políticas de alertas de una manera muy específica: el filter en la especificación 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 métrica puede contener dos pares de configuraciones de series temporales: filter y aggregations, además de denominatorFilter y denominatorAggregations para las proporciones de compilación. Como los datos de SLO no se recuperan con los filtros de supervisión estándar, 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": [TO_BE_DETERMINED],
            "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 la forma 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 normal 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
        

Cómo crear políticas de alertas basadas en SLO con la consola

Para obtener información sobre las políticas de alertas basadas en SLO en la malla de servicios de Anthos, consulta la documentación de la malla de servicios de Anthos: crea una política de alertas para un SLO.