Gráfico y supervisión de las métricas de cuota

En este documento, se describe cómo crear políticas de alertas y gráficos para supervisar la cuota que Google Cloud te asignó, y 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 un 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

En este documento, se supone que estás familiarizado con los datos de series temporales y su manipulación. En los siguientes recursos, se proporciona 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 de serviceruntime.

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

  • Cuotas específicas del recurso: Algunos servicios proporcionan recursos supervisados que tienen métricas específicas del recurso para las cuotas. Estos tipos de métricas aparecen en grupos de tres y siguen un formato de nombres:

    • 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 cuota y los nombres de 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. Para determinar si un servicio admite métricas de cuota y para identificar los valores de las etiquetas específicas de la cuota, puedes usar el siguiente procedimiento:

  1. En la consola de Google Cloud, ve a la página Cuotas y límites del sistema:

    Ve a Cuotas y límites del sistema.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

  2. Haz clic en Ver columna y agrega las siguientes columnas a la visualización de cuotas:

    • Métrica: Esta columna muestra el valor de la etiqueta quota_metric.
    • Nombre del límite: Esta columna 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 de la cuota es consumer_quota.
  3. Ubica la cuota de interés.

    Por ejemplo, la cuota de subredes de la API de Compute Engine indica la métrica como compute.googleapis.com/subnetworks, el nombre del límite como SUBNETWORKS-per-project y no incluye 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 del 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 la consola de Google Cloud, selecciona Cloud Monitoring y, luego, el Explorador de métricas.

  2. Selecciona la pestaña Configuración.

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

  4. Expande el menú Gráfico de líneas y selecciona 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 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-central1 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. Cuando creas gráficos o políticas de alertas que supervisan una métrica de cuota específica, usas esa información.

Políticas de alertas en Cloud Monitoring

Las políticas de alertas son una forma de configurar 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 genera un incidente. 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 un incidente. 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 código de MQL, puedes crear consultas que no puedas crear con la técnica basada en filtros. 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 la consola de Google Cloud:

  • 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 un incidente.

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 la consola de Google Cloud o mediante 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 Nueva condición 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 Nueva condición
Campo

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

(el metric.type es serviceruntime.googleapis.com/quota/exceeded,
y el 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 Selecciona 1 m
Función analítica progresiva Selecciona 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 móvil de count true y count son equivalentes.

En las 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 las series temporales
Agrupación de las series temporales

Selecciona quota_metric.

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

Completa el diálogo Configure trigger 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.

Campo del diálogo Configurar activador

Valor
Tipo de condición Threshold
Activador de alertas Any time series violates
Posición del umbral Above threshold
Valor del umbral 0
Período para volver a probar 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 Google Cloud CLI o con 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 la consola de Google Cloud o mediante 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 Nueva condición 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 Nueva condición
Campo

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

(el metric.type es serviceruntime.googleapis.com/quota/allocation/usage,
y el 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 Selecciona 1440 m

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

Función analítica progresiva Selecciona next older

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

En las 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 las series temporales
Agrupación de las series temporales

Selecciona quota_metric.

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

Completa el diálogo Configure trigger 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 1,440 m coincide con el período 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.

Campo del diálogo Configurar activador

Valor
Tipo de condición Threshold
Activador de alertas Any time series violates
Posición del umbral Above threshold
Valor del umbral 2.5
Período para volver a probar 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 Google Cloud CLI o con 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 mediante la consola de Google Cloud 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.

Política de alertas que supervisa la proporción entre la cuota de frecuencia y el límite de cuota

El siguiente patrón de consulta de MQL describe una política de alertas que envía una notificación 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 == 'Limit'
    | 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 Limit 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 distancia entre los puntos de datos en los resultados de la consulta.

No puedes crear esta consulta con filtros.

Política de alertas que supervisa la proporción de la cuota de frecuencia con comodines

MQL admite el filtrado con comodines, expresiones regulares y lógica booleana. Por ejemplo, puedes usar MQL para crear una política de alertas 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 política de alertas que envía notificaciones cuando el uso de la tasa por minuto o por día de cualquier servicio de recursos 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 al período 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 el período 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 distancia entre los puntos de datos en los resultados de la consulta.

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 == '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')

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

No modifiques la operación every 1m, que determina la distancia entre los puntos de datos en los resultados de la consulta.

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.

Política de alertas que supervisa la proporción 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 distancia entre los puntos de datos en los resultados de la consulta.

Por ejemplo, el uso de CPU superior al 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 quieras configurar un gráfico que muestre datos de cuota, puedes usar la configuración de la tabla Nueva condición. Las condiciones de alerta usan una notación diferente a la de las herramientas de gráficos. Las herramientas de creación de gráficos incluyen el Explorador de métricas y la configuración de gráficos en paneles personalizados:
Nombre del campo del diálogo Nueva condición
Gráficos
Función analítica progresiva

Se configura de manera óptima en función de la métrica y la configuración de agregación seleccionadas.

Para especificar la función de alineación, haz lo siguiente:

  1. En el elemento Agregación, expande el primer menú y selecciona Configurar el alineador. Se agregaron los elementos Función de alineación y Agrupación.
  2. Expande el elemento Función de alineación y realiza una selección.

Ventana progresiva Intervalo mínimo
(para acceder, haz clic en Agregar elemento de consulta)
Agrupación de las series temporales
(en la sección En las series temporales)
Segundo menú del elemento Agregación
Agregación de series temporales
(en la sección En las series temporales)
Primer menú del elemento Agregación

Series temporales de quota/rate/net_usage

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

Diálogo Nueva condición
Campo

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

(el metric.type es serviceruntime.googleapis.com/quota/rate/net_usage,
y el 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 Selecciona 1 m

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

Función analítica progresiva Selecciona 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 las 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 las series temporales
Agrupación de las series temporales

Selecciona quota_metric.

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

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 Nueva condición
Campo

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

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

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

Función analítica progresiva Selecciona mean
En las series temporales
Agregación de series temporales
Dejar como none
En las series temporales
Agrupación de las series temporales
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 Nueva condición
Campo

Valor
Recurso y métrica En el menú Tipo de recurso, selecciona Red de VPC.
En el menú Categoría de métrica, selecciona cuota.
En el menú Métrica, selecciona Uso de la cuota de instancias por red de VPC.

(el metric.type es compute.googleapis.com/quota/instances_per_vpc_network/usage,
y el 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 Selecciona 1 m

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

Función analítica progresiva Selecciona mean
En las series temporales
Agregación de series temporales
Dejar como none
En las series temporales
Agrupación de las series temporales
Dejar en blanco

Gráficos de MQL

Puedes usar las consultas de MQL para crear gráficos mediante el editor de código 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 código. 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 Cómo usar el editor de código para MQL y Ejemplos de MQL.