Veja os registos do escalador automático


Quando ativa a escala automática, o escalador automático toma decisões de escalamento com base nas opções que especificar. Cada decisão de escalabilidade é registada no Cloud Logging. Leia estes registos no Explorador de registos para compreender melhor as decisões de escalabilidade do escalador automático.

Através do Explorador de registos, pode ver eventos relacionados com:

  • Recomendação do escalador automático para redimensionar um grupo de instâncias geridas (MIG). Se o escalador automático calcular um novo tamanho recomendado para um MIG, a alteração no tamanho recomendado é descrita nos registos do escalador automático. Consulte o artigo Redimensione uma entrada do registo.
  • Alterações no estado do escalador automático. Por exemplo, se o ajuste automático estivesse a funcionar como esperado, mas depois encontrasse um problema, a alteração no estado seria descrita nos registos do ajuste automático. Consulte a entrada do registo de alterações de estado.

Antes de começar

  • Leia a documentação sobre a escala automática.
  • Ter um redimensionador automático ativo para o qual quer ver registos.
  • Reveja como usar o Explorador de registos.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se 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

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Veja os registos do escalador automático

Para ver os registos do redimensionador automático, use a Google Cloud consola, a CLI gcloud ou a API REST.

Consola

Se ativou o dimensionamento automático, pode ver os registos do dimensionamento automático no Google Cloud console.

  1. Aceda à página Explorador de registos.

    Aceda ao Explorador de registos

  2. Puxe para baixo o menu pendente Recurso e selecione Ajuste automático.

Também pode navegar para a página do Explorador de registos a partir do MIG da seguinte forma:

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome do MIG para o qual quer ver os registos.

  3. Clique no separador Monitorização.

  4. No separador Monitorização, o painel Registos encontra-se na parte inferior da página. Abra o painel clicando no ícone no final deste painel.

  5. Para abrir a página do Explorador de registos, clique no ícone Ver no Explorador de registos neste painel. O explorador de registos é aberto com uma consulta predefinida para obter todos os registos do escalador automático do MIG.

gcloud

Para procurar todos os registos relacionados com o dimensionamento automático, use o comando logging read. Por exemplo:

gcloud logging read "resource.type=autoscaler" --limit 10 \
    --format json

Para ver os registos do escalador automático de um MIG específico, especifique o instance_group_manager_name da seguinte forma:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm" \
    --limit 10 --format json

Para ver as entradas de registo relacionadas com as ações de redimensionamento do escalador automático, especifique o nome do compute.autoscalers.resizemétodo:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.resize" \
    --limit 10 --format json

Para ver as entradas do registo relacionadas com as alterações de estado do escalador automático, especifique o compute.autoscalers.changeStatusnome do método:

gcloud logging read "resource.type=autoscaler AND \
    resource.labels.instance_group_manager_name=example-igm AND \
    protoPayload.methodName=compute.autoscalers.changeStatus" \
    --limit 10 --format json

REST

Faça um pedido à API Logging V2. O corpo do pedido tem de conter o parâmetro filter a usar na pesquisa de registos e o project para o qual quer ver os registos. Por exemplo, para fazer um pedido para obter uma lista de ações de redimensionamento de um MIG específico:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.resize",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

Para fazer um pedido para receber uma lista de alterações de estado de um MIG específico:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "resource.type=autoscaler AND
    resource.labels.instance_group_manager_name=example-igm AND
    protoPayload.methodName=compute.autoscalers.changeStatus",
  "pageSize": 10,
  "resourceNames": [
    "projects/example-project"
  ]
}

Redimensione a entrada do registo

Quando o escalador automático calcula um tamanho recomendado para o seu GIG, o Compute Engine cria uma entrada de registo que capta os tamanhos recomendados novos e antigos. Para os MIGs zonais, a entrada do registo também captura o motivo da alteração no tamanho recomendado.

Segue-se um exemplo de uma entrada de registo para um MIG zonal. Neste exemplo, com base no dimensionamento automático preditivo, o dimensionador automático calculou 3 VMs para atingir o objetivo de utilização da CPU de 35%. No entanto, o número máximo de instâncias configuradas na política de escalamento automático é apenas 2. Assim, o dimensionamento automático limita o tamanho recomendado a 2.

    {
    insertId: "1l68z7sg4jw7kzo"
    logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload: {
      @type: "type.googleapis.com/google.cloud.audit.AuditLog"
      metadata: {
        @type: "type.googleapis.com/autoscaler.AutoscalerSizeChangeExplanation"
        autoscalingMode: "ON"
        autoscalingReason: {
          scalingLimit: {
            limitPolicy: {
              maxNumReplicas: 2
            }
            limitSize: 2
            name: "MAX_INSTANCES"
          }
          scalingSignal: {
            calculatedSize: 3
            calculationDetails: {
              servingSize: 1
              signalTarget: 0.35
              signalValue: 1.03533
            }
            name: "PREDICTED_CPU_UTILIZATION"
            signalPolicy: {
              coolDownPeriodSec: 15
              cpuUtilization: {
                predictiveMethod: "OPTIMIZE_AVAILABILITY"
                utilizationTarget: 0.35
              }
            }
          }
          summary: "The autoscaler's recommended size changed from 1 to 2
          because the autoscaler predicted that in 15 seconds the average CPU
          utilization across 1 serving instance will be 103.533%, which is above
          the utilization target of 35%. The calculated size was 3 to achieve
          the target CPU utilization but the size was limited by the maximum
          number of instances set in the autoscaling policy."
        }
        newSize: 2
        oldSize: 1
      }
      methodName: "compute.autoscalers.resize"
      resourceName: "projects/example-project/zones/us-east1-d/autoscalers/example-autoscaler"
      serviceName: "compute.googleapis.com"
    }
    receiveTimestamp: "2022-06-13T22:34:43.045973046Z"
    resource: {
      labels: {
        autoscaler_id: "1234567890123456789"
        autoscaler_name: "example-autoscaler"
        instance_group_manager_id: "1357908642148074125"
        instance_group_manager_name: "example-igm"
        location: "us-east1-d"
        project_id: "example-project"
      }
      type: "autoscaler"
    }
    severity: "INFO"
    timestamp: "2022-06-13T22:34:42.810216614Z"
    }

A tabela seguinte descreve os campos da entrada do registo:

Propriedade Valor
autoscalingMode O modo de escalamento automático no momento em que a entrada foi registada. Independentemente do modo, o dimensionador automático calcula o tamanho recomendado, que é representado por newSize no registo. Consoante o modo de dimensionamento automático, o redimensionador automático redimensiona o GIG da seguinte forma:
  • ON: o redimensionador automático redimensiona o MIG para newSize.
  • OFF: o redimensionador automático não redimensiona o MIG.
  • ONLY_SCALE_OUT: o redimensionador automático redimensiona o GIG apenas se newSize for superior ao tamanho alvo do GIG.
autoscalingReason Detalhes sobre o motivo do ajuste de escala automático. Este campo só é apresentado para MIGs zonais.
autoscalingReason.scalingLimit Detalhes acerca da funcionalidade de dimensionamento automático que limitou o calculatedSize, que é o tamanho que o dimensionador automático calculou com base no sinal de dimensionamento automático. As funcionalidades de escalamento automático que podem limitar o calculatedSize são o número máximo ou mínimo de instâncias, os controlos de redução ou o período de estabilização. Se não se aplicar nenhum limite a calculatedSize, o campo scalingLimit não aparece nos registos.
autoscalingReason.scalingLimit.limitPolicy A configuração da funcionalidade de escala automática que limitou o calculatedSize. O campo limitPolicy não está definido quando a estabilização limita o calculatedSize, porque a estabilização é uma funcionalidade predefinida do dimensionamento automático.
autoscalingReason.scalingLimit.limitSize O número de VMs com base na funcionalidade de escalamento automático que limitou o calculatedSize.
autoscalingReason.scalingLimit.name O nome da funcionalidade de ajuste automático que limitou o calculatedSize.
autoscalingReason.scalingSignal Detalhes sobre o sinal de escalamento automático usado para calcular o número de VMs que o GIG deve ter. Se a política de escalamento automático tiver vários sinais, o escalador automático considera o sinal que requer o maior número de VMs.
autoscalingReason.scalingSignal.calculatedSize O número de VMs que o MIG deve ter com base no sinal de dimensionamento automático. Se scalingLimit se aplicar, o escalador automático limita calculatedSize a scalingLimit.limitSize.
autoscalingReason.scalingSignal.calculationDetails Detalhes usados para determinar o calculatedSize.
  • servingSize: o número de VMs no GIG, excluindo as VMs que ainda estão no respetivo período de inicialização.
  • signalTarget: O valor alvo que o escalador automático mantém para a utilização da CPU (em tempo real), a utilização da CPU prevista, a utilização do equilíbrio de carga ou uma métrica configurada com o alvo de utilização.
  • singleInstanceAssignment: se o dimensionamento se basear num valor métrico que represente a quantidade total de trabalho a realizar, então singleInstanceAssignment é a quantidade de trabalho que cada VM pode processar.
  • signalValue: o valor do sinal de escala automática. Se signalTarget estiver definido, o escalador automático compara o signalValue com o signalTarget para calcular o número de VMs necessárias, que é representado por calculatedSize.
autoscalingReason.scalingSignal.name O nome do sinal de dimensionamento automático com base no qual o dimensionador automático calculou o número de VMs, representado por calculatedSize no registo.
autoscalingReason.scalingSignal.signalPolicy A configuração do sinal de escala automática com base no qual o escalador automático determinou o calculatedSize.
autoscalingReason.summary Uma descrição do motivo da escala automática.
newSize O tamanho recomendado atual do MIG. Consoante o autoscalingMode, o redimensionador automático redimensiona o GIG para o newSize da seguinte forma:
  • ON: o redimensionador automático redimensiona o MIG para newSize.
  • OFF: o redimensionador automático não redimensiona o MIG.
  • ONLY_SCALE_OUT: o redimensionador automático redimensiona o GIG apenas se newSize for superior ao tamanho alvo do GIG.
oldSize O tamanho recomendado anterior do MIG.

Para ver informações sobre os outros campos na entrada do registo, consulte o artigo Formato das entradas do registo de auditoria.

Entrada do registo de alterações de estado

Quando o estado do escalador automático muda, o Compute Engine cria uma entrada de registo que capta as mensagens de estado antigas e novas. Pode usar estas mensagens de estado para saber por que motivo o escalador automático não está a ter o comportamento esperado ou para depurar problemas anteriores que detetou. Para ver algumas das mensagens de estado comuns, consulte o artigo Mensagens de estado devolvidas frequentemente.

Os seguintes campos no elemento protoPayload descrevem os estados antigos e novos:

  • metadata.newStatus.details: o novo estado do redimensionador automático.
  • metadata.oldStatus.details: o estado anterior do redimensionador automático.

Segue-se um exemplo de uma entrada de registo que descreve uma alteração de estado. Neste exemplo, pode reparar na nova mensagem de estado que indica problemas com a configuração do equilíbrio de carga.

    {
      insertId: "ivho6kg4icqfio"
      logName: "projects/example-project/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload: {
        metadata: {
          @type: "type.googleapis.com/autoscaler.AutoscalerStatusChange"
          newStatus: {
            details: "The autoscaler is configured to scale based on a load
            balancing signal but the instance group has not received any
            utilization data from the load balancer or the utilization is
            constantly 0. Check that the load balancing configuration is
            working"
          }
          oldStatus: {
            details: "OK"
          },
          methodName: "compute.autoscalers.changeStatus"
          resourceName: "projects/example-project/zones/us-east1-b/autoscalers/example-autoscaler"
          serviceName: "compute.googleapis.com"
        }
        receiveTimestamp: "2022-06-08T03:54:12.332329320Z"
        resource: {
          labels: {
            autoscaler_id: "1234567890123456789"
            autoscaler_name: "example-autoscaler"
            instance_group_manager_id: "1357908642148074125"
            instance_group_manager_name: "example-igm"
            location: "us-east1-b"
            project_id: "example-project"
          }
          type: "autoscaler"
        }
        severity: "INFO"
        timestamp: "2022-06-08T03:54:10.675416812Z"
      }
    }

Para ver informações sobre os outros campos na entrada do registo, consulte o artigo Formato das entradas do registo de auditoria.

O que se segue?