Extraer datos sobre el objetivo de nivel de servicio

Los datos de SLO se almacenan en series temporales. Puede obtener series temporales de SLOs especificando un selector de series temporales en el parámetro filter del método timeSeries.list o usando el modo de filtro directo en Explorador de métricas.

Políticas de alertas basadas en objetivos de nivel de servicio

Si creas una política de alertas mediante la API de Cloud Monitoring, debes especificar el filtro mediante un selector de serie temporal como campo en la condición de umbral de la política. Para obtener información sobre cómo crear políticas de alertas basadas en SLOs mediante la API Monitoring, consulta Crear una política de alertas.

En las políticas de alertas solo se puede usar un subconjunto de los selectores de series temporales disponibles para los SLOs. Además, las políticas de alertas basadas en objetivos de nivel de servicio creadas con la Google Cloud consola siempre usan el selector select_slo_burn_rate.

Usar un selector de serie temporal en un filtro

Para obtener datos de series temporales de los SLOs, el filtro debe especificar un selector de series temporales. Los datos de SLO no se almacenan con los tipos de métricas y no se pueden recuperar con el filtro que especifica un par de tipos de métricas y de recursos monitorizados.

Nombres y argumentos

Los selectores de series temporales tienen uno de los siguientes formatos:

SELECTOR_NAME(SLO_NAME)
SELECTOR_NAME(SLO_NAME, LOOKBACK_PERIOD)

Los selectores tienen nombres que empiezan por select_slo_ y aceptan uno o dos argumentos:

  • El primer argumento del selector es el nombre de recurso de un SLO, que tiene este formato:

    projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID
    

    La expresión anterior contiene tres variables:

    • PROJECT_ID: nombre o número de un Google Cloud proyecto.
    • SERVICE_ID: nombre de un servicio.
    • SLO_ID: identificador de un objetivo de nivel de servicio definido para el servicio.

    Para obtener información sobre cómo encontrar los valores de los campos SERVICE_ID y SLO_ID de tu proyecto Google Cloud , consulta el artículo Trabajar con la API.

  • El segundo argumento, si se admite, es un periodo de retrospectiva. Consulta Tipos de alertas de presupuesto de errores para obtener información sobre los periodos retrospectivos. Las unidades de tiempo válidas son "ns", "us", "ms", "s", "m" y "h".

Por ejemplo, el selector select_slo_budget toma un argumento SLO_NAME, por lo que un filtro que utilice este selector tendrá el siguiente aspecto:

select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")

Por el contrario, el selector select_slo_burn_rate requiere los argumentos SLO_NAME y LOOKBACK_PERIOD, por lo que un filtro que utilice este selector tendrá el siguiente aspecto:

select_slo_burn_rate("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID", "3600s")

Para ver una lista y una descripción de todos los selectores, consulta Selectores de series temporales.

Recuperar datos con un selector

Una forma de consultar datos de serie temporal es usar la herramienta Explorador de APIs en la página de referencia del método timeSeries.list. Para obtener información sobre esta herramienta, consulta Explorador de APIs.

Por ejemplo, para obtener información sobre el presupuesto de un SLO, rellena los siguientes campos en la herramienta Explorador de APIs:

  • name: projects/PROJECT_ID
  • filter: select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
  • interval.startTime: 2021-10-07T13:00:20-04:00
  • interval.endTime 2021-10-08T13:00:20-04:00

En un sistema, después de sustituir variables como PROJECT_ID por valores y ejecutar el método, se devuelven los siguientes datos de serie temporal:

Un fragmento de la serie temporal recuperada

Selectores de series temporales

En esta sección se enumeran los selectores de series temporales disponibles para los SLOs y se describe lo que representan. Todos los selectores se pueden usar en filtros con el método timeSeries.list para obtener datos de series temporales. No todas ellas se admiten en las políticas de alertas.

select_slo_burn_rate

Sintaxis: select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)

El selector de serie temporal "burn-rate" devuelve la proporción entre la tasa de errores actual (la tasa de solicitudes incorrectas en el intervalo de retrospectiva) y la tasa de errores sostenible del SLO. La tasa de errores sostenible es la tasa con la que se cumple exactamente el objetivo de nivel de servicio.

Los valores de esta serie temporal pueden ir de 0 a infinito:

  • El valor 1 indica que el servicio tiene la tasa de errores ideal: no es demasiado arriesgado ni demasiado conservador.
  • Si el valor es superior a uno, significa que la tasa de fallos supera la tasa sostenible. Cuanto mayor sea el valor, antes dejará de cumplir el SLO.
  • Un valor inferior a uno significa que la tasa de errores actual es inferior a la sostenible.

Te recomendamos que uses dos políticas de alertas para monitorizar la tasa de consumo: una política de consumo rápido para alertarte de los picos en la tasa de consumo y una política de consumo lento para alertarte de los aumentos graduales.

Puedes crear y editar políticas de alertas basadas en este selector de serie temporal mediante la API o la Google Cloud consola.

Todas las políticas de alertas basadas en objetivos de nivel de servicio que se crean mediante la Google Cloud consola usan este selector para obtener los datos de los objetivos de nivel de servicio.

select_slo_health

Sintaxis: select_slo_health(SLO_NAME)

La serie temporal "Estado del SLO" responde a la pregunta "Durante un periodo de alineación determinado, ¿cuál fue la proporción de solicitudes válidas con respecto al total de solicitudes?". El SLI del servicio define qué se considera una solicitud válida. Para obtener más información sobre los SLIs, consulta la descripción general.

Esta serie temporal mide el rendimiento del servicio: si todas las solicitudes al servicio son correctas, los puntos de datos de esta serie temporal tienen el valor 1. A medida que aumenta el número de solicitudes incorrectas, los valores de los puntos de datos disminuyen.

select_slo_compliance

Sintaxis: select_slo_compliance(SLO_NAME)

La serie temporal "Cumplimiento del objetivo de nivel de servicio" responde a la pregunta "¿Cuál es la proporción de unidades correctas con respecto al total de unidades desde el inicio del periodo de cumplimiento?". El objetivo de nivel de servicio define el periodo de cumplimiento como un periodo continuo o un intervalo de tiempo del calendario. La unidad puede ser una solicitud o un periodo. Para obtener más información, consulta Cumplimiento de los SLOs basados en solicitudes y en ventanas.

Esta serie temporal te ofrece una visión general de cómo cumple el servicio el SLO. No produce una señal de urgencia operativa.

No uses este selector de serie temporal en las políticas de alertas.

select_slo_budget

Sintaxis: select_slo_budget(SLO_NAME)

La serie temporal "Presupuesto de SLO" responde a la pregunta "¿Cuánto presupuesto de errores quedaba en el momento de la medición?". El presupuesto de errores se puede medir en solicitudes o minutos, y la cantidad restante se calcula en función de si el periodo de cumplimiento se mide en tiempo natural o como una ventana de tiempo continua. Para obtener más información, consulta Presupuestos de errores.

Esta serie temporal mide el riesgo de fiabilidad de un servicio. Si el presupuesto de errores es inferior a cero, es posible que no se pueda cumplir el objetivo de nivel de servicio durante el periodo actual. Si no se cumple el SLO, puede haber consecuencias reales para el entorno de producción de una organización, en función de cómo gestione la fiabilidad.

No uses este selector de serie temporal en las políticas de alertas.

select_slo_budget_fraction

Sintaxis: select_slo_budget_fraction(SLO_NAME)

La serie temporal "Fracción del presupuesto de SLO" responde a la pregunta: "¿Cuánto del presupuesto de errores, como fracción de infinito negativo a uno, queda en este momento?".

No uses este selector de serie temporal en las políticas de alertas.

select_slo_budget_total

Sintaxis: select_slo_budget_total(SLO_NAME)

La serie temporal "Presupuesto total del SLO" responde a la pregunta: "¿Cuál es el presupuesto de errores total (en solicitudes o minutos) que se prevé que estará disponible en este momento, en función del comportamiento del servicio desde el inicio del periodo de cumplimiento?" El SLO define el periodo de cumplimiento como una ventana de tiempo o un intervalo de tiempo del calendario.

No uses este selector de serie temporal en las políticas de alertas.

select_slo_counts

Sintaxis: select_slo_counts(SLO_NAME)

La serie temporal "Recuentos de SLO" responde a la pregunta "Durante un periodo de alineación determinado, ¿cuál es el número de solicitudes correctas y incorrectas?". Este selector proporciona una serie temporal que registra el estado general y es adecuada para la ingestión en sistemas de almacenamiento a largo plazo.

No uses este selector de serie temporal en las políticas de alertas.