Definir jobs de análise que usam o Google Cloud Observability

Neste documento, descrevemos como configurar a análise no pipeline de entrega se você usa o Google Cloud Observability como sistema de monitoramento.

Se você usa um provedor de monitoramento diferente, é necessário definir uma análise personalizada, que inclui a criação de um contêiner para ingerir e avaliar métricas e outros dados do seu provedor.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se agora.

  2. Instale a CLI do Google Cloud.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Verifique se você tem as permissões necessárias para concluir este guia.

  6. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  7. Ative as APIs Compute Engine e Cloud Deploy, se alguma delas ainda não estiver ativada:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Instale a CLI do Google Cloud.

  9. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  11. Verifique se você tem as permissões necessárias para concluir este guia.

  12. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  13. Ative as APIs Compute Engine e Cloud Deploy, se alguma delas ainda não estiver ativada:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

Funções exigidas

Para receber as permissões necessárias para criar e usar jobs de análise, peça ao administrador para conceder a você os seguintes papéis do IAM na conta do seu projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Para garantir que a conta de serviço do Cloud Deploy tenha as permissões necessárias para criar e usar automações, peça ao administrador para conceder os seguintes papéis do IAM à conta de serviço do Cloud Deploy no seu projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

O administrador também pode conceder à conta de serviço do Cloud Deploy as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.

Configurar a análise no Cloud Deploy

A configuração da análise de implantação consiste nas seguintes etapas:

  1. Defina uma ou mais políticas de alertas.

  2. Configure um job de análise no pipeline de entrega.

  3. Execute o pipeline para fazer a análise.

Definir políticas de alertas

Você define políticas de alertas para receber métricas do Google Cloud Observability. Uma política de alertas do Google Cloud Observability descreve quando e como você quer receber notificações quando os dados de monitoramento atendem a critérios especificados.

A análise do Cloud Deploy usa esses alertas para entrar em ação com base nas circunstâncias que eles indicam.

Por exemplo, é possível configurar uma política de alertas no aplicativo em produção para enviar um alerta se a latência de resposta HTTP estiver muito alta. Com base nesse alerta, o job de análise pode acionar uma automação repairRolloutRule para reverter o lançamento.

Como outro exemplo, é possível criar uma política de alertas semelhante no aplicativo implantado no ambiente de staging. Se nenhum alerta for acionado durante a execução do job de análise, ele poderá acionar uma automação promoteReleaseRule para promover o lançamento à produção.

Criar a análise

Para criar um job de análise para o pipeline de entrega do aplicativo, configure a análise na configuração do pipeline e aplique o arquivo de configuração.

Configurar um job de análise

Esta seção descreve como configurar um job de análise do Cloud Deploy para uso com o Google Cloud Observability.

O job de análise é configurado como parte da definição do pipeline de entrega, dentro de uma estrofe strategy. Isso pode estar dentro de qualquer estratégia, canary ou standard. Se você quiser configurar a análise por fase, use um canário personalizado (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).

Um job de análise consiste nos seguintes elementos:

  • Uma duração

    Essa duração especifica por quanto tempo o job de análise é executado. Se a duração expirar e não forem detectados alertas do Google Cloud Observability, a análise será considerada um sucesso e o lançamento vai continuar.

  • Uma ou mais verificações, correspondentes às políticas de alertas no seu sistema de monitoramento

    Cada verificação inclui o seguinte:

    • Um documento de identidade

    • Uma ou mais políticas de alertas

    Ou seja, referências a uma ou mais políticas de alertas do Google Cloud Observability.

    • Um ou mais rótulos usados para identificar uma política de alertas específica. Como uma política de alertas do Google Cloud Observability pode monitorar muitos aplicativos, esses rótulos permitem restringir a verificação a um ou mais aplicativos específicos.

    É possível usar parâmetros do sistema como chaves para rótulos aqui.

Confira a sintaxe para configurar um job de análise ao usar uma estratégia de implantação standard:


strategy:
  standard:
    analysis:
      duration: DURATION
      googleCloud:
        alertPolicyChecks:
        - id: CHECK_ID
          alertPolicies:
          - [ALERT_POLICY_ID]
          labels:
            [KEY: VALUE]

Em que:

  • DURATION

    É o tempo, em segundos, para executar o job de análise. Depois que a duração expirar, o job será concluído. Se a análise falhar (o contêiner retornar um código de saída diferente de zero), o job será concluído (FAILED) antes do fim da duração.

  • CHECK_ID

    É o ID de uma verificação individual na sua análise. Cada ID precisa ser exclusivo neste job de análise. É possível ter uma ou mais verificações em um job de análise.

  • ALERT_POLICY_ID

    É o ID da política de alertas do Google Cloud Observability que você está usando para a verificação. Para encontrar o ID da política de alertas, execute gcloud monitoring policies list. Você precisa do ID totalmente qualificado, que tem esta aparência:

    projects/project-redacted/alertPolicies/01234567890123456789

    É possível que o identificador retornado inclua /conditions/13842666848149128276 após o ID da política. Não inclua isso como parte do ID da política.

  • KEY e VALUE

    São um par de chave-valor para um rótulo, usado para considerar apenas alertas específicos. Por exemplo, você pode usar um rótulo para que uma verificação considere apenas alertas em uma carga de trabalho específica.

    Você pode usar parâmetros do sistema para valores aqui.

    Confira um exemplo que usa um parâmetro do sistema:

    labels:
     service_name: '${{render.metadata.cloud_run.service.name}}'
    

Essa configuração cria um job de análise. Embora haja várias verificações, essa configuração cria apenas um job.

Se nenhuma das políticas de alerta configuradas enviar alertas, o job será concluído e o lançamento vai continuar. Se alguma política disparar um alerta, o job será interrompido com o estado FAILED, e o lançamento vai falhar (com o estado FAILED, a menos que você escolha ignorar a falha do job).

Aplicar o arquivo de configuração do pipeline de entrega

Para criar um pipeline de entrega com o job de análise, aplique o arquivo de configuração usando o seguinte comando:

gcloud deploy apply FILE \
       --region=REGION \
       --project=PROJECT_ID

Substitua:

  • FILE

    Com o nome do seu arquivo de configuração do pipeline de entrega, clouddeploy.yaml ou qualquer nome que você tenha dado a ele.

  • REGION

    Com a região em que você está criando o pipeline de entrega.

  • PROJECT_ID

    Com o ID do projeto em que você está criando o pipeline de entrega.

Agora você tem um pipeline de entrega no seu projeto e um job de análise, que fará parte do pipeline quando você criar uma versão.

A seguir