Ver registros de distribuição de instâncias

Quando você cria um grupo gerenciado de instâncias (MIG) regional ou aumenta o tamanho de destino dele, o Compute Engine avalia a disponibilidade de recursos em tempo real para distribuir novas instâncias de computação entre zonas e tipos de máquina. Durante esse processo, o Compute Engine registra uma entrada de registro de distribuição de instâncias no Cloud Logging.

Neste documento, descrevemos como visualizar e interpretar esses registros de distribuição de instâncias. Também explicamos como usar esses registros para investigar alocações pendentes e configurar alertas.

Para conferir a distribuição real das instâncias em execução, consulte Monitorar a distribuição de instâncias em MIGs.

Sobre os registros de distribuição de instâncias

Os registros de distribuição de instâncias fornecem um snapshot único das alocações planejadas do MIG para instâncias de computação. Nesses registros, uma instância alocada significa que o MIG encontrou capacidade e planeja criar a instância de computação nesse tipo de máquina e nessa zona. Um tamanho alocado não significa que as instâncias de computação já foram criadas.

Como os registros fornecem um snapshot, o Compute Engine não os atualiza quando o MIG cria as instâncias de computação restantes posteriormente. A entrada de registro permite visualizar os seguintes detalhes:

  • Distribuição de tipos de máquina: o número de instâncias de computação que o MIG alocou por tipo de máquina. Essas informações estão presentes apenas para MIGs regionais que usam flexibilidade de instâncias.

  • Distribuição por zona: o número de instâncias de computação que o MIG alocou por zona.

  • Instâncias aguardando capacidade: o número de instâncias para as quais o MIG não conseguiu alocar capacidade imediatamente e está buscando capacidade ativamente.

Limitações

  • Os registros de distribuição de instâncias estão disponíveis apenas para MIGs regionais.

  • Para MIGs regionais que usam o formato de distribuição de destino EVEN sem escalonamento automático, a entrada de registro inclui apenas os campos oldSize, newSize, deltaSize e targetShape, sem detalhes de distribuição de instâncias.

  • O Compute Engine registra os detalhes de distribuição de instâncias somente quando você cria um MIG ou aumenta o tamanho de destino dele. O Compute Engine não registra esses detalhes quando o tamanho de destino diminui ou durante as operações de reparo, recriação e atualização de instâncias.

Ver registros de distribuição de instâncias de um MIG específico

Para ver os registros de distribuição de instâncias de um MIG específico, use uma das seguintes opções:

Console

É possível ver os registros de um MIG específico diretamente na página de detalhes do grupo de instâncias.

  1. No console, do Google Cloud , acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Clique no nome do MIG que você quer visualizar.

  3. Clique na guia Monitoramento.

  4. No painel à esquerda, selecione Registros.

  5. No filtro de resultados de registro, digite instanceDistribution e pressione Enter.

  6. Para ver os dados de distribuição de instâncias, expanda uma entrada de registro e, em seguida, expanda protoPayload.metadata.details.

gcloud

Para ver os registros de distribuição de instâncias de um MIG específico, use o comando gcloud logging read:

gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
  resource.labels.instance_group_manager_name=\"MIG_NAME\""

Substitua:

  • PROJECT_ID: ID do projeto.

  • MIG_NAME: o nome do MIG;

REST

Para ver os registros de distribuição de instâncias de um MIG específico, faça uma solicitação POST ao método entries.list.

POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
  "projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}

Substitua:

  • PROJECT_ID: ID do projeto.

  • MIG_NAME: o nome do MIG;

Para mais informações sobre cada campo em um registro, consulte Entrada de registro de distribuição de instâncias.

Ver todos os registros de distribuição de instâncias em um projeto

Para ver todos os registros de distribuição de instâncias em um projeto, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud , acesse a página Análise de registros.

    Acessar a Análise de registros

  2. Insira uma consulta. Confira alguns exemplos:

    • Para ver todos os registros de distribuição de instâncias no projeto:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      
    • Para ver os registros de distribuição de instâncias em que parte do redimensionamento ainda está aguardando capacidade:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      protoPayload.metadata.details.data.activeSeekDeltaSize > 0
      

    Substitua PROJECT_ID pelo ID do seu projeto.

  3. Clique em Executar consulta.

  4. Nos resultados, expanda uma entrada de registro.

    • Para ver o resumo e os dados, abra protoPayload.metadata.details.
    • Para ver o resumo em cada linha, clique em message e selecione Adicionar campo à linha de resumo.

gcloud

Para conferir os registros de distribuição de instâncias, use o comando gcloud logging read.

  • Para ver todos os registros de distribuição de instâncias no projeto:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
  • Para ver todos os registros do projeto do último dia, especifique a flag --freshness=1d da seguinte maneira:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
    --freshness=1d
  • Para ver os registros de distribuição de instâncias em que parte do redimensionamento ainda está aguardando capacidade:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0"

Substitua PROJECT_ID pelo ID do seu projeto.

REST

Para visualizar os registros de distribuição de instâncias, faça uma solicitação POST para o método entries.list.

  • Para ver todos os registros de distribuição de instâncias no projeto:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
  • Para ver todos os registros do projeto do último dia, adicione uma condição timestamp ao filtro:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
  • Para ver os registros de distribuição de instâncias em que parte do redimensionamento ainda está aguardando capacidade:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}

Substitua:

  • PROJECT_ID: ID do projeto.

  • YYYY-MM-DDThh:mm:ssZ: o carimbo de data/hora RFC 3339 para o horário de início. Por exemplo, 2024-10-22T00:00:00Z.

Para mais informações sobre cada campo em um registro, consulte Entrada de registro de distribuição de instâncias.

Entrada de registro de distribuição de instâncias

Veja a seguir um exemplo de entrada de registro (protoPayload.metadata.details). Como esse evento é um snapshot único, a entrada de registro não é atualizada quando as instâncias restantes são criadas posteriormente. A entrada de registro permite que você veja os detalhes da seguinte maneira:

  • details.data: mostra os detalhes estruturados sobre a distribuição da instância.

  • details.message: mostra o resumo da distribuição de instâncias.

Neste exemplo, um MIG regional com flexibilidade de instâncias está sendo escalonado horizontalmente de 0 para 100. O MIG aloca imediatamente 80 das 100 novas instâncias em duas seleções de instâncias classificadas (20 instâncias de c2-standard-4 na seleção rank2-c2 e 60 instâncias de n2d-standard-4 na seleção rank3-n2d). A entrada também mostra que as instâncias de computação 40 estão alocadas em us-central1-b e us-central1-c cada. Para as 20 instâncias restantes (activeSeekDeltaSize), o MIG continua buscando capacidade em todas as seleções e zonas de instâncias configuradas. Para MIGs regionais sem flexibilidade de instâncias, a entrada de registro omite o campo instanceSelections e mostra apenas a distribuição zonal.

"metadata": {
  "details": {
    "data": {
      "oldSize": 0,
      "newSize": 100,
      "deltaSize": 100,
      "targetShape": "BALANCED",
      "activeSeekDeltaSize": 20,
      "instanceSelections": {
        "rank1-n2": {
          "rank": 1,
          "machineSelections": [
            {
              "machineType": "n2-standard-4",
              "allocatedSize": 0
            }
          ]
        },
        "rank2-c2": {
          "rank": 2,
          "machineSelections": [
            {
              "machineType": "c2-standard-4",
              "allocatedSize": 20
            }
          ]
        },
        "rank3-n2d": {
          "rank": 3,
          "machineSelections": [
            {
              "machineType": "n2d-standard-4",
              "allocatedSize": 60
            }
          ]
        }
      },
      "zonalDistribution": {
        "us-central1-a": {
          "allocatedSize": 0
        },
        "us-central1-b": {
          "allocatedSize": 40
        },
        "us-central1-c": {
          "allocatedSize": 40
        }
      }
    },
    "message": "Increasing MIG target size from 0 to 100 instances (+100).
    Allocated 80 of 100 new instances. Allocated instances across instance
    selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
    n2d-standard-4: 60). Allocated instances across zones based on target
    distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
    us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
    across all instance selections and zones. The final distribution across zones
    and machine types may differ as instances are created. View the group's
    instances for the current distribution."
  }
}

A tabela a seguir descreve cada campo em uma entrada de registro.

Campo Descrição
details.data.oldSize O tamanho de destino do MIG regional antes da operação de redimensionamento.
details.data.newSize O tamanho de destino solicitado do MIG regional.
details.data.deltaSize A mudança no tamanho desejado (newSize - oldSize).
details.data.targetShape O formato de distribuição de destino do MIG regional.
details.data.activeSeekDeltaSize O número de novas instâncias para as quais o MIG ainda está buscando capacidade nas seleções e zonas de instâncias configuradas. Esse campo é omitido quando o valor é 0.
details.data.instanceSelections

As seleções de instâncias configuradas avaliadas durante a alocação. Esse campo está presente apenas para MIGs que usam a flexibilidade de instâncias. Cada chave é o nome de uma seleção de instância, e o valor dela contém os seguintes campos:

  • rank: a classificação de prioridade configurada para a seleção da instância.
  • machineSelections: uma lista de alocações de tipos de máquina na seleção, em que cada entrada especifica o tipo de máquina (machineType) e o número de instâncias de computação alocadas usando esse tipo de máquina (allocatedSize).
details.data.zonalDistribution As zonas configuradas e a distribuição de instâncias alocadas. Cada chave é um nome de zona, e o valor dela contém o número de instâncias de computação alocadas nessa zona (allocatedSize).
details.message Uma mensagem de resumo que descreve a distribuição da instância, incluindo as contagens alocadas e os detalhes da capacidade de busca.

Interpretar registros de distribuição de instâncias

O registro de distribuição de instâncias fornece um snapshot do plano do MIG para a criação de instâncias de computação. Como o registro indica que o MIG aloca instâncias de computação antes de serem criadas, use os dados de registro com o status da instância de computação e as mensagens de erro para entender o comportamento real do MIG.

Use a tabela a seguir para interpretar saídas de registro comuns e determinar se você precisa realizar alguma ação:

Saída de registro Explicação Ação recomendada
activeSeekDeltaSize é maior que 0 O MIG não encontrou capacidade suficiente para atender a toda a solicitação de redimensionamento imediatamente. O MIG continua tentando criar as instâncias restantes em todas as opções configuradas. Verifique os erros de instância do MIG para saber por que a criação da instância falhou. Considere adicionar tipos de máquina de outras famílias de máquinas, adicionar zonas ou verificar suas cotas.
Uma seleção de preferência mais alta (número de classificação mais baixo) tem um allocatedSize de 0 No momento da decisão, o MIG verificou os tipos de máquina de sua preferência, mas não encontrou capacidade suficiente. Em vez disso, o MIG usou uma seleção de menor preferência (número de classificação mais alto). O Compute Engine não registra erros de instância para seleções ignoradas. Se o MIG pular sua seleção preferida com frequência, considere adicionar mais tipos de máquina à sua seleção preferida ou aceitar opções de menor preferência.
Uma zona configurada tem um allocatedSize de 0 O MIG não alocou novas instâncias nessa zona. Se o formato de destino for ANY ou ANY_SINGLE_ZONE, essa distribuição desigual é normal. Caso contrário, revise sua cota, reservas e suporte de zona para o modelo de instância.
Um tipo de máquina está ausente do resumo de message O MIG não usou esse tipo de máquina para alocação. Verifique o bloco estruturado details.data. A mensagem de resumo não inclui seleções e tipos de máquina que receberam 0 novas instâncias, mas os dados estruturados listam todas as opções avaliadas.

Verificar alocações de instâncias pendentes

Se o MIG ainda estiver aguardando capacidade (activeSeekDeltaSize > 0), verifique o seguinte para entender os motivos das alocações pendentes:

  • Verifique os erros de criação de instâncias. Para conferir se a criação da instância falhou depois que o MIG alocou capacidade ou se as instâncias de computação ainda estão aguardando capacidade, verifique os erros da instância. Para mais informações, consulte Erros de instância de lista.

  • Verifique o status da instância. Para ver o status e a ação atual de cada instância, liste as instâncias no MIG e verifique o campo instanceStatus. Para mais informações, consulte Verificar o status de instâncias gerenciadas.

  • Revise a configuração. Se você configurou uma política de flexibilidade de instâncias no MIG, revise as cotas regionais das famílias de máquinas na política. Além disso, verifique se as zonas selecionadas são compatíveis com os tipos de máquina solicitados. Para mais informações, consulte Visualizar e gerenciar cotas e Regiões e zonas disponíveis.

Criar políticas de alertas com base em registros

Para receber notificações quando as operações de redimensionamento do MIG aguardarem capacidade, crie uma política de alertas com base em registros na Análise de registros. Por exemplo, é possível acionar um alerta quando activeSeekDeltaSize for maior que 0.

Para criar esse alerta, faça o seguinte:

  1. No console do Google Cloud , acesse a página Análise de registros.

    Acessar a Análise de registros

  2. Digite a seguinte consulta:

    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0
    

    Substitua PROJECT_ID pelo ID do seu projeto.

  3. Clique em Executar consulta para validar a consulta.

  4. Crie a política de alertas seguindo as instruções na seção criar uma política de alertas com base em registros da documentação do Cloud Logging.

A seguir