Gráfico e monitoramento das métricas de cota

Neste documento, descrevemos como criar políticas e gráficos de alertas para monitorar cotas alocadas pelo Google Cloud e incluímos vários exemplos. O Google Cloud estabelece várias cotas que podem ser usadas para rastrear e limitar os recursos consumidos por um projeto ou organização. Para informações gerais sobre cotas, incluindo informações sobre cotas de alocação e de taxas, consulte Como trabalhar com cotas.

Antes de começar

Este documento parte do princípio que você está familiarizado com os dados de séries temporais e a respectiva manipulação. Os recursos a seguir fornecem informações adicionais:

  • Para informações sobre como trabalhar com dados de série temporal, consulte Filtragem e agregação.
  • Para definições dos termos medidor, delta e cumulativo, consulte Tipos de métricas.
  • Para detalhes sobre os campos usados para combinar séries temporais, consulte Aligner e Reducer.

Gerenciamento de cotas

O Cloud Monitoring gerencia a cota de duas maneiras:

  • Cota de consumidor: para esse tipo de cota, o recurso monitorado é consumer_quota. As métricas desse recurso são um subconjunto das métricas serviceruntime.

    A maioria dos exemplos nesta página são exemplos de cotas do consumidor.

  • Cotas específicas de recursos: alguns serviços fornecem recursos monitorados que têm métricas específicas de recursos para cotas. Esses tipos de métricas aparecem em grupos de três e seguem um formato de nomenclatura:

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

    Por exemplo, o Compute Engine tem o recurso compute.googleapis.com/VpcNetwork. As métricas relacionadas à cota associadas a esse recurso são o subconjunto compute.googleapis.com/quota das métricas compute. Há três tipos de métricas relacionados à cota de "instâncias por rede VPC":

Identificar métricas de cota e nomes de limite

Os dados brutos sobre o consumo de cotas, especialmente para cotas de consumidores, podem incluir informações sobre muitas cotas diferentes. Para extrair informações sobre uma cota específica para um gráfico ou uma política de alertas, é necessário identificar esse subconjunto de dados de cota.

Dependendo da origem, os dados da cota podem incluir rótulos que podem ser usados para isolar as informações desejadas. Esses rótulos incluem:

  • Métrica de cota: a métrica de cota é um identificador para um tipo de cota. Não é um dos tipos de métrica descritos na Lista de métricas. Por exemplo, todos os dados de cota do consumidor são gravados como tipo de métrica serviceruntime.googleapis.com, como quota/allocation/usage. Esse tipo de métrica tem um rótulo quota_metric que pode ser usado para filtrar uma cota específica, por exemplo, dados de uso de alocação.
  • Nome do limite: o nome do limite identifica um limite em um tipo específico de cota. Uma cota pode ter mais de um limite associado. Por exemplo, uma cota para chamadas de leitura pode ter um limite por minuto de 100 e um limite por dia de 1000, com dois nomes de limite, readsPerMinute e readsPerDay. Os tipos de métrica relacionados à cota podem ter um campo limit_name para esse valor.

Todos os tipos de métricas serviceruntime.googleapis.com/quota fornecem o rótulo quota_metric, mas apenas alguns incluem o rótulo limit_name. Os tipos de métrica específicos de recursos para cota incluem o rótulo limit_name.

Nem todos os serviços do Google Cloud são compatíveis com as métricas de cota. Para determinar se uma oferece suporte a métricas de cota e para identificar os valores do parâmetro use o procedimento a seguir:

  1. No console do Google Cloud, acesse Cotas e Limites do sistema:

    Acesse Cotas e limites do sistema

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.

  2. Clique em Mostrar coluna e adicione as seguintes colunas à exibição de cota:

    • Métrica: essa coluna mostra o valor do rótulo quota_metric.
    • Nome do limite: essa coluna exibe o valor do rótulo limit_name.
    • Recurso monitorado: quando preenchido, a cota usa o recurso monitorado listado. Quando estiver vazio, o recurso monitorado da cota será consumer_quota
  3. Localize a cota de interesse.

    Por exemplo, a cota de sub-redes da API Compute Engine lista a Métrica como compute.googleapis.com/subnetworks, o Nome do limite como SUBNETWORKS-per-project e não lista um Recurso monitorado. Portanto, o recurso monitorado para essa cota é consumer_quota.

Exemplo: visualizar o uso de uma métrica de cota específica do consumidor

O objetivo é criar um gráfico que exiba, por região, a cota total de armazenamento em disco do Compute Engine. Este exemplo de cota do consumidor recupera dados quota/allocation/usage e os filtra para que o uso da alocação de uma métrica de cota específica seja exibido:

  1. No console do Google Cloud, selecione Cloud Monitoring e, em seguida, selecione o Metrics Explorer.

  2. Selecione a guia Configuração.

  3. Na barra de ferramentas, selecione 1 milhão para definir o período como um mês.

  4. Expanda o menu Gráfico de linhas e selecione Gráfico de barras empilhadas.

  5. Configure o Metrics Explorer para mostrar o uso da cota de alocação:

    1. Clique em Selecionar uma métrica e digite allocation no Barra de filtros.
    2. Selecione Consumer Cota para o recurso.
    3. Selecione Cota como a categoria da métrica.
    4. Selecione Uso da cota de alocação para a métrica e clique em Aplicar.

    Selecione a cota do consumidor.

    O gráfico exibe o uso da cota de alocação como um gráfico de barras para um período de seis semanas. Ao visualizar a legenda, é possível ver que o gráfico exibe o uso da cota para vários serviços.

    Se a API Cloud Monitoring estiver sendo utilizada, o valor de filtro equivalente será

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

    Para visualizar esse valor de filtro, expanda o menu Tipo de recurso e selecione Modo de filtro direto.

  6. Para limitar o gráfico ao serviço do Compute Engine, adicione o filtro service = compute.googleapis.com:

    Filtra a cota do consumidor por serviço de computação.

    Se a API Cloud Monitoring estiver sendo utilizada, o valor de filtro equivalente será

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

    Agora, o gráfico exibe a série temporal para o uso da cota alocada para as cotas do Compute Engine. A legenda exibe o valor do rótulo quota_metric para cada série temporal exibida. Esse valor identifica a cota específica. Por exemplo, compute.googleapis.com/disks_total_storage identifica a série temporal da cota total de armazenamento em disco do Compute Engine.

    O gráfico exibe o uso apenas das cotas que tiveram o uso registrado. Por exemplo, se o projeto não tiver recursos do Compute Engine, a filtragem do serviço compute.googleapis.com resultará em um gráfico sem dados.

  7. Para criar um gráfico que exiba o uso total da cota de armazenamento em disco do Compute Engine, use o filtro quota_metric = compute.googleapis.com/disks_total_storage:

    Filtrar a cota do consumidor por métrica de cota.

    Se a API Cloud Monitoring estiver sendo utilizada, o valor de filtro equivalente será:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  8. O gráfico anterior exibe séries temporais para as regiões us-central1 e us-east1 e para várias zonas, incluindo a zona us-central1-a.

    Para refinar o gráfico para que ele exiba dados apenas para as regiões, sem as zonas, adicione um filtro com base no rótulo location. Neste exemplo, em que as duas regiões são prefixadas por us- e terminam com 1, um filtro que usa uma expressão regular, location =~ ^us.*1$, funciona bem:

    Filtrar por métrica e região de cota.

Para cotas do consumidor, o valor do rótulo quota_metric identifica o serviço e o uso de cota específico que está sendo monitorado. Ao criar gráficos ou políticas de alertas que monitoram uma métrica de cota específica, você usa essas informações.

Políticas de alertas no Cloud Monitoring

As políticas de alertas são uma maneira de configurar o Monitoring para notificar você quando algo acontecer, como atingir 85% do seu limite em uma cota.

Uma política de alertas é um conjunto de condições e informações de notificação:

  • Uma condição descreve o que está sendo monitorado, como os dados de série temporal desse recurso precisam ser combinados e quando um incidente é gerado. As políticas de alertas precisam especificar pelo menos uma condição.
  • O canal de notificação especifica quem será notificado e como isso será feito quando ocorrer um incidente. Por exemplo, é possível configurar a política de alertas para enviar e-mails a uma pessoa específica ou a um grupo de pessoas.

É possível usar duas técnicas para criar condições da política de alertas:

  • Como usar filtros do Monitoring para selecionar e manipular dados. Por exemplo, ao usar a interface gráfica para criar condições de política de alertas, você está criando filtros. O exemplo mostrado em Como trabalhar com métricas de cota usa filtros para selecionar dados em um gráfico. Também é possível usar filtros em solicitações para a API Monitoring.

  • Como usar a MQL para selecionar e manipular dados. MQL é uma linguagem de consulta baseada em texto. Com o editor de código MQL, é possível criar consultas que não podem ser criadas com a técnica baseada em filtro. Recomendamos que você use a MQL para criar políticas de alertas com base em proporção. Para mais informações, consulte exemplos de política de alertas da MQL.

Nesta página, discutiremos as duas técnicas. Também é possível criar gráficos usando qualquer uma dessas técnicas.

Filtrar exemplos de política de alertas

Nesta seção, cada subseção inclui uma representação JSON de uma política de alertas, junto com duas tabelas que descrevem como configure a política no console do Google Cloud:

  • Na primeira, descrevemos o que está sendo monitorado e como os dados precisam ser combinados.
  • A segunda tabela descreve quando um incidente precisa ser gerado.

Esses exemplos são para a abordagem baseada em filtro.

Nenhuma dessas políticas calcula as proporções. Para exemplos com base em proporção, consulte exemplos de política de alertas do MQL.

Alerta sobre quota/exceeded erros

É possível criar uma política de alertas para notificar você se algum serviço no seu projeto do Google Cloud estiver relatando um erro de cota ultrapassada. É possível criar esse tipo de política usando o Console do Google Cloud ou a API Cloud Monitoring.

Use o console do Google Cloud

O restante do conteúdo desta subseção é para a caixa de diálogo de condições de uma política de alertas.

Preencha a caixa de diálogo Nova condição usando as configurações na tabela a seguir. Elas especificam que você quer monitorar os dados da série temporal da métrica serviceruntime /quota/exceeded para todos os serviços em seu projeto do Google Cloud e agrupar os dados pelo limite de cota.

Campo da caixa de diálogo Nova condição

Valor
Recurso e métrica No menu Resources, selecione Consumer Quota.
No menu Categorias de métrica, selecione Cota.
No menu Métricas, selecione Erro de cota excedida.

(O metric.type é serviceruntime.googleapis.com/quota/exceeded,
e o resource.type é consumer_quota).
Filtrar

Adicione um filtro para que o gráfico exiba apenas os dados do serviço que você quer monitorar. Por exemplo, para monitorar o serviço de gerenciamento de identidade e acesso, adicione o filtro a seguir: service = iam.googleapis.com.

Quando o campo de filtro está vazio, todos os dados de métricas disponíveis são incluídos no gráfico.

Janela contínua Selecionar 1 m
Função de janela contínua Selecionar count true

Esta métrica é do tipo GAUGE, ou seja, cada ponto de dados na série temporal é uma medição instantânea. O tipo de valor é BOOL. Um valor de true indica que a cota foi ultrapassada.

Para essa métrica, as funções de janela contínua de count true e count são equivalentes.

Entre séries temporais
Agregação de série temporal

Selecione sum.

O campo de agregação é definido automaticamente como sum quando os dados são agrupados. Essa configuração define como os dados são combinados na série temporal individual.

Entre séries temporais
Série temporal agrupada por

Selecione quota_metric.

Esta opção agrupa os dados pelo tipo de nome do quota_metric.

Preencha a caixa de diálogo Configurar gatilho usando o seguinte configurações. Essas configurações fazem com que a política de alertas crie um alerta se o número de erros de cota excedida ultrapassar o valor de 0 para 1 m. Um valor de zero é selecionado aqui porque erros de cota excedida são inesperados e são uma indicação de que uma cota precisa ser aumentada ou que um serviço precisa ser modificado para reduzir as solicitações da API. Convém usar um limite mais alto.

Campo Configurar gatilho

Valor
Tipo de condição Threshold
Acionador de alerta Any time series violates
Posição do limite Above threshold
Valor do limite 0
Teste a janela novamente 1 m

Como usar a API Cloud Monitoring

É possível criar essa política de alertas usando o método da API alertPolicies.create. É possível invocar a API Cloud Monitoring diretamente, usando a Google Cloud CLI ou bibliotecas de cliente. Para mais informações, consulte Como criar políticas.

Para informações sobre como representar políticas de alertas em JSON ou YAML, consulte Políticas de amostra.

Veja abaixo uma representação dessa política de alertas no 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",
  }

Alerta sobre o quota/allocation/usage absoluto

É possível criar uma política de alertas para notificar você se o uso da cota de alocação para um serviço específico em seu projeto do Google Cloud estiver excedendo um limite especificado pelo usuário. É possível criar esse tipo de política usando o Console do Google Cloud ou a API Cloud Monitoring.

Use o console do Google Cloud

O restante do conteúdo desta subseção é para a caixa de diálogo de condições de uma política de alertas.

Preencha a caixa de diálogo Nova condição usando as configurações na tabela a seguir. Elas especificam que você quer monitorar os dados da série temporal da métrica serviceruntime /quota/allocation/usage para um serviço em seu projeto do Google Cloud, e que você quer agrupar os dados pelo limite de cota.

Campo da caixa de diálogo Nova condição

Valor
Recurso e métrica No menu Resources, selecione Consumer Quota.
No menu Categorias de métrica, selecione Cota.
No menu Métricas, selecione Uso da cota de alocação.

O metric.type é serviceruntime.googleapis.com/quota/allocation/usage,
e o resource.type é consumer_quota.
Filtrar

Adicione um filtro para que o gráfico exiba apenas os dados do serviço que você quer monitorar. Por exemplo, para monitorar o serviço de gerenciamento de identidade e acesso, adicione o filtro a seguir: service = iam.googleapis.com.

Quando o campo de filtro está vazio, todos os dados de métricas disponíveis são incluídos no gráfico.

Janela contínua Selecione 1440 m

As correspondências de período são o intervalo de amostragem dessa métrica.

Função de janela contínua Selecione next older

A função de janela contínua é definida como next older para incluir o valor medido mais recentemente GAUGE.

Entre séries temporais
Agregação de séries temporais

Selecione sum.

O campo de agregação é definido automaticamente como sum quando os dados são agrupados. Essa configuração define como os dados são combinados na série temporal individual.

Entre séries temporais
Série temporal agrupada por

Selecione quota_metric.

Esta opção agrupa os dados pelo tipo de nome do quota_metric.

Preencha a caixa de diálogo Configurar gatilho usando as seguintes configurações. Essas configurações fazem com que a política de alertas crie um alerta se o valor da série temporal exceder 2,5 para 1440 m. O valor de 1.440 m corresponde à janela móvel. O valor de 2,5 foi selecionado para este exemplo porque é um pouco maior do que o valor normal para o sistema de teste. Selecione o limite com base no serviço que você está monitorando em combinação com uma compreensão do intervalo esperado de valores para a métrica.

Campo Configurar gatilho

Valor
Tipo de condição Threshold
Acionador de alerta Any time series violates
Posição do limite Above threshold
Valor do limite 2.5
Teste a janela novamente 1440 m

Como usar a API Cloud Monitoring

É possível criar essa política de alertas usando o método da API alertPolicies.create. É possível invocar a API Cloud Monitoring diretamente, usando a Google Cloud CLI ou bibliotecas de cliente. Para mais informações, consulte Como criar políticas.

Para informações sobre como representar políticas de alertas em JSON ou YAML, consulte Políticas de amostra.

Veja abaixo uma representação dessa política de alertas no 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",
  }

Exemplos de política de alertas do MQL

MQL é uma linguagem de consulta baseada em texto que usa uma série de operações vinculadas por barras verticais. O MQL permite que você crie consultas mais eficientes e flexíveis do que com os filtros do Monitoring. Recomendamos que você use a MQL para configurar políticas de alertas baseadas em proporção. Por exemplo, com a MQL, é possível configurar uma proporção para o uso da cota de taxa, que exige o cálculo da proporção de uma métrica de medidor (o limite) e uma métrica delta (a taxa).

É possível criar políticas de alertas baseadas em MQL usando o console do Google Cloud ou a API Monitoring:

Para informações específicas sobre o MQL, consulte Como usar a linguagem de consulta do Monitoring. Para mais informações sobre políticas de alertas baseadas em MQL, consulte Políticas de alertas com MQL.

Política de alerta que monitora a proporção entre a cota de taxa e o limite da cota

O padrão de consulta MQL a seguir descreve uma política de alerta que envia uma notificação quando o uso da taxa por minuto de um serviço de recurso excede 80% de um limite 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 esse padrão de consulta, faça as seguintes alterações:

  • Substitua sample.googleapis.com pelo serviço que você quer monitorar.
  • Substitua Limit pelo metric.limit_name pelo limite que você quer rastrear. Para informações sobre como encontrar nomes de limite, consulte Como identificar métricas de cota e nomes de limite.
  • Substitua 1m nas funções delta_gauge e sliding por uma janela apropriada para seu limite.

Não modifique a operação every 1m, que determina a distância entre os pontos de dados nos resultados da consulta.

Não é possível criar esta consulta com filtros.

Política de alerta que monitora a proporção da cota de taxa com caracteres curinga

O MQTT é compatível com filtragem com caracteres curinga, expressões regulares e lógica booleana. Por exemplo, é possível usar o MQL para criar uma política de alertas que rastreie vários e avisará você se algum exceder um limite.

O padrão de consulta do MQL a seguir descreve uma política de alertas que envia notificações quando a taxa por minuto ou por dia de uso de qualquer recurso serviços excede 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')

Na consulta anterior, o argumento do alinhador delta_gauge está definido como 23 horas, em vez de 1 dia. A MQL pode exigir apenas 23 horas e 30 minutos de dados e, para fins de computação, o alinhador delta_gauge adiciona uma hora ao período de alinhamento. Se você usar delta_gauge(1d), a condição não poderá ser salva porque ela exige 25 horas de dados. Esse comportamento é diferente do alinhador next_older, que não preenche o período de alinhamento.

Para usar esse padrão de consulta, faça as seguintes alterações:

  • Substitua a expressão regular por resource.service por uma expressão regular para os serviços que você quer rastrear.
  • Na primeira proporção:
    • Substitua .*PerMinute.* por metric.limit_name por uma expressão regular para o primeiro grupo de limites que você quer acompanhar. Para informações sobre como encontrar nomes de limite, consulte Como identificar métricas de cota e nomes de limite.
    • Substitua 1m nas funções delta_gauge e sliding por uma janela apropriada para os seus limites.
  • Na segunda proporção:
    • Substitua .*PerDay.* por metric.limit_name por uma expressão regular para o segundo grupo de limites que você quer rastrear.
    • Substitua 23h nas funções delta_gauge e sliding por uma janela adequada aos seus limites.

Não modifique a operação every 1m, que determina a distância entre os pontos de dados nos resultados da consulta.

Não é possível criar esta consulta com filtros.

Alerta de proporção sobre o uso da cota de alocação para um limite

O padrão de consulta MQL a seguir descreve um alerta que monitora quando o uso de alocação por dia de um serviço de recursos específico excede 80% de um limite 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 esse padrão de consulta, faça as seguintes alterações:

  • Substitua sample.googleapis.com pelo serviço que você quer monitorar.
  • Substitua Limit pelo metric.limit_name pelo limite que você quer rastrear. Para informações sobre como encontrar nomes de limite, consulte Como identificar métricas de cota e nomes de limite.

Não modifique a operação every 1m, que determina a distância entre os dados. pontos estão nos resultados da consulta.

Exemplo: uso de CPU de 75% em qualquer região

A consulta a seguir cria uma política de alertas que é acionada quando o uso da CPU da instância de VM do Compute Engine ultrapassa 75% do limite em qualquer região:

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

Essa política de cota do consumidor usa o nome de limite CPUS-per-project-region na cota "CPUs" da API Compute Engine. Para informações sobre como encontrar nomes de limite, consulte Como identificar métricas de cota e nomes de limite.

Política de alertas que monitora a proporção da cota de alocação para qualquer serviço

O MQL é compatível com filtragem com caracteres curinga, expressões regulares e lógica booleana. Por exemplo, é possível usar a MQL para criar um alerta que rastreie vários limites ou serviços e avise se algum exceder um limite.

A consulta MQL a seguir descreve um alerta que monitora quando o uso de alocação diária de qualquer serviço de recurso excede 80% em qualquer limite de cota:

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

É possível usar essa consulta conforme apresentado ou substituir a expressão regular resource.service por uma expressão regular para os serviços que você quer rastrear. Também é possível filtrar um serviço específico e usar caracteres curinga em um filtro limitado.

Não modifique a operação every 1m, que determina a distância entre os pontos de dados nos resultados da consulta.

Exemplo: uso da CPU acima de 50% em zonas específicas

A consulta a seguir cria uma política de alertas que é acionada quando o uso da CPU de instâncias de VM do Compute Engine ultrapassa 50% do limite em qualquer uma das zonas us-central1. Esta consulta filtra os dados limit por um nome de limite e pelo local do 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')

Essa política de cota do consumidor usa o nome de limite CPUS-per-project-zone na cota "CPUs" da API Compute Engine. Para informações sobre como encontrar nomes de limite, consulte Como identificar métricas de cota e nomes de limite.

Alerta de proporção usando cota específica do recurso

Use o MQL para configurar proporções para métricas relacionadas a cotas específicas de recursos. Nesse caso, especifique um recurso monitorado específico do serviço e calcule uma proporção em um par de métricas relacionadas à cota específica do recurso.

O padrão de consulta a seguir descreve um alerta que monitora quando o uso de uma cota excede 80% do limite:

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 esse padrão de consulta, faça as seguintes alterações:

  • Substitua sample.googleapis.com pelo serviço que você quer monitorar.
  • Substitua sampleResource pelo recurso monitorado associado.
  • Substitua samplemetric pela string de um grupo de tipos de métricas.
  • Nas operações group_by, liste cada um dos rótulos de recursos e métricas.

Exemplo: uso de CPU de 75% em qualquer região

Por exemplo, a consulta MQTT a seguir configura um alerta que monitora quando o uso da cota instances_per_vpc_network do Compute Engine excede 80% para qualquer ID de rede:

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

Esta consulta usa o tipo de recurso compute.googleapis.com/VpcNetwork, não consumer_quota, e usa a proporção de duas métricas compute.googleapis.com/quota/instances_per_vpc_network, usage e limit. ,

Exemplos de gráficos

Os gráficos exibem dados de série temporal. É possível usar o Metrics Explorer para criar um gráfico. Com o Metrics Explorer, é possível descartar o gráfico quando não precisar mais dele ou salvá-lo em um painel. Na visualização do painel, é possível adicionar um gráfico ao painel.

Quando você só quiser configurar um gráfico que mostre dados de cota, use as configurações na Tabela Nova condição. As condições de alerta usam uma notação diferente das ferramentas de criação de gráficos. As ferramentas de criação de gráficos incluem o Metrics Explorer e a configuração de gráficos em painéis personalizados:
Nome do campo
da caixa de diálogo Nova condição
Gráficos
Função de janela contínua

São definidos de maneira ideal com base nas configurações de métricas e agregação selecionadas.

Para especificar a função de alinhamento, faça o seguinte:

  1. No elemento Agregação, abra o primeiro menu e selecione Configure o alinhador. A função de alinhamento e Os elementos de agrupamento foram adicionados.
  2. Expanda o elemento de função de alinhamento e faça uma seleção.

Janela contínua Intervalo mínimo
(para acessar, clique em Adicionar elemento de consulta)
Série temporal agrupada por
(na seção Entre séries temporais)
Segundo menu do elemento de agregação
Agregação de séries temporais
(na seção Entre séries temporais)
Primeiro menu do elemento de agregação

Série temporal para quota/rate/net_usage

Para visualizar os dados da série temporal da métrica serviceruntime quota/rate/net_usage, para todos os serviços do projeto do Google Cloud, quando os dados forem agrupados pelo nome da métrica de cota e a taxa de uso for exibida, use as seguintes configurações:

Campo da caixa de diálogo Nova condição

Valor
Recurso e métrica No menu Resources, selecione Consumer Quota.
No menu Categorias de métrica, selecione Cota.
No menu Métricas, selecione Uso da cota de taxa.

(O metric.type é serviceruntime.googleapis.com/quota/rate/net_usage,
e o resource.type é consumer_quota).
Filtrar

Adicione um filtro para que o gráfico exiba apenas os dados do serviço que você quer monitorar. Por exemplo, para monitorar o serviço de gerenciamento de identidade e acesso, adicione o filtro a seguir: service = iam.googleapis.com.

Quando o campo de filtro está vazio, todos os dados de métricas disponíveis são incluídos no gráfico.

Janela contínua Selecione 1 m

O período de 1 minuto corresponde ao intervalo de amostragem dessa métrica.

Função de janela contínua Selecionar rate

Definindo o alinhador com o valor de rate, os valores armazenados na série temporal para essa métrica DELTA são convertidos em uma nova série temporal que armazena dados de taxa. O eixo y do gráfico tem as unidades de cota por segundo.

Entre séries temporais
Agregação de séries temporais

Selecione sum.

O campo de agregação é definido automaticamente como sum quando os dados são agrupados. Essa configuração define como os dados são combinados na série temporal individual.

Entre séries temporais
Série temporal agrupada por

Selecione quota_metric.

Esta opção agrupa os dados pelo tipo de nome do quota_metric.

Série temporal para quota/instances_per_vpc_network/limit

Para visualizar os dados da série temporal da métrica compute.googleapis.com quota/instances_per_vpc_network/limit, para todas as redes em seu projeto do Google Cloud, use as seguintes configurações:

Campo da caixa de diálogo Nova condição

Valor
Recurso e métrica No menu Tipo de recurso, selecione Rede VPC.
No menu Categoria da métrica, selecione cota.
No menu Métrica, selecione Limite de instâncias por cota de rede VPC.

(O metric.type é compute.googleapis.com/quota/instances_per_vpc_network/limit,
e o resource.type é compute.googleapis.com/VpcNetwork).
Filtrar Deixe em branco.
Janela contínua Selecione 1 m

As correspondências de período são o intervalo de amostragem dessa métrica.

Função de janela contínua Selecionar mean
Entre séries temporais
Agregação de séries temporais
Sair como none
Entre séries temporais
Série temporal agrupada por
Deixe em branco.

Série temporal para quota/instances_per_vpc_network/usage

Para visualizar os dados de série temporal da métrica compute.googleapis.com quota/instances_per_vpc_network/usage, para uma das redes em seu projeto do Google Cloud, use as seguintes configurações:

Campo da caixa de diálogo Nova condição

Valor
Recurso e métrica No menu Resource type, selecione VPC Network.
No menu Categoria de métrica, selecione cota.
No menu Métrica, selecione Instâncias por uso da cota da rede VPC.

(O metric.type é compute.googleapis.com/quota/instances_per_vpc_network/usage,
e o resource.type é compute.googleapis.com/VpcNetwork).
Métrica No menu Métrica, selecione compute.googleapis.com/quota/instances_per_vpc_network/usage.
Filtrar

Adicione um filtro para que o gráfico exiba apenas um subconjunto de todos os dados. Por exemplo, para ver o uso de uma rede específica, adicione o seguinte filtro: network_id = identifier.

Quando o campo de filtro está vazio, todos os dados de métricas disponíveis são incluídos no gráfico.

Janela contínua Selecione 1 m

As correspondências de período são o intervalo de amostragem dessa métrica.

Função de janela contínua Selecionar mean
Entre séries temporais
Agregação de séries temporais
Sair como none
Entre séries temporais
Série temporal agrupada por
Deixe em branco.

Gráficos MQL

Você pode usar consultas MQL para criar gráficos Editor de código MQL. Por exemplo, qualquer uma das consultas mostradas nos exemplos de política de alertas de MQL pode ser inserida no editor de código. É possível omitir a última operação, condition, em cada consulta. Ela se aplica, exceto ao criar uma condição para uma política de alertas. Em um gráfico, a operação condition não faz nada.

Para mais informações, consulte Usar o editor de código para MQL e Exemplos de MQL.