Crear gráficos de las métricas de cuota y supervisarlas

En este documento, se describe cómo crear políticas y alertas de supervisión para supervisar la cuota que te asigna Google Cloud. Además, se incluyen varios ejemplos. Google Cloud establece varias cuotas que puedes usar para realizar un seguimiento y limitar los recursos que consume una organización o proyecto. Para obtener información general sobre las cuotas, incluida la información sobre las cuotas de asignación y las cuotas, consulta Trabaja con cuotas.

Antes de comenzar

Se asume que estás familiarizado con los datos de series temporales y su manipulación. Los siguientes recursos proporcionan información adicional:

  • Para obtener información sobre cómo trabajar con datos de series temporales, consulta Filtrado y agregación.
  • Para obtener definiciones sobre los términos indicador, delta y acumulativo, consulta Tipos de métricas.
  • Si deseas obtener detalles sobre las funciones que se usan para combinar series temporales, consulta Aligner y Reducer.

Administración de la cuota

Cloud Monitoring administra la cuota de dos maneras:

  • Cuota del consumidor: Para este tipo de cuota, el recurso supervisado es consumer_quota. Las métricas de este recurso son un subconjunto de las métricas serviceruntime.

    La mayoría de los ejemplos de esta página son ejemplos de cuotas del consumidor.

  • Cuotas específicas de recursos: Algunos servicios proporcionan recursos supervisados con métricas específicas para los recursos sobre las cuotas. Estos tipos de métricas aparecen en grupos de tres y siguen un formato de nombre:

    • service/quota/quota-type/exceeded
    • service/quota/quota-type/limit
    • service/quota/quota-type/usage

    Por ejemplo, Compute Engine tiene el recurso compute.googleapis.com/VpcNetwork. Las métricas relacionadas con la cuota asociadas con este recurso son el subconjunto de compute.googleapis.com/quota de las métricas de compute. Existen tres tipos de métricas relacionadas con la cuota de "instancias por red de VPC":

Identifica las métricas de cuotas y los nombres de los límites

Los datos sobre el consumo de cuota sin procesar, en especial para la cuota de consumidor, pueden incluir información sobre muchas cuotas diferentes. A fin de extraer información sobre una cuota específica para un gráfico o una política de alertas, debes identificar ese subconjunto de datos de cuota.

Según la fuente, los datos de las cuotas pueden incluir etiquetas que puedes usar para aislar la información que deseas. Estas etiquetas incluyen a siguiente información:

  • Métrica de cuota: la métrica de cuota es un identificador para un tipo de cuota; no es uno de los tipos de métricas descritos en la Lista de métricas. Por ejemplo, todos los datos de cuotas del consumidor se escriben como el tipo de métrica serviceruntime.googleapis.com, como quota/allocation/usage. Este tipo de métrica tiene una etiqueta quota_metric que se puede usar para filtrar una cuota específica, por ejemplo, datos de uso de asignación.
  • Nombre del límite: El nombre del límite identifica un límite en un tipo específico de cuota. Una cuota puede tener más de un límite asociado. Por ejemplo, una cuota para llamadas de lectura puede tener un límite de 100 por minuto y un límite de 1,000 por día, con dos nombres de límite, readsPerMinute y readsPerDay. Los tipos de métricas relacionados con las cuotas pueden tener un campo limit_name para este valor.

Todos los tipos de métricas serviceruntime.googleapis.com/quota proporcionan la etiqueta quota_metric, pero solo algunos incluyen la etiqueta limit_name. Los tipos de métricas específicos del recurso para la cuota incluyen la etiqueta limit_name.

No todos los servicios de Google Cloud admiten métricas de cuotas. A fin de determinar si un servicio admite métricas de cuotas y para identificar los valores de las etiquetas específicas de la cuota, puedes usar el siguiente procedimiento:

  1. En Google Cloud Console, ve a la página Cuotas del administrador:

    Ir a Cuotas

  2. Haz clic en Ver columna y agrega las siguientes columnas a la pantalla de cuota:

    • Métrica: Esta columna muestra el valor de la etiqueta quota_metric.
    • Nombre del límite: En esta columna, se muestra el valor de la etiqueta limit_name.
    • Recurso supervisado: Cuando se propaga, la cuota usa el recurso supervisado que se indica. Cuando está vacío, el recurso supervisado para la cuota es consumer_quota.
  3. Busca la cuota de interés.

    Por ejemplo, la cuota de subredes de la API de Compute Engine enumera la métrica como compute.googleapis.com/subnetworks, el nombre del límite como SUBNETWORKS-per-project y no enumera un recurso supervisado. Por lo tanto, el recurso supervisado para esta cuota es consumer_quota.

Ejemplo: consulta el uso de una métrica de cuota de consumidor específica

El objetivo es crear un gráfico que muestre, por región, la cuota de almacenamiento en disco total de Compute Engine. En este ejemplo de cuota del consumidor, se recuperan los datos de quota/allocation/usage y, luego, se filtran los datos para que se muestre el uso de asignación de una métrica de cuota específica:

  1. En Google Cloud Console, selecciona Cloud Monitoring y, luego, Explorador de métricas.

  2. Selecciona la pestaña Configuración.

  3. En la barra de herramientas, selecciona 1 M para establecer el período en mes.

  4. Expanda el menú Gráfico de líneas y seleccione Gráfico de barras apiladas.

  5. Configura el Explorador de métricas para mostrar el uso de la cuota de asignación:

    1. Haz clic en Seleccionar una métrica y, luego, ingresa allocation en la Barra de filtros.
    2. Selecciona Cuota del consumidor para el recurso.
    3. Selecciona Cuota para la categoría de métrica.
    4. Selecciona Uso de la cuota de asignación para la métrica y haz clic en Aplicar.

    Seleccionar cuota del consumidor.

    El gráfico muestra el uso de cuota de asignación como un gráfico de barras para el período de seis semanas. Cuando observas la leyenda, puedes ver que el gráfico muestra el uso de cuota para varios servicios.

    Si usas la API de Cloud Monitoring, el valor del filtro equivalente es el siguiente:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota"
    

    Para ver este valor de filtro, expande el menú Tipo de recurso y, luego, selecciona Modo de filtro directo.

  6. Para limitar la visualización al servicio de Compute Engine, agrega el filtro service = compute.googleapis.com:

    Filtra la cuota del consumidor por servicio de procesamiento.

    Si usas la API de Cloud Monitoring, el valor del filtro equivalente es el siguiente:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" resource.label.service="compute.googleapis.com"
    

    Ahora, la tabla temporal muestra las series temporales para el uso de cuota asignado a las cuotas de Compute Engine. La leyenda muestra el valor de la etiqueta quota_metric para cada serie temporal que se muestra. Este valor identifica la cuota específica. Por ejemplo, compute.googleapis.com/disks_total_storage identifica la serie temporal de la cuota de almacenamiento total del disco de Compute Engine.

    En el gráfico, se muestra el uso de cuota solamente de aquellas que tienen un uso registrado. Por ejemplo, si el proyecto no tiene ningún recurso de Compute Engine, el filtrado del servicio compute.googleapis.com da como resultado un gráfico sin datos.

  7. Para crear un gráfico que muestre el uso total de la cuota de almacenamiento en disco total de Compute Engine, usa el filtro quota_metric = compute.googleapis.com/disks_total_storage:

    Filtra la cuota del consumidor por métrica de cuota.

    Si usas la API de Cloud Monitoring, el valor del filtro equivalente es el siguiente:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  8. En el gráfico anterior, se muestran series temporales para las regiones us-centra1 y us-east1, y para varias zonas, incluida la zona us-central1-a.

    Para definir mejor el gráfico a fin de que muestre solo los datos de las regiones, sin las zonas, agrega un filtro basado en la etiqueta location. En este ejemplo, en el que ambas regiones tienen el prefijo us- y terminan con 1, un filtro que usa la expresión regular, location =~^us.*1$, funciona bien:

    Filtra por métrica de cuota y región.

Para la cuota del consumidor, el valor de la etiqueta quota_metric identifica el servicio y el uso específico de la cuota que se supervisa. Usa esa información cuando crees gráficos o políticas de alertas que supervisen una métrica de cuota específica.

Políticas de alertas en Cloud Monitoring

Las políticas de alertas son una forma de configurar Cloud Monitoring para que te notifique cuando ocurre algo, como alcanzar el 85% de tu límite en una cuota.

Una política de alertas es una recopilación de información de condiciones y notificaciones:

  • Una condición describe lo que se supervisa, cómo se deben combinar los datos de las series temporales para ese recurso y cuándo se debe generar una alerta. Una política de alertas debe especificar al menos una condición.
  • El canal de notificaciones especifica quién recibirá la notificación y cómo se le notificará cuando se produzca una alerta. Por ejemplo, puedes configurar la política de alertas para enviar un correo electrónico a una persona específica o a un grupo de personas.

Existen dos técnicas que puedes usar para crear condiciones de política de alertas:

  • Usar filtros de Monitoring para seleccionar y manipular datos. Por ejemplo, cuando usas la interfaz gráfica para crear condiciones de políticas de alertas, debes crear filtros. En el ejemplo que se muestra en Trabajo con métricas de cuota, se usan filtros para seleccionar los datos de un gráfico. También puedes usar filtros en solicitudes a la API de Monitoring.

  • Usar MQL para seleccionar y manipular datos. MQL es un lenguaje de consulta basado en texto. Con el Editor de consultas de MQL, puedes crear consultas que no puedes crear con la técnica de filtro. Te recomendamos que uses MQL para crear políticas de alertas basadas en proporciones. Para obtener más información, consulta los ejemplos de políticas de alertas de MQL.

En esta página, se analizan ambas técnicas. También puedes crear gráficos con cualquier técnica.

Filtra ejemplos de políticas de alertas

En esta sección, cada subsección incluye una representación JSON de una política de alertas, junto con un par de tablas que describen cómo configurar la política en Google Cloud Console:

  • En la primera tabla, se describe qué se supervisa y cómo se deben combinar los datos.
  • En la segunda tabla, se describe cuándo se debe generar una alerta.

Estos ejemplos son para el enfoque basado en filtros.

Ninguna de estas políticas calcula proporciones. Para ver ejemplos basados en la proporción, consulta Ejemplos de políticas de alertas de MQL.

Alertas de errores quota/exceeded

Puedes crear una política de alertas que te notifique si algún servicio del proyecto de Google Cloud informa un error de cuota excedida. Puedes crear este tipo de política con Google Cloud Console o la API de Cloud Monitoring.

Usa la consola de Google Cloud

El resto del contenido de esta subsección corresponde al diálogo de condiciones de una política de alertas.

Completa el diálogo Condición nueva con la configuración de la siguiente tabla. En esta configuración se especifica que deseas supervisar los datos de serie temporal de la métrica de serviceruntime /quota/exceeded para todos los servicios de tu proyecto de Google Cloud y que deseas agrupar los datos por el límite de cuota.

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Recursos, selecciona Cuota del consumidor.
En el menú Categorías de métricas, seleccione Cuota.
En el menú Métricas, seleccione Error de cuota excedida.

(metric.type es serviceruntime.googleapis.com/quota/exceeded,
y resource.type es consumer_quota).
Filtro

Agrega un filtro para que el gráfico solo muestre los datos del servicio que deseas supervisar. Por ejemplo, para supervisar el servicio de administración de identidades y accesos, agrega el siguiente filtro: service = iam.googleapis.com.

Cuando el campo del filtro está vacío, todos los datos de métricas disponibles se incluyen en el gráfico.

Ventana progresiva Seleccionar 1 m
Función Windowing Seleccionar count true

Esta métrica es de tipo GAUGE, lo que significa que cada dato de la serie temporal es una medición instantánea. El tipo de valor es BOOL. Un valor de true indica que se superó la cuota.

Para esta métrica, las funciones de ventana progresiva de count true y count son equivalentes.

En series temporales
Agregación de series temporales

Selecciona sum.

El campo de agregación se establece automáticamente en sum cuando se agrupan los datos. Esta configuración define cómo se combinan los datos en las series temporales individuales.

En series temporales
Grupo de series temporales por

Selecciona quota_metric.

Esta opción agrupa los datos mediante el tipo de nombre de quota_metric.

Completa el diálogo Configurar activador con la siguiente configuración. Esta configuración hace que la política de alertas cree una alerta si la cantidad de errores superados en la cuota excede el valor de 0 durante 1 m. Aquí se selecciona un valor de 0 porque los errores superados en la cuota son inesperados y por un indicador de que se debe aumentar una cuota o que se deben modificar un servicio para reducir las solicitudes a la API. Se recomienda usar un umbral más alto.

Diálogo Configure activador
Campo

Valor
Tipo de condición Threshold
Activador de alerta Any time series violates
Posición del umbral Above threshold
Valor del umbral 0
Ventana de nueva prueba 1 millón

Usa la API de Cloud Monitoring

Puedes crear esta política de alertas con el método de la API alertPolicies.create. Puedes invocar la API de Cloud Monitoring directamente con la CLI de Google Cloud o las bibliotecas cliente. Para obtener más información, consulta Crea políticas.

Para obtener más información sobre cómo representar políticas de alertas en JSON o YAML, consulta Políticas de ejemplo.

A continuación, se muestra una representación de esta política de alertas en formato JSON.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "60s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_COUNT_TRUE"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "60s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/exceeded\" resource.type=\"consumer_quota\"",
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Quota exceeded error by label.quota_metric SUM",
      }
    ],
    "displayName": "Quota exceeded policy",
  }

Alertas sobre el quota/allocation/usage absoluto

Puedes crear una política de alertas a fin de que te notifique si el uso de la cuota de asignación para un servicio específico en tu proyecto de Google Cloud supera un umbral especificado por el usuario. Puedes crear este tipo de política con Google Cloud Console o la API de Cloud Monitoring.

Usa la consola de Google Cloud

El resto del contenido de esta subsección corresponde al diálogo de las condiciones de una política de alertas.

Completa el diálogo Condición nueva con la configuración de la siguiente tabla. En esta configuración se especifica que deseas supervisar los datos de serie temporal de la métrica de serviceruntime /quota/allocation/usage para un servicio de tu proyecto de Google Cloud y que deseas agrupar los datos por el límite de cuota.

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Recursos, selecciona Cuota del consumidor.
En el menú Categorías de métricas, seleccione Cuota.
En el menú Métricas, selecciona Uso de la cuota de asignación.

(metric.type es serviceruntime.googleapis.com/quota/allocation/usage,
y resource.type es consumer_quota).
Filtro

Agrega un filtro para que el gráfico solo muestre los datos del servicio que deseas supervisar. Por ejemplo, para supervisar el servicio de administración de identidades y accesos, agrega el siguiente filtro: service = iam.googleapis.com.

Cuando el campo del filtro está vacío, todos los datos de métricas disponibles se incluyen en el gráfico.

Ventana progresiva Seleccionar 1440 m

El período coincide con el intervalo de muestreo para esta métrica.

Función Windowing Seleccionar next older

La función de ventana progresiva se establece en next older para incluir el valor medido más reciente de esta métrica GAUGE.

En series temporales
Agregación de series temporales

Selecciona sum.

El campo de agregación se establece automáticamente en sum cuando se agrupan los datos. Esta configuración define cómo se combinan los datos en las series temporales individuales.

En series temporales
Grupo de series temporales por

Selecciona quota_metric.

Esta opción agrupa los datos mediante el tipo de nombre de quota_metric.

Completa el diálogo Configurar activador con la siguiente configuración. Esta configuración hace que la política de alertas cree una alerta si el valor de la serie temporal supera los 2.5 durante 1,440 m. El valor de 1440 m coincide con la ventana móvil. Se seleccionó el valor de 2.5 para este ejemplo, ya que es un poco más alto que el valor normal del sistema de prueba. Debes seleccionar el umbral en función del servicio que supervisas en combinación con el rango de valores esperado para la métrica.

Diálogo Configure activador
Campo

Valor
Tipo de condición Threshold
Activador de alerta Any time series violates
Posición del umbral Above threshold
Valor del umbral 2.5
Ventana de nueva prueba 1,440 millones

Usa la API de Cloud Monitoring

Puedes crear esta política de alertas con el método de la API alertPolicies.create. Puedes invocar la API de Cloud Monitoring directamente con la CLI de Google Cloud o las bibliotecas cliente. Para obtener más información, consulta Crea políticas.

Para obtener más información sobre cómo representar políticas de alertas en JSON o YAML, consulta Políticas de ejemplo.

A continuación, se muestra una representación de esta política de alertas en formato JSON.


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "86400s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_NEXT_OLDER"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "86400s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/allocation/usage\" resource.type=\"consumer_quota\" resource.label.\"service\"=\"iam.googleapis.com\"",
          "thresholdValue": 2.5,
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Allocation quota usage for iam.googleapis.com by label.quota_metric SUM",
      }
    ],
    "displayName": "Absolute quota usage policy",
  }

Ejemplos de políticas de alertas de MQL

MQL es un lenguaje de consulta basado en texto que usa una serie de operaciones vinculadas por canalizaciones. MQL te permite compilar consultas más potentes y flexibles que con filtros de Monitoring. Te recomendamos que uses MQL para configurar políticas de alertas basadas en la proporción. Por ejemplo, con MQL, puedes configurar una proporción para el uso de cuota de tasa, que requiere calcular la proporción de una métrica de indicador (el límite) y una métrica delta (la tasa).

Puedes crear políticas de alertas basadas en MQL con Google Cloud Console o la API de Monitoring:

Para obtener información específica de MQL, consulta Uso del lenguaje de consulta de Monitoring. Para obtener más información sobre las políticas de alertas basadas en MQL, consulta Políticas de alertas con MQL.

Alerta de proporción sobre el uso de la cuota de tarifa para un límite

El siguiente patrón de consulta de MQL describe una alerta que supervisa cuando el uso de la tasa por minuto de un servicio de recursos específico supera el 80% de un límite específico:

    fetch consumer_quota
    | filter resource.service == 'sample.googleapis.com'
    | { metric serviceruntime.googleapis.com/quota/rate/net_usage
        | align delta_gauge(1m)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            sum(value.net_usage)
      ; metric serviceruntime.googleapis.com/quota/limit
        | filter metric.limit_name == 'myApiLimitPerDay'
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            sliding(1m), max(val()) }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

Para usar este patrón de consulta, realiza los siguientes cambios:

  • Reemplaza sample.googleapis.com por el servicio que deseas supervisar.
  • Reemplaza myApiLimitPerDay para metric.limit_name por el límite que deseas seguir. Para obtener información sobre cómo encontrar los nombres de los límites, consulta Identificación de métricas de cuotas y nombres de límites.
  • Reemplaza 1m en las funciones delta_gauge y sliding con una ventana adecuada para tu límite.

No modifiques la operación every 1m, que determina la frecuencia con la que se verifica la condición.

No puedes crear esta consulta con filtros.

Alerta de proporción sobre el uso de la cuota de tarifa con comodines

MQL admite el filtrado con comodines, expresiones regulares y lógica booleana. Por ejemplo, puedes usar MQL para crear una alerta que realice un seguimiento de varios límites y te avise si alguno excede un límite.

El siguiente patrón de consulta de MQL describe una alerta que supervisa cuándo el uso de cualquier recurso de los recursos por minuto o por día supera el 80%:

    fetch consumer_quota
    | filter resource.service =~ '.*'
    | { { metric serviceruntime.googleapis.com/quota/rate/net_usage
          | align delta_gauge(1m)
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sum(value.net_usage)
        ; metric serviceruntime.googleapis.com/quota/limit
          | filter metric.limit_name =~ '.*PerMinute.*'
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sliding(1m), max(val()) }
        | ratio
      ; { metric serviceruntime.googleapis.com/quota/rate/net_usage
          | align delta_gauge(23h)
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sum(value.net_usage)
        ; metric serviceruntime.googleapis.com/quota/limit
          | filter metric.limit_name =~ '.*PerDay.*'
          | group_by [resource.project_id, metric.quota_metric, resource.location],
              sliding(23h), max(val()) }
        | ratio }
    | union
    | every 1m
    | condition gt(val(), 0.8 '1')

En la consulta anterior, el argumento para el alineador delta_gauge se establece en 23 horas en lugar de 1 día. MQL solo puede requerir 23 horas y 30 minutos de datos, y para fines de procesamiento, el alineador delta_gauge agrega una hora a la ventana de alineación. Si usas delta_gauge(1d), la condición no se puede guardar porque la condición requiere 25 horas de datos. Este comportamiento es diferente del alineador next_older, que no rellena la ventana de alineación.

Para usar este patrón de consulta, realiza los siguientes cambios:

  • Reemplaza la expresión regular resource.service por una expresión regular para los servicios a los que deseas hacer un seguimiento.
  • En la primera proporción:
    • Reemplaza .*PerMinute.* para metric.limit_name por una expresión regular del primer grupo de límites del que deseas realizar un seguimiento. Para obtener información sobre cómo encontrar los nombres de los límites, consulta Identificación de métricas de cuotas y nombres de límites.
    • Reemplaza 1m en las funciones delta_gauge y sliding con una ventana adecuada para tus límites.
  • En la segunda proporción, sucede lo siguiente:
    • Reemplaza .*PerDay.* para metric.limit_name por una expresión regular del segundo grupo de límites que deseas realizar un seguimiento.
    • Reemplaza 23h en las funciones delta_gauge y sliding con una ventana adecuada para tus límites.

No modifiques la operación every 1m, que determina la frecuencia con la que se verifica la condición.

No puedes crear esta consulta con filtros.

Alerta de proporción sobre el uso de la cuota de asignación para un límite

El siguiente patrón de consulta de MQL describe una alerta que supervisa cuando el uso de la asignación por día de un servicio de recursos específico supera el 80% de un límite específico:

    fetch consumer_quota
    | filter resource.service == 'sample.googleapis.com'
    | { metric serviceruntime.googleapis.com/quota/allocation/usage
        | align next_older(1d)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            max(val())
      ; metric serviceruntime.googleapis.com/quota/limit
        | filter metric.limit_name == 'CPUs-per-project'
        | align next_older(1d)
        | group_by [resource.project_id, metric.quota_metric, resource.location],
            min(val())
      }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

Para usar este patrón de consulta, realiza los siguientes cambios:

  • Reemplaza sample.googleapis.com por el servicio que deseas supervisar.
  • Reemplaza CPUs-per-project para metric.limit_name por el límite que deseas seguir. Para obtener información sobre cómo encontrar los nombres de los límites, consulta Identificación de métricas de cuotas y nombres de límites.

No modifiques la operación every 1m, que determina la frecuencia con la que se verifica la condición.

Ejemplo: uso de CPU del 75% en cualquier región

Con la siguiente consulta, se crea una política de alertas que se activa cuando el uso de CPU de la instancia de VM de Compute Engine supera el 75% del límite en cualquier región:

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-region'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.75 '1')

Esta política de cuota del consumidor usa el nombre del límite CPUS-per-project-region en la cuota de “CPU” de la API de Compute Engine. Para obtener información sobre cómo encontrar los nombres de los límites, consulta Identificación de las métricas de cuotas y los nombres de límites.

Alerta de proporción sobre el uso de la cuota de asignación para cualquier servicio

MQL admite el filtrado con comodines, expresiones regulares y lógica booleana. Por ejemplo, puedes usar MQL para crear una alerta que realice un seguimiento de varios límites o servicios y te avise si alguno excede un límite.

En la siguiente consulta de MQL, se describe una alerta que supervisa cuándo el uso de la asignación diaria de cualquier servicio de recursos supera el 80% para cualquiera de los límites de la cuota:

fetch consumer_quota
| filter resource.service =~ '.*'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

Puedes usar esta consulta como se presenta o reemplazar la expresión regular de resource.service por una expresión regular para los servicios a los que deseas hacer un seguimiento. También puedes filtrar un servicio específico y usar comodines en un filtro de límites.

No modifiques la operación every 1m, que determina la frecuencia con la que se verifica la condición.

Por ejemplo, el uso de CPU por encima del 50% en zonas específicas

Con la siguiente consulta, se crea una política de alertas que se activa cuando el uso de CPU de las instancias de VM de Compute Engine supera el 50% del límite en cualquiera de las zonas us-central1. En esta consulta, se filtran los datos limit por un nombre de límite y la ubicación del recurso:

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-zone' &&
             resource.location =~ 'us-central1-.*'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.50 '1')

Esta política de cuota del consumidor usa el nombre del límite CPUS-per-project-zone en la cuota de “CPU” de la API de Compute Engine. Para obtener información sobre cómo encontrar los nombres de los límites, consulta Identificación de las métricas de cuotas y los nombres de límites.

Alerta de proporción con cuota específica de recursos

Puedes usar MQL a fin de configurar proporciones para métricas relacionadas con la cuota específica de recursos. En este caso, debes especificar un recurso supervisado en particular del servicio y calcular una proporción en un par de métricas relacionadas con la cuota específicas del recurso.

Con el siguiente patrón de consulta, se describe una alerta que supervisa cuándo el uso de una cuota supera el 80% del límite:

    fetch sample.googleapis.com/SampleResource
    | { metric sample.googleapis.com/quota/samplemetric/usage
        | align next_older(1d)
        | group_by [resource.label_1, ... , resource.label_n,
                    metric.label_1, ... , metric.label_n],
            max(val())
      ; metric sample.googleapis.com/quota/samplemetric/limit
        | align next_older(1d)
        | group_by [resource.label_1, ... , resource.label_n,
                    metric.label_1, ... , metric.label_n],
            min(val())
      }
    | ratio
    | every 1m
    | condition gt(val(), 0.8 '1')

Para usar este patrón de consulta, realiza los siguientes cambios:

  • Reemplaza sample.googleapis.com por el servicio que deseas supervisar.
  • Reemplaza sampleResource por el recurso supervisado asociado.
  • Reemplaza samplemetric por la string del grupo de tipos de métricas.
  • En las operaciones group_by, muestra cada una de las etiquetas de recursos y métricas.

Ejemplo: uso de CPU del 75% en cualquier región

Por ejemplo, en la siguiente consulta MQL, se configura una alerta que supervisa cuándo el uso de la cuota instances_per_vpc_network de Compute Engine supera el 80% para cualquier ID de red:

fetch compute.googleapis.com/VpcNetwork
| { metric compute.googleapis.com/quota/instances_per_vpc_network/usage
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        max(val())
  ; metric compute.googleapis.com/quota/instances_per_vpc_network/limit
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.80 '1')

Ten en cuenta que esta consulta usa el tipo de recurso compute.googleapis.com/VpcNetwork, no consumer_quota, y toma la proporción de dos métricas compute.googleapis.com/quota/instances_per_vpc_network, usage y limit.

Ejemplos de gráficos

En los gráficos, se muestran datos de series temporales. Puedes usar el Explorador de métricas para crear un gráfico. Con el Explorador de métricas, puedes descartar el gráfico cuando ya no lo necesites o puedas guardarlo en un panel. En la vista del panel, puedes agregar un gráfico a este.

Cuando solo desees configurar un gráfico que muestre datos de la cuota, puedes configurar la tabla en Condición nueva. Las condiciones de alerta, el Explorador de métricas y el Editor del panel usan notación un poco diferente:
Nombre del campo diálogo nuevo del diálogo
Editor del panel de control
(pestaña Configuración avanzada)
Explorador de métricas
Función de ventana progresiva Función de alineación Opciones avanzadas
Alineador
Ventana progresiva Período de alineación Período mínimo de alineación
De todas las series temporales
Grupo de series temporales por
Agrupar por (Group By) Agrupar por (Group By)
En series temporales
Agregación de series temporales
Agrupar por función Aggregator

Uso máximo en intervalos para quota/allocation/usage

Para ver los datos de las series temporales de la métrica serviceruntimequota/allocation/usage, de todos los servicios en tu proyecto de Google Cloud, en los que los datos se agrupan por el nombre de la métrica de cuota y el valor máximo de la métrica en un intervalo de 25 horas, usa la siguiente configuración:

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Recursos, selecciona Cuota del consumidor.
En el menú Categorías de métricas, seleccione Cuota.
En el menú Métricas, selecciona Uso de la cuota de asignación.

(metric.type es serviceruntime.googleapis.com/quota/allocation/usage,
y resoure.type es consumer_quota).
Filtro

Agrega un filtro para que el gráfico solo muestre los datos del servicio que deseas supervisar. Por ejemplo, para supervisar el servicio de administración de identidades y accesos, agrega el siguiente filtro: service = iam.googleapis.com.

Cuando el campo del filtro está vacío, todos los datos de métricas disponibles se incluyen en el gráfico.

Ventana progresiva Seleccionar 1500 m

El período, 25 horas, es un poco más largo que el intervalo de muestreo para esta métrica.

Función Windowing Seleccione max
Agregador secundario:sum

El alineador está configurado para mostrar el valor máximo de la métrica que se midió durante el período de alineación. El agregador secundario combina las series temporales para los diferentes servicios en una sola serie temporal.

En series temporales
Agregación de series temporales

Selecciona sum.

El campo de agregación se establece automáticamente en sum cuando se agrupan los datos. Esta configuración define cómo se combinan los datos en las series temporales individuales.

En series temporales
Grupo de series temporales por

Selecciona quota_metric.

Esta opción agrupa los datos mediante el tipo de nombre de quota_metric.

Series temporales de quota/rate/net_usage

Para ver los datos de series temporales de la métrica serviceruntime quota/rate/net_usage en todos los servicios de tu proyecto de Google Cloud, en los que los datos se agrupan por el nombre de la métrica de cuota y se muestra la tasa de uso, usa la siguiente configuración:

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Recursos, selecciona Cuota del consumidor.
En el menú Categorías de métricas, seleccione Cuota.
En el menú Métricas, selecciona Uso de la cuota de tarifa.

(metric.type es serviceruntime.googleapis.com/quota/rate/net_usage,
y resoure.type es consumer_quota).
Filtro

Agrega un filtro para que el gráfico solo muestre los datos del servicio que deseas supervisar. Por ejemplo, para supervisar el servicio de administración de identidades y accesos, agrega el siguiente filtro: service = iam.googleapis.com.

Cuando el campo del filtro está vacío, todos los datos de métricas disponibles se incluyen en el gráfico.

Ventana progresiva Seleccionar 1 m

El período de 1 minuto coincide con el intervalo de muestreo de esta métrica.

Función Windowing Seleccionar rate

Si configuras el alineador con el valor de rate, los valores almacenados en la serie temporal de esta métrica DELTA se convierten en una nueva serie temporal que almacena los datos de tarifas. El eje Y del gráfico tiene las unidades de cuota por segundo.

En series temporales
Agregación de series temporales

Selecciona sum.

El campo de agregación se establece automáticamente en sum cuando se agrupan los datos. Esta configuración define cómo se combinan los datos en las series temporales individuales.

En series temporales
Grupo de series temporales por

Selecciona quota_metric.

Esta opción agrupa los datos mediante el tipo de nombre de quota_metric.

Series temporales de quota/limit

Para ver los datos de series temporales de la métrica quota/limit de serviceruntime en todos los servicios de tu proyecto de Google Cloud, en los que los datos se agregan durante 25 horas, usa la siguiente configuración:

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Recursos, selecciona Cuota del consumidor.
En el menú Categorías de métricas, seleccione Cuota.
En el menú Métricas, selecciona Límite de cuota.

(metric.type es serviceruntime.googleapis.com/quota/limit,
y resoure.type es consumer_quota).
Filtro

Agrega un filtro para que el gráfico solo muestre los datos del servicio que deseas supervisar. Por ejemplo, para supervisar el servicio de administración de identidades y accesos, agrega el siguiente filtro: service = iam.googleapis.com.

Cuando el campo del filtro está vacío, todos los datos de métricas disponibles se incluyen en el gráfico.

Ventana progresiva Seleccionar 1500 m
Función Windowing Seleccionar next older

El alineador se establece en next older para mostrar el valor medido de esta métrica de GAUGE. El período de alineación, 25 horas, es apenas mayor que el intervalo de muestreo de esta métrica.

En series temporales
Agregación de series temporales
none
En series temporales
Grupo de series temporales por
Dejar en blanco.

Series temporales de quota/instances_per_vpc_network/limit

Para ver los datos de las series temporales de la métrica compute.googleapis.com de quota/instances_per_vpc_network/limit, para todas las redes de tu proyecto de Google Cloud, usa la siguiente configuración:

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Tipo de recurso, selecciona Red de VPC.
En el menú Categoría de métrica, seleccione Cuota.
En el menú Métrica, selecciona Instancias por límite de cuota de red de VPC.

(metric.type es compute.googleapis.comquota/instances_per_vpc_network/limit,
y resource.type es compute.googleapis.com/VpcNetwork).
Filtro Dejar en blanco
Ventana progresiva Seleccionar 1 m

El período coincide con el intervalo de muestreo para esta métrica.

Función Windowing Seleccionar mean
En series temporales
Agregación de series temporales
Dejar como none
En series temporales
Grupo de series temporales por
Dejar en blanco

Series temporales de quota/instances_per_vpc_network/usage

Para ver los datos de las series temporales de la métrica compute.googleapis.com de quota/instances_per_vpc_network/usage, para una de las redes de tu proyecto de Google Cloud, usa la siguiente configuración:

Diálogo de condición nueva
Campo

Valor
Recurso y métrica En el menú Tipo de recurso, selecciona Red de VPC.
En el menú Categoría de métrica, seleccione Cuota.
En el menú Métrica, selecciona Instancias por uso de cuota de red de VPC.

(metric.type es compute.googleapis.comquota/instances_per_vpc_network/usage,
y resource.type es compute.googleapis.com/VpcNetwork).
Métrica En el menú Métrica, selecciona compute.googleapis.com/quota/instances_per_vpc_network/usage.
Filtro

Agrega un filtro para que el gráfico solo muestre un subconjunto de todos los datos. Por ejemplo, para ver el uso de una red específica, agrega el siguiente filtro: network_id = identifier.

Cuando el campo del filtro está vacío, todos los datos de métricas disponibles se incluyen en el gráfico.

Ventana progresiva Seleccionar 1 m

El período coincide con el intervalo de muestreo para esta métrica.

Función Windowing Seleccionar mean
En series temporales
Agregación de series temporales
Dejar como none
En series temporales
Grupo de series temporales por
Dejar en blanco

Gráficos de MQL

Puedes usar las consultas de MQL para crear gráficos mediante el Editor de consultas de MQL. Por ejemplo, cualquiera de las consultas que se muestran en Ejemplos de políticas de alertas de MQL se pueden ingresar en el editor de consultas. Puedes omitir la última operación, condition, en cada consulta. Se aplica siempre, excepto cuando se crea una condición para una política de alertas. En un gráfico, la operación condition no hace nada.

Para obtener más información, consulta Uso del Editor de consultas y Ejemplos de MQL.