O escalonamento automático baseado nas métricas do Cloud Monitoring permite ajustar a capacidade necessária de acordo com as medições do seu aplicativo. Quando você dimensiona automaticamente um MIG com base em uma métrica, o escalonador automático cria VMs quando o valor da métrica aumenta e exclui VMs quando o valor diminui.
Por exemplo, você pode definir quantas VMs são necessárias por contagem de usuários, latência ou número de mensagens em uma assinatura do Pub/Sub. Você pode usar as métricas integradas fornecidas pelo serviço Monitoring ou as métricas customizadas que você exporta do seu aplicativo.
Este documento descreve como dimensionar automaticamente um grupo gerenciado de instâncias (MIG) com base nas métricas do Monitoring.
Você também pode dimensionar automaticamente um MIG com base na utilização da CPU , capacidade de serviço de balanceamento de carga ou agendamentos .
Antes de começar
- Leia sobre os fundamentos do escalonador automático.
- Leia sobre os conceitos de métricas de monitoramento usados em uma configuração de escalonamento automático.
- Se você quiser fazer o escalonamento automático com base em uma métrica do Ops Agent , instale o Ops Agent .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Você pode configurar o escalonamento automático com base em até cinco métricas de monitoramento por MIG.
- Você pode dimensionar automaticamente com base em métricas que possuem apenas tipos de valor
INT64
ouDOUBLE
. Outros tipos de valor não são suportados. - Não é possível configurar a mesma métrica mais de uma vez em uma política de escalonamento automático.
Meta de utilização : se você deseja que o escalonador automático mantenha uma métrica em um valor específico, configure uma meta de utilização . O escalonador automático cria VMs quando o valor da métrica está acima da meta e exclui VMs quando o valor da métrica está abaixo da meta. Isso é útil para métricas como tráfego de rede, uso de memória/disco ou latência média do seu aplicativo. O diagrama a seguir mostra como um escalonador automático adiciona e remove VMs em resposta a um valor de métrica para manter uma meta de utilização.
Atribuição de instância única : se você quiser fazer o escalonamento automático com base na quantidade de trabalho disponível para atribuir a cada VM, configure uma atribuição de instância única . A atribuição de instância única especificada representa quanto trabalho você espera que cada VM lide. O escalonador automático divide o valor da métrica pelo valor de atribuição de instância única para calcular quantas VMs são necessárias. Por exemplo, se a métrica for igual a 100 e a atribuição de instância única for 5, o autoescalador criará 20 VMs no MIG. Isso é útil para métricas que refletem a quantidade de trabalho, como comprimento da fila do Pub/Sub ou contagem de jobs em lote. A atribuição de instância única não se aplica a métricas provenientes de cada VM. O diagrama a seguir mostra a relação proporcional entre o valor da métrica e o número de VMs ao escalar com atribuição de instância única.
Se a métrica vier de cada VM no seu MIG, o autoescalador pegará o valor médio da métrica em todas as VMs no MIG e o comparará com a meta de utilização. Por exemplo, se você quiser fazer o escalonamento automático usando a métrica
tcp_connections
que fornece o número de conexões TCP em uma VM, o escalonador automático usará um número médio de conexões TCP em todas as VMs no MIG para comparar com o destino. Quando você usa essas métricas originadas de uma VM, o MIG não pode ser dimensionado para0
porque o escalonador automático exige pelo menos uma VM para publicar um valor de métrica.Se a métrica se aplicar a todo o MIG e não vier das VMs do seu MIG, o escalonador automático comparará o valor da métrica com a meta de utilização. Por exemplo, você pode usar uma métrica personalizada que mede a latência do seu aplicativo.
No console do Google Cloud, acesse a página Grupos de instâncias .
Se você não tiver um grupo de instâncias gerenciadas, crie um . Caso contrário, clique no nome de um MIG na lista para abrir a página do grupo de instâncias.
Clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , se existir um sinal para uma métrica do Cloud Monitoring, você poderá clicar para editá-lo ou clicar em Adicionar um sinal para adicionar um novo sinal.
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . No painel Recurso e métrica que é aberto, faça o seguinte:
- Clique em Selecionar uma métrica .
- Selecione a métrica que deseja usar para escalonamento automático. Você pode filtrar as métricas com base em qualquer palavra-chave, por exemplo, memória, bytes, disco.
- Clique em Aplicar . O painel exibe um gráfico que mostra os dados da métrica selecionada.
Se quiser usar dados específicos da métrica, adicione um filtro baseado em rótulos da seguinte maneira:
- Na seção Filtros , clique em Adicionar um filtro .
- Selecione um rótulo e insira um valor .
- Clique em Concluído . O gráfico é atualizado para mostrar o valor filtrado da métrica.
Para visualizar o valor agregado da métrica que será usada para dimensionar automaticamente seu MIG, alterne o botão Mostrar agregação no gráfico . O gráfico é atualizado para mostrar o valor agregado.
Na seção Opções de meta de métrica para escalonamento automático , selecione Meta de utilização .
Forneça o seguinte:
- Meta de utilização : Especifique o valor que o escalonador automático deve manter. Este deve ser um número positivo. Por exemplo, 24,5 e 100 são valores aceitáveis.
- Tipo de meta de utilização : selecione um tipo de meta que corresponda ao tipo de medição da métrica. Para comparações precisas, se a meta de utilização for medida por segundos, use Delta/segundo como tipo de meta. Da mesma forma, use Delta/min para uma meta de utilização medida por minutos.
- Medidor : o escalonador automático calcula o valor médio dos dados coletados nos últimos minutos e compara-o com a meta de utilização.
- Delta/min : o escalonador automático calcula a taxa média de crescimento por minuto e a compara com a meta de utilização.
- Delta/segundo : o escalonador automático calcula a taxa média de crescimento por segundo e a compara com a meta de utilização.
Quando terminar de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica .
Revise os detalhes da métrica e clique em Concluído .
Para concluir a configuração, clique em Salvar .
-
MIG_NAME
: o MIG no qual você deseja adicionar um escalonador automático. -
MAX_INSTANCES
: o número máximo de VMs que o MIG pode ter. -
MIN_INSTANCES
: o número mínimo de VMs que o MIG precisa ter. -
METRIC_URL
: uma URL sem protocolo de uma métrica do Monitoring. Por exemplo,compute.googleapis.com/instance/uptime
. Se você usar uma métrica personalizada, ela deverá atender aos requisitos de métrica personalizada . -
TARGET_VALUE
: o valor da métrica que o escalonador automático tenta manter. -
TARGET_TYPE
: o tipo de valor da métrica.-
gauge
o escalonador automático calcula o valor médio dos dados coletados nos últimos minutos e compara isso com a meta de utilização. -
delta-per-minute
o escalonador automático calcula a taxa média de crescimento por minuto e a compara com a meta de utilização. -
delta-per-second
o escalonador automático calcula a taxa média de crescimento por segundo e a compara com a meta de utilização. Para comparações precisas, se você definir a meta de utilização em segundos, usedelta-per-second
como tipo de meta. Da mesma forma, usedelta-per-minute
para uma meta de utilização em minutos.
-
-
METRIC_FILTER
: aplique um filtro para usar um valor individual de uma métrica com vários valores e para especificar o tipo de recurso monitorado. Se você usar uma métrica proveniente de cada VM, não será necessário especificar o tipo de recurso monitorado porquegce_instance
é usado como padrão. Para outras métricas, useresource.type
na expressão de filtro para especificar o recurso monitorado. Para saber mais sobre filtro de métrica, consulte Conceitos de métricas de monitoramento . -
PROJECT_ID
: seu ID do projeto . -
ZONE
: a zona onde o MIG está localizado. -
AUTOSCALER_NAME
: o nome do escalonador automático. -
MIG_NAME
: o MIG no qual você deseja adicionar um escalonador automático. -
MAX_INSTANCES
: o número máximo de VMs que o MIG pode ter. -
MIN_INSTANCES
: o número mínimo de VMs que o MIG precisa ter. -
METRIC_URL
: uma URL sem protocolo de uma métrica do Monitoring. Por exemplo,compute.googleapis.com/instance/uptime
. Se você usar uma métrica personalizada, ela deverá atender aos requisitos de métrica personalizada . -
TARGET_VALUE
: o valor da métrica que o escalonador automático tenta manter. -
TARGET_TYPE
: o tipo de valor da métrica.-
GAUGE
: O autoescalador calcula o valor médio dos dados coletados nos últimos minutos e compara-o com a meta de utilização. -
DELTA_PER_MINUTE
O escalonador automático calcula a taxa média de crescimento por minuto e a compara com a meta de utilização. -
DELTA_PER_SECOND
O autoescalador calcula a taxa média de crescimento por segundo e a compara com a meta de utilização. Para comparações precisas, se você definir a meta de utilização em segundos, useDELTA_PER_SECOND
como tipo de meta. Da mesma forma, useDELTA_PER_MINUTE
para uma meta de utilização em minutos.
-
-
METRIC_FILTER
: aplique um filtro para usar um valor individual de uma métrica com vários valores e para especificar o tipo de recurso monitorado. Se você usar uma métrica proveniente de cada VM, não será necessário especificar o tipo de recurso monitorado porquegce_instance
é usado como padrão. Para outras métricas, você deve especificar o recurso monitorado usando o seletorresource.type
. Para saber mais sobre filtro de métrica, consulte Conceitos de métricas de monitoramento . No console do Google Cloud, acesse a página Grupos de instâncias .
Se você não tiver um grupo de instâncias gerenciadas, crie um . Caso contrário, clique no nome de um MIG na lista para abrir a página do grupo de instâncias.
Clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , se existir um sinal para uma métrica do Monitoring, você poderá clicar para editá-lo ou clicar em Adicionar um sinal para adicionar uma nova métrica.
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . No painel Recurso e métrica que é aberto, faça o seguinte:
- Clique em Selecionar uma métrica .
- Selecione a métrica que deseja usar para escalonamento automático. Você pode filtrar as métricas com base em qualquer palavra-chave, por exemplo, memória, bytes, disco.
- Clique em Aplicar . O painel exibe um gráfico que mostra os dados da métrica selecionada.
Se quiser usar dados específicos da métrica, adicione um filtro baseado em rótulos da seguinte forma:
- Na seção Filtros , clique em Adicionar um filtro .
- Selecione um rótulo e insira um valor .
- Clique em Concluído . O gráfico é atualizado para mostrar o valor da métrica filtrado.
Para visualizar o valor agregado da métrica que será usada para dimensionar automaticamente seu MIG, alterne o botão Mostrar agregação no gráfico . O gráfico é atualizado para mostrar o valor agregado.
Na seção Opções de meta de métrica para escalonamento automático , selecione Atribuição de instância de VM única .
Forneça um valor de atribuição de instância única que represente a quantidade de trabalho a ser atribuída a cada VM no MIG.
Quando terminar de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica .
Revise os detalhes da métrica e clique em Concluído .
Para concluir a configuração, clique em Salvar .
-
MIG_NAME
: o nome do MIG onde você deseja adicionar um escalonador automático. -
MAX_INSTANCES
: o número máximo de VMs que o MIG pode ter. -
MIN_INSTANCES
: o número mínimo de VMs que o MIG precisa ter. -
METRIC_URL
: uma URL sem protocolo de uma métrica do Monitoring. Por exemplo,compute.googleapis.com/instance_group/size
. Se você usar uma métrica personalizada, ela deverá atender aos requisitos de métrica personalizada . -
METRIC_FILTER
: aplique um filtro para usar um valor individual de uma métrica com vários valores e para especificar o tipo de recurso monitorado. Para saber mais sobre filtro de métrica, consulte Conceitos de métricas de monitoramento . -
INSTANCE_ASSIGNMENT
: a quantidade de trabalho a ser atribuída a cada instância de VM no MIG. -
PROJECT_ID
: seu ID do projeto . -
ZONE
: a zona onde o MIG está localizado. -
AUTOSCALER_NAME
: o nome do escalonador automático. -
MIG_NAME
: o nome do MIG onde você deseja adicionar um escalonador automático. -
MAX_INSTANCES
: o número máximo de VMs que o MIG pode ter. -
MIN_INSTANCES
: o número mínimo de VMs que o MIG precisa ter. -
METRIC_URL
: uma URL sem protocolo de uma métrica do Monitoring. Por exemplo,compute.googleapis.com/instance_group/size
. Se você usar uma métrica personalizada, ela deverá atender aos requisitos de métrica personalizada . -
METRIC_FILTER
: aplique um filtro para usar um valor individual de uma métrica com vários valores e para especificar o tipo de recurso monitorado. Para saber mais sobre filtro de métrica, consulte Conceitos de métricas de monitoramento . -
INSTANCE_ASSIGNMENT
: a quantidade de trabalho a ser atribuída a cada instância de VM no MIG. - Um MIG zonal denominado
our-instance-group
é designado para executar uma tarefa específica. O grupo está localizado na zonaus-central1-a
. - Você tem uma métrica personalizada do Monitoring que exporta um valor que você gostaria de manter em um nível específico. Neste exemplo, suponha que a métrica represente a latência média de processamento de consultas atribuídas ao grupo.
- A métrica personalizada é chamada:
custom.googleapis.com/example_average_latency
. - A métrica personalizada possui um rótulo com uma chave chamada
group_name
e valor igual ao nome do MIG,our-instance-group
. - A métrica customizada exporta dados para o recurso global monitorado , ou seja, não está associada a nenhuma VM específica.
- A métrica personalizada é chamada:
No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome do seu MIG na lista para abrir a página de visão geral do grupo de instâncias.
Clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . O painel Recurso e métrica é aberto.
- Clique em Selecionar uma métrica .
- Escolha sua métrica em Global > Métricas personalizadas .
- Clique em Aplicar .
- Na seção Filtros , faça o seguinte:
- Clique em Adicionar um filtro .
- No menu suspenso Rótulo, selecione
group_name
. - No campo Valor , forneça
our-instance-group
. - Clique em Concluído . O gráfico é atualizado para mostrar o valor filtrado da métrica.
- Na seção Opções de meta de métrica para escalonamento automático , faça o seguinte:
- Selecione Meta de utilização .
- Insira o valor da meta de utilização como 250.
- Defina o tipo de meta de utilização como Delta/seg .
- Depois de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica .
Revise os detalhes da métrica e clique em Concluído .
Quando terminar, clique em Salvar .
No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome do seu MIG na lista para abrir a página de visão geral do grupo de instâncias.
Clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
Defina o tipo de sinal como Cloud Pub/Sub queue .
Selecione um tópico . Se desejar um novo tópico, clique em Criar um tópico para criar um .
Selecione a assinatura com base na qual você deseja dimensionar automaticamente seu MIG. Se desejar uma nova assinatura, clique em Criar uma assinatura para criar uma .
No campo Número de mensagens a serem atribuídas a cada VM , especifique o número de mensagens não confirmadas que você espera que cada VM manipule.
Clique em Concluído .
Quando terminar, clique em Salvar .
No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome do seu MIG na lista para abrir a página de visão geral do grupo de instâncias.
Clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . O painel Recurso e métrica é aberto.
- Clique em Selecionar uma métrica .
- Selecione Instância de VM > Instância > Bytes recebidos (
compute.googleapis.com/instance/network/received_bytes_count
). - Clique em Aplicar .
- Selecione Instância de VM > Instância > Bytes recebidos (
- Na seção Opções de meta de métrica para escalonamento automático , faça o seguinte:
- Certifique-se de que a meta de utilização esteja selecionada.
- Insira um valor de meta de utilização.
- Defina um tipo de meta de utilização.
- Depois de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica .
Revise os detalhes da métrica e clique em Concluído .
Quando terminar, clique em Salvar .
No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome do seu MIG na lista para abrir a página de visão geral do grupo de instâncias.
Na página de visão geral do grupo de instâncias, clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . O painel Recurso e métrica é aberto.
- Clique em Selecionar uma métrica .
- Selecione Instância de VM > Memória > Utilização de memória (
compute.googleapis.com/instance/memory/percent_used
). - Clique em Aplicar .
- Selecione Instância de VM > Memória > Utilização de memória (
- Na seção Filtros , faça o seguinte:
- Clique em Adicionar um filtro .
- No menu suspenso Rótulo, escolha o rótulo da métrica de estado .
- No campo Valor , digite used .
- Clique em Concluído .
- Na seção Opções de meta de métrica para escalonamento automático , faça o seguinte:
- Certifique-se de que a meta de utilização esteja selecionada.
- Insira um valor de meta de utilização.
- Defina o tipo de meta de utilização como Gauge .
- Depois de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica .
Revise os detalhes da métrica e clique em Concluído .
Quando terminar, clique em Salvar .
No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome do seu MIG na lista para abrir a página de visão geral do grupo de instâncias.
Na página de visão geral do grupo de instâncias, clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . O painel Recurso e métrica é aberto.
- Clique em Selecionar uma métrica .
- Selecione Instância de VM > Disco > Operações de disco (
agent.googleapis.com/disk/operation_count
). - Clique em Aplicar .
- Selecione Instância de VM > Disco > Operações de disco (
- Na seção Opções de meta de métrica para escalonamento automático , faça o seguinte:
- Certifique-se de que a meta de utilização esteja selecionada.
- Insira um valor de meta de utilização.
- Defina um tipo de meta de utilização.
- Depois de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica .
Revise os detalhes da métrica e clique em Concluído .
Quando terminar, clique em Salvar .
No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome do seu MIG na lista para abrir a página de visão geral do grupo de instâncias.
Na página de visão geral do grupo de instâncias, clique em Editar .
Se não existir nenhuma configuração de escalonamento automático:
- Em Dimensionamento automático , clique em Configurar dimensionamento automático .
- Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático.
Em Escalonamento automático , na seção Sinais de escalonamento automático , clique em Adicionar um sinal .
Defina o tipo de sinal como métrica do Cloud Monitoring .
Clique em Configurar . O painel Recurso e métrica é aberto.
- Clique em Selecionar uma métrica
- Selecione Grupo de instâncias > Instance_group > Tamanho do grupo de instâncias (
compute.googleapis.com/instance_group/size
). - Clique em Aplicar .
- Selecione Grupo de instâncias > Instance_group > Tamanho do grupo de instâncias (
- Na seção Filtros , faça o seguinte:
- Clique em Adicionar um filtro .
- Na lista suspensa Rótulo, escolha o rótulo do recurso instance_group_name .
- No campo Valor , digite o nome do MIG ( MIG_2 ) com base no qual você deseja dimensionar automaticamente seu MIG.
- Clique em Concluído .
- Na seção Opções de meta de métrica para escalonamento automático , faça o seguinte:
- Selecione Atribuição de instância de VM única .
- No campo Atribuição de instância de VM única, insira
4
, se desejar manter 1 VM em seu MIG atual ( MIG_1 ) para cada 4 VMs em MIG_2 .
- Depois de configurar a métrica, clique em Selecionar .
- Clique em Selecionar uma métrica
Revise os detalhes da métrica e clique em Concluído .
Quando terminar, clique em Salvar .
Identificador de métrica ou URL de métrica : o nome da métrica na forma de um URL sem protocolo. Você pode encontrar URLs para métricas integradas na lista de métricas .
Por exemplo, o URL de uma métrica do Pub/Sub que fornece o número de mensagens não confirmadas é
pubsub.googleapis.com/subscription/num_undelivered_messages
.Tipo de recurso monitorado : a origem do valor da métrica. Você pode encontrar o tipo de recurso monitorado de uma métrica na lista de métricas .
Por exemplo, o tipo de recurso monitorado da métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
épubsub_subscription
. Para obter mais detalhes sobre cada tipo de recurso monitorado, consulte Tipos de recursos monitorados .Filtro de métrica : quando sua métrica tem vários valores, um filtro permite que o escalonador automático identifique um valor de métrica específico no conjunto de valores de métrica possíveis. Use os rótulos definidos em uma métrica e em um tipo de recurso monitorado para filtrar os valores. Se quiser explorar seus valores de métrica com filtros diferentes, você pode experimentá-los no explorador de métricas .
Por exemplo, a captura de tela a seguir mostra a métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
que fornece o número de mensagens não confirmadas em todas as assinaturas disponíveis. Cada linha no gráfico indica uma assinatura.Sem filtro, o escalonador automático obtém a soma dos valores métricos de todas as assinaturas. Para dimensionar automaticamente com base em uma única assinatura, aplique um filtro no rótulo
subscription_id
definido parapubsub_subscription
. A captura de tela a seguir mostra uma única assinatura após a aplicação do filtro.- Você deve envolver o valor de um filtro em cotações duplas.
- Você deve usar o operador de comparação de igualdade direta (
=
). Você deve usar o operador
AND
para participar de diferentes critérios de filtro.Por exemplo:
--stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\""
.Você deve usar valores diretos. Você não pode usar curingas ou funções no filtro.
Por exemplo, você não pode usar
resource.labels.zone = starts_with("us-")
.Você não pode usar os rótulos de metadados de recursos que armazenam metadados sobre um recurso monitorado.
- Se a configuração automática usar dados de cada VM no grupo, configure instâncias no seu MIG, para que cada VM exporte a métrica personalizada. Os valores exportados de cada VM devem estar associados a um recurso monitorado
gce_instance
, que contém os seguintes rótulos:-
zone
com o nome da zona em que a instância está. -
instance_id
com o valor do ID numérico exclusivo atribuído à VM.
-
- A métrica deve exportar dados pelo menos a cada 60 segundos. Se você exportar dados com mais frequência do que a cada 60 segundos, o automóvel poderá responder para carregar as alterações mais rapidamente. Se você exportar seus dados menos frequentes que a cada 60 segundos, o automóvel poderá não responder para carregar alterações com rapidez suficiente.
- A métrica deve exportar dados do tipo
INT64
ou de valorDOUBLE
. - Aprenda sobre o gerenciamento de autoscaladores .
- Aprenda como os autoscaladores tomam decisões .
- Aprenda a usar vários sinais automáticos para escalar seu grupo.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Limitações
O escalonamento baseado em métricas de monitoramento é restrito pelas limitações de todos os escalonadores automáticos , bem como pelas seguintes limitações:
Configurar o escalonamento automático com base nas métricas do Monitoring
Você pode usar um valor de métrica do Monitoring para escalonamento automático de duas maneiras diferentes:
Dimensionamento automático para manter uma métrica em um valor desejado
Quando você quiser manter uma métrica em um valor alvo, especifique uma meta de utilização. O escalonador automático cria VMs quando o valor da métrica está acima da meta e exclui VMs quando o valor da métrica está abaixo da meta.
Quando sua métrica tiver vários valores, aplique um filtro ao dimensionamento automático usando um valor individual da métrica. Para obter mais detalhes sobre filtros de métrica e outros campos que podem ser usados em sua configuração, consulte Conceitos de métricas de monitoramento .
Console
gcloud
Para configurar o escalonamento automático com base nas métricas do Monitoring, use o comando
set-autoscaling
.Use o comando a seguir para dimensionar automaticamente com base em uma métrica do Monitoring com uma meta de utilização.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
Se sua métrica tiver vários valores e você quiser usar um valor individual para escalonamento automático, use o sinalizador
--stackdriver-metric-filter
conforme fornecido no comando a seguir.gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE \ --stackdriver-metric-filter="METRIC_FILTER"
Substitua o seguinte:
Para ver uma lista completa de comandos e sinalizações disponíveis para a CLI gcloud, consulte a referência
gcloud
.DESCANSAR
Para configurar o escalonamento automático com base nas métricas de monitoramento para um MIG zonal, use o recurso
autoscalers
ou, para um MIG regional, use o recursoregionAutoscalers
.Faça a chamada a seguir para dimensionar automaticamente um MIG zonal com base em uma métrica de monitoramento com uma meta de utilização.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE } ], } }
Se sua métrica tiver vários valores e você quiser usar um valor individual para escalonamento automático, use o parâmetro
filter
conforme fornecido na chamada de API a seguir.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE, "filter": "METRIC_FILTER" } ], } }
Substitua o seguinte:
Dimensionamento automático com base no trabalho disponível para cada VM em um MIG
Quando você quiser dimensionar automaticamente com base na quantidade de trabalho disponível para cada VM em um MIG, especifique uma atribuição de instância única. O valor da atribuição de instância única que você define indica quanto trabalho você espera que cada VM lide. O escalonador automático divide o valor da métrica pelo valor de atribuição de instância única para calcular quantas VMs são necessárias.
Um valor de métrica
0
indica que não há trabalho a ser concluído pelo MIG. Se o número mínimo de instâncias do seu MIG estiver definido como0
e o valor da sua métrica cair para0
, o MIG será dimensionado para0
até que o valor da métrica aumente.Quando sua métrica tiver vários valores, aplique um filtro ao dimensionamento automático usando um valor individual da métrica. Para obter mais detalhes sobre filtros de métrica e outros campos que podem ser usados em sua configuração, consulte Conceitos de métricas de monitoramento .
Console
gcloud
Para configurar o escalonamento automático com base nas métricas do Monitoring, use o comando
set-autoscaling
.No comando, especifique o sinalizador
--stackdriver-metric-single-instance-assignment
para indicar a quantidade de trabalho que você espera que cada VM do grupo lide.O comando a seguir cria um escalonador automático com base na atribuição de trabalho para cada VM.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-filter="METRIC_FILTER" \ --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT
Substitua o seguinte:
DESCANSAR
Para configurar o escalonamento automático com base nas métricas de monitoramento para um MIG zonal, use o recurso
autoscalers
ou, para um MIG regional, use o recursoregionAutoscalers
.Use o parâmetro
singleInstanceAssignment
para especificar a quantidade de trabalho que você espera que cada VM lide.Por exemplo, faça a chamada a seguir para criar um escalonador automático que escale um MIG zonal com base na atribuição da instância.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "filter": "METRIC_FILTER", "singleInstanceAssignment": INSTANCE_ASSIGNMENT } ], } }
Substitua o seguinte:
Exemplos de escalonamento automático com base em métricas
Esta seção fornece alguns exemplos de métricas usadas para escalonamento automático. Para obter uma lista completa de métricas, consulte Google Cloud métricas .
Dimensionamento automático com base em uma métrica personalizada
Pode haver uma situação em que a métrica que fornece um sinal relevante não represente uma quantidade total de trabalho disponível ou outro recurso aplicável ao grupo, mas sim uma média, um percentil ou alguma outra propriedade estatística. Neste exemplo, suponha que você dimensione com base na latência média de processamento do grupo.
Suponha a seguinte configuração:
Você determinou que quando o valor da métrica estiver acima de algum valor específico, será necessário adicionar mais VMs ao grupo para lidar com a carga, enquanto quando estiver abaixo desse valor, você poderá liberar alguns recursos. Você deseja que o escalonador automático adicione ou remova VMs gradualmente a uma taxa proporcional ao quanto a métrica está acima ou abaixo da meta. Para este exemplo, suponha que você tenha determinado seu valor alvo como
250 delta/sec
.Você pode configurar o escalonamento automático para o grupo usando uma meta de utilização de
250
, que representa a taxa de alteração do valor da métrica que o escalonador automático tentará manter:Console
gcloud
gcloud compute instance-groups managed set-autoscaling our-instance-group \ --zone=us-central1-a \ --max-num-replicas=50 \ --min-num-replicas=0 \ --update-stackdriver-metric=custom.googleapis.com/example_average_latency \ --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \ --stackdriver-metric-utilization-target=250 \ --stackdriver-metric-utilization-target-type=delta-per-second
DESCANSAR
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers { "name": "our-instance-group-autoscaler", "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group", "autoscalingPolicy": { "maxNumReplicas": 50, "minNumReplicas": 0, "customMetricUtilizations": [ { "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"", "utilizationTargetType": "delta-per-second", "utilizationTarget": 250.0, "metric": "custom.googleapis.com/example_average_latency" } ] } }
Escalonamento automático com base em mensagens não confirmadas no Pub/Sub
Para configurar o escalonamento automático com base em mensagens não confirmadas em uma assinatura do Pub/Sub , use a métrica
subscription/num_undelivered_messages
fornecida pelopubsub
e filtre pelosubscription ID
.A métrica
subscription/num_undelivered_messages
exporta o número total de mensagens na assinatura, incluindo mensagens que estão sendo processadas, mas que ainda não foram reconhecidas. Não é recomendado usar uma métrica que não inclua as mensagens que estão sendo processadas porque essa métrica pode cair para 0 quando ainda há trabalho sendo feito, o que solicita que o escalonamento automático aumente e possivelmente interrompa o trabalho real.Se você não tiver uma assinatura, poderá criar uma assinatura pull , push ou BigQuery antes de configurar o escalonamento automático.
Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \ --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \ --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM
DESCANSAR
Para configurar o escalonamento automático para um MIG zonal, use o recurso
autoscalers
ou, para um MIG regional, use o recursoregionAutoscalers
.Por exemplo, faça a chamada a seguir para criar um escalonador automático para um MIG zonal.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM, "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"", "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages" } ] } }
Dimensionamento automático com base no tráfego de rede de entrada
Para configurar o escalonamento automático com base no tráfego de rede de entrada para VMs em seu MIG, use a métrica
instance/network/received_bytes_count
fornecida porcompute
.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
DESCANSAR
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "compute.googleapis.com/instance/network/received_bytes_count" } ] } }
Dimensionamento automático com base no uso de memória
Para configurar o escalonamento automático com base na porcentagem de memória usada, especifique a métrica
percent_used
fornecida pelas métricas do agente de operações de memória . Você deve filtrar a métrica porstate
para usar apenas o estado de memóriaused
. Se você não especificar o filtro, o escalonador automático obterá a soma do uso de memória por todos os estados de memória rotulados comobuffered
,cached
,free
,slab
eused
.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \ --stackdriver-metric-filter="metric.labels.state = \"used\"" --stackdriver-metric-utilization-target-type=gauge \ --stackdriver-metric-utilization-target=TARGET_VALUE \
DESCANSAR
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "filter": "metric.labels.state=\"used\"", "utilizationTargetType": "GAUGE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/memory/percent_used" } ] } }
Dimensionamento automático baseado em E/S de disco
Para configurar o escalonamento automático com base na contagem total de operações de E/S de disco, use a métrica
operation_count
fornecida pelas métricas do agente de operações de disco . Se você quiser dimensionar com base em operações de leitura ou gravação, filtre a métrica usando o rótulodirection
. Da mesma forma, para dimensionar com base nas operações de disco em um dispositivo específico, use o rótulodevice
no filtro métrico.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
DESCANSAR
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/disk/operation_count" } ] } }
Dimensionamento automático com base no tamanho de outro MIG
Você pode dimensionar automaticamente um MIG com base no tamanho de outro MIG no mesmo projeto. Por exemplo, você pode ter um aplicativo multicamadas com um MIG de front-end que é escalonado automaticamente com base em um balanceador de carga e um MIG de back-end que é escalonado automaticamente proporcionalmente ao front-end. Use uma atribuição de instância única para definir quantas VMs de back-end são necessárias para cada VM de front-end. Se você precisar de 1 VM de back-end para cada 4 VMs de front-end, defina a atribuição de instância única como 4 no MIG de back-end.
Para dimensionar automaticamente um MIG ( MIG_1 ) com base no tamanho de outro MIG ( MIG_2 ), use a métrica
instance_group/size
fornecida porcompute
.Console
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_1 \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance_group/size \ --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \ --stackdriver-metric-single-instance-assignment=4
DESCANSAR
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": 4, "filter": "resource.type = \"instance_group\" and resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"", "metric": "compute.googleapis.com/instance_group/size" } ] } }
Conceitos de métricas de monitoramento
Esta seção fornece uma breve descrição dos conceitos de métricas do Monitoring que você precisa conhecer ao configurar o escalonamento automático com base nas métricas do Monitoring.
Requisitos de filtragem de métricas
Ao usar uma métrica que possui vários valores (categorizados usando rótulos ), você pode aplicar um filtro ao dimensionamento automático com base em valores específicos da métrica. Se o filtro retornar vários valores, os valores serão somados. Para obter melhores resultados, crie um filtro específico o suficiente para retornar um único valor.
A filtragem do escalonador automático para métricas é compatível com a sintaxe do filtro do Monitoring . O filtro deve atender aos seguintes requisitos:
Para uma referência completa dos rótulos métricos e dos rótulos de recursos monitorados que você pode filtrar, consulte a lista de métricas e a lista de recursos monitorados .
Requisitos de métricas personalizadas
Para usar métricas personalizadas, você deve primeiro criar uma métrica personalizada associada a um dos tipos de recursos monitorados .
Uma métrica personalizada usada para autocaling deve ter as seguintes propriedades:
Para obter informações sobre como criar uma métrica personalizada, consulte o uso de métricas personalizadas .
O que vem a seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-21 UTC.
-