Como gerenciar automaticamente painéis do Cloud Monitoring usando a API Cloud Monitoring

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Neste tutorial, você aprende como usar a API Cloud Monitoring para tratar seus painéis como código. Ao usar a API Monitoring, é possível armazenar os painéis no controle de versões e automatizar a criação e a modificação do painel com o Cloud Build. Este documento é destinado a engenheiros de DevOps que criam e mantêm a infraestrutura de monitoramento.

Os engenheiros de DevOps geralmente mantêm pipelines de integração/entrega contínuas (CI/CD, na sigla em inglês) para criar e implantar software. No entanto, muitas vezes a infraestrutura de monitoramento, como painéis de monitoramento, não faz parte do pipeline e é atualizada manualmente.

Os engenheiros de DevOps buscam por painéis consistentes que sejam fáceis de manter. É importante saber quem fez alterações e quais painéis foram alterados, para confirmar que essas alterações são positivas e poder desfazer ou repetir as alterações com facilidade. Você também quer enviar essas alterações do painel para a produção de maneira confiável.

Este tutorial mostra como controlar a versão dos painéis do Monitoring usando a API Monitoring. O controle de versões permite monitorar quem fez o que nos painéis, para que você possa contar com um relatório de auditoria e uma maneira de revisar e reverter as alterações. Também é possível restringir o acesso à API Monitoring para que as equipes não possam alterar manualmente os painéis e usem, por sua vez, o pipeline de CI/CD. Restringir o acesso garante que todas as alterações passem pelo controle de versões e que os painéis permaneçam consistentes em todos os projetos, porque apenas o pipeline de CI/CD pode aplicar alterações. Ao restringir o acesso à API Monitoring, você ajuda a garantir que somente painéis validados com controle de versões sejam enviados para produção.

Neste tutorial, presumimos que você esteja familiarizado com o Monitoring, o Cloud Build e o Git, e que tenha uma conta de usuário do GitHub. Ao concluir este tutorial, você tem um pipeline que envia atualizações do painel para vários projetos sempre que uma nova alteração é confirmada. A figura 1 mostra a arquitetura do painel do Monitoring.

Um fluxo de trabalho típico para alterar a arquitetura do painel do Monitoring.

Figura 1. Diagrama da arquitetura do painel do Monitoring ao tratar o painel como código.

A Figura 1 mostra o fluxo de trabalho típico a seguir para fazer alterações na arquitetura do painel do Monitoring:

  1. Um engenheiro desenvolve e testa alterações nos painéis no projeto de desenvolvimento do Cloud.
  2. Ele envia as alterações do painel ao repositório do GitHub.
  3. As alterações são implantadas automaticamente no projeto de preparo do Cloud.
  4. Um colega analisa e aprova as alterações no projeto de preparo do Cloud.
  5. As alterações aprovadas são implantadas automaticamente no projeto de produção do Cloud.

Objetivos

  • Controle a versão dos painéis para poder:
    • inspecionar diferenças entre as versões;
    • ter acesso a um relatório de auditoria das alterações;
    • implantar apenas alterações que foram analisadas;
    • encontrar e reverter as alterações problemáticas rapidamente;
  • testar as alterações no painel antes de implantá-las na produção;
  • implantar um painel automaticamente na produção.

Sobre este tutorial

Neste tutorial, usamos o seguinte GitHub para hospedar repositórios Git, mas é possível obter os mesmos resultados com Bitbucket ou Cloud Source Repositories.

É possível acessar a API Monitoring usando a API REST, a API gRPC ou a integração da Google Cloud CLI. Use a integração da CLI gcloud neste tutorial.

Neste tutorial, pressupomos que você é um engenheiro de DevOps que tem as seguintes responsabilidades:

  • Certifique-se de que todas as equipes da sua organização tenham uma visualização consistente da infraestrutura de produção por meio de um conjunto comum de painéis.
  • Forneça um fluxo de trabalho para revisar as alterações do painel planejado sem modificar os painéis atuais na produção.
  • Implante automaticamente as alterações do painel na produção.

Neste tutorial, você conhecerá as etapas necessárias para atender a essas responsabilidades.

Custos

Neste tutorial, usamos os seguintes componentes faturáveis do Google Cloud:

  • Compute Engine
  • Monitoring
  • Cloud Build

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Antes de começar

Criar projetos

Para este tutorial, crie os seguintes projetos do Google Cloud:

  • um projeto de desenvolvimento em que você testa alterações em seu painel;
  • um projeto de teste em que as alterações são revisadas;
  • um projeto de produção em que você implanta as alterações do painel revisado.

Siga as etapas abaixo para criar cada projeto:

  1. No Console do Google Cloud, crie um projeto do Google Cloud.

    Acesse o Console do Google Cloud.

  2. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  3. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Use o Cloud Shell para executar todos os comandos neste tutorial.

  4. Configure o Cloud Shell para usar seu projeto. Substitua PROJECT_ID pelo ID do projeto.

    gcloud config set project PROJECT_ID
    
  5. Ative as APIs do Google Cloud necessárias:

    gcloud services enable \
        compute.googleapis.com \
        monitoring.googleapis.com \
        cloudbuild.googleapis.com
    

Repita as etapas anteriores para criar seus projetos de preparo e produção e ativar as APIs necessárias.

Ao concluir este tutorial, exclua os recursos criados para evitar o faturamento contínuo. Para mais informações, consulte Limpeza.

Configurar a CLI gcloud

Depois de criar os projetos de desenvolvimento, preparo e produção, siga as etapas abaixo para concluir a configuração:

  1. Defina o padrão da CLI gcloud para a região e a zona do Compute Engine que você quer usar nos seus projetos para este tutorial. Neste tutorial, usamos a região us-central1 e a zona us-central1-a. É possível alterar a região e a zona de acordo com suas necessidades. Para mais informações, consulte Geografia e regiões.

    gcloud config set compute/region us-central1
    gcloud config set compute/zone us-central1-a
    
  2. Salve os IDs dos projetos de preparo e de produção nas variáveis de ambiente. Substitua DEV_PROJECT_ID pelo ID do projeto de desenvolvimento, STAGING_PROJECT_ID pelo ID do projeto de preparo e PROD_PROJECT_ID pelo ID do projeto de produção.

    DEV_PROJECT_ID=DEV_PROJECT_ID
    STAGING_PROJECT_ID=STAGING_PROJECT_ID
    PROD_PROJECT_ID=PROD_PROJECT_ID
    
  3. Configure o Git no Cloud Shell com seu nome e endereço de e-mail. O Git usa essas informações para identificar você como o autor das confirmações criadas no Cloud Shell. Substitua YOUR_EMAIL_ADDRESS pelo seu endereço de e-mail e YOUR_NAME pelo seu nome. Para se conectar ao GitHub sem fornecer seu nome de usuário ou senha a cada conexão, conecte-se ao GitHub usando SSH.

    git config --global user.email "YOUR_EMAIL_ADDRESS"
    git config --global user.name "YOUR_NAME"
    

Como configurar os componentes necessários

Comece criando a infraestrutura e o painel necessários para simular um ambiente atual, conforme mostrado no diagrama a seguir:

Componentes de projeto para os projetos de desenvolvimento, preparo e produção.

Figura 2. Diagrama dos componentes criados para cada projeto neste tutorial.

A Figura 2 mostra os seguintes componentes criados para cada projeto (desenvolvimento, preparo e produção) neste tutorial:

  • Componentes do projeto:
    • VM1
    • VM2
    • Espaço de trabalho
      • Painel

Criar instâncias de VM

Nesta seção, você cria instâncias de máquina virtual (VM) nos seus projetos de desenvolvimento, preparo e produção. As VMs geram métricas de monitoramento para serem exibidas nos painéis criados posteriormente.

  1. No Cloud Shell, crie as instâncias de VM vm1 e vm2 no projeto de desenvolvimento:

    gcloud compute instances create vm1 vm2 --project=${DEV_PROJECT_ID}
    
  2. Crie novas instâncias de VM vm1 e vm2 no projeto de preparo:

    gcloud compute instances create vm1 vm2 --project=${STAGING_PROJECT_ID}
    
  3. Crie novas instâncias de VM vm1 e vm2 no projeto de produção:

    gcloud compute instances create vm1 vm2 --project=${PROD_PROJECT_ID}
    

Criar o painel

Em seguida, crie um painel em cada projeto do Cloud para simular um ambiente atual.

  • O projeto de desenvolvimento do Cloud permite testar com segurança as alterações no painel sem afetar os painéis que já estão ativos nos projetos de produção.
  • O projeto de preparo do Cloud permite implantar alterações para análise.
  • Com o projeto de produção do Cloud, sua equipe pode monitorar a infraestrutura da produção e implantar todas as alterações revisadas.

Neste tutorial, usamos painéis predefinidos. Também é possível criar um painel manualmente por meio do Console do Cloud ou usar a API para criar um painel usando um painel predefinido.

  1. Configure o Cloud Shell para usar seu projeto de desenvolvimento:

    gcloud config set project $DEV_PROJECT_ID
    
  2. Clone o repositório de painéis de amostra:

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples.git
    
  3. Navegue até o repositório que você clonou:

    cd monitoring-dashboard-samples
    
  4. Crie uma variável de ambiente para o ID do painel. Substitua DASHBOARD_ID pelo ID do painel que você quer criar:

    DASHBOARD_ID=DASHBOARD_ID
    
  5. Crie o nome do painel de desenvolvimento totalmente qualificado a partir do ID do painel:

    DASHBOARD_NAME="\"name\": \"projects/$DEV_PROJECT_ID/dashboards/$DASHBOARD_ID\","
    

    Ao criar um painel, a API gera automaticamente um ID de painel alfanumérico. O comando anterior substitui o comportamento padrão para especificar um ID de painel personalizado definindo o campo de nome de um objeto do painel. Um ID de painel personalizado é um identificador significativo que ajuda outras pessoas a entender a finalidade do painel quando o encontram em variáveis de ambiente ou no pipeline de CI/CD.

  6. Adicione o ID do painel ao painel de amostra no repositório que você clonou:

    sed -i '/"displayName":/a'"${DASHBOARD_NAME}" dashboards/compute/gce-vm-instance-monitoring.json
    
  7. Para criar o painel no seu projeto de desenvolvimento do Cloud, use a integração da CLI gcloud:

    gcloud monitoring dashboards create \
        --config-from-file=dashboards/compute/gce-vm-instance-monitoring.json
    
  8. Limpe as alterações:

    git checkout .
    
  9. Mude para seu projeto de preparo:

    gcloud config set project $STAGING_PROJECT_ID
    
  10. Crie o nome do painel de preparo totalmente qualificado a partir do ID do painel:

    DASHBOARD_NAME="\"name\": \"projects/$STAGING_PROJECT_ID/dashboards/$DASHBOARD_ID\","
    
  11. Adicione o ID do painel ao painel de amostra:

    sed -i '/"displayName":/a'"${DASHBOARD_NAME}" dashboards/compute/gce-vm-instance-monitoring.json
    
  12. Para criar o painel no projeto de preparo do Cloud, use a integração da CLI gcloudI:

    gcloud monitoring dashboards create \
        --config-from-file=dashboards/compute/gce-vm-instance-monitoring.json
    
  13. Limpe as alterações:

    git checkout .
    
  14. Mude para o projeto de produção:

    gcloud config set project $PROD_PROJECT_ID
    
  15. Crie o nome do painel de produção totalmente qualificado a partir do ID do painel:

    DASHBOARD_NAME="\"name\": \"projects/$PROD_PROJECT_ID/dashboards/$DASHBOARD_ID\","
    
  16. Adicione o ID do painel ao painel de amostra:

    sed -i '/"displayName":/a'"${DASHBOARD_NAME}" dashboards/compute/gce-vm-instance-monitoring.json
    
  17. Para criar o painel no projeto de produção do Cloud, use a integração da CLI gcloud:

    gcloud monitoring dashboards create \
        --config-from-file=dashboards/compute/gce-vm-instance-monitoring.json
    

Seu painel agora é criado de maneira programática em todos os seus projetos do Google Cloud. Usar a API Monitoring de maneira programática significa que o tempo de implantação dos painéis permanece constante mesmo quando o número de painéis aumenta.

Verificar a criação do painel

Verifique se o painel foi criado em cada um dos projetos do Google Cloud no Console do Cloud.

  1. No console do Google Cloud, acesse a página Monitoramento > Painéis:

    Acessar a página Painéis

  2. Selecione o projeto de desenvolvimento do Cloud.

  3. O painel criado aparece como Monitoramento de instâncias de VM do GCE.

  4. Repita as etapas anteriores para verificar se um painel foi criado para seus projetos de preparo e produção.

Se o painel não aparecer em um dos seus projetos, repita as etapas para Criar o painel para esse projeto.

Nas seções a seguir, você aprenderá como testar as alterações no seu painel com segurança e revisar essas alterações antes de implantá-las na produção.

Como criar um repositório do GitHub

Nesta seção, você criará um repositório do GitHub que será usado no restante deste tutorial:

  1. Crie um repositório do GitHub.
    1. Selecione Inicializar este repositório com um README. Isso permite clonar o repositório imediatamente.

Esse repositório controla a versão do painel do Monitoring, o que permite fazer o seguinte:

  • inspecionar diferenças entre as versões;
  • ter acesso a um relatório de auditoria das alterações;
  • implantar apenas alterações que foram analisadas;
  • compartilhar um painel comum entre as equipes.

Como realizar o controle de versões do painel

Em seguida, salve a representação JSON do seu painel para poder controlar a versão dele e tratá-la como código.

  1. Configure o Cloud Shell para usar seu projeto de desenvolvimento:

    gcloud config set project $DEV_PROJECT_ID
    
  2. Clone o repositório do GitHub que você criou no seu diretório inicial:

    cd ~
    git clone YOUR_REPOSITORY_NAME
    
  3. Navegue até o repositório clonado:

    cd YOUR_REPOSITORY_NAME
    
  4. Selecione a representação JSON do seu painel e salve-a em um arquivo:

    gcloud monitoring dashboards describe $DASHBOARD_ID --format=json > dashboard.json
    

    Este arquivo dashboard.json inclui um ETag, que é um identificador de uma versão específica de um recurso, nesse caso, seu painel. Ao atualizar um painel usando a API, você especifica o ID do painel e o ETag, que identifica uma versão específica do painel. Cada vez que o painel é modificado, um novo ETag é gerado.

    O arquivo dashboard.json inclui um campo name, que especifica o ID do painel e o ID do projeto.

  5. Para usar o arquivo JSON para a criação do painel, remova o ETag e parametrize o campo de nome:

    sed -i '/"etag":/d' dashboard.json
    sed -i 's/projects\/[0-9]\+/projects\/[PROJECT_ID]/g' dashboard.json
    
  6. Verifique o arquivo do painel no seu repositório:

    git add .
    git commit -m "Add dashboard file"
    git push
    

Seu painel agora está no controle de versões. O controle de versões permite visualizar um histórico de alterações e configurar seu ambiente para que os painéis sejam modificados somente por meio de seu pipeline de CI/CD.

Seguindo o princípio de privilégio mínimo, verifique se apenas o pipeline de CI/CD tem acesso de leitura/gravação à API para modificar seus painéis. Conceda a todos os outros usuários acesso de leitura à API para que eles possam visualizar a configuração do painel. Permitir que apenas o pipeline de CI/CD faça alterações ajuda a aplicar um ambiente consistente e garante uma única fonte de verdade para as alterações no painel.

Como criar um gatilho de compilação para enviar alterações para o preparo

Nesta seção, você cria um gatilho de compilação que é executado quando você envia uma alteração para a ramificação de desenvolvimento no seu sistema de controle de versões. Esse gatilho implanta o painel para preparo, usando o painel armazenado no sistema de controle de versões.

  1. No console do Google Cloud, selecione o projeto de preparo.
  2. Conecte o repositório do GitHub ao projeto de preparo. Quando você for solicitado a conectar os repositórios do GitHub ao projeto do Cloud, escolha uma das seguintes opções com base na necessidade do seu negócio:
    • Todos os repositórios: ative todos os repositórios atuais e futuros do GitHub para acesso usando o aplicativo Cloud Build.
    • Somente repositórios selecionados: ative apenas repositórios específicos para acesso usando o aplicativo Cloud Build. É possível ativar outros repositórios posteriormente. Para selecionar um repositório para este tutorial, use o menu suspenso Selecionar repositórios para ativar o repositório criado anteriormente.
  3. Crie um gatilho de aplicativo do GitHub com as configurações de gatilho a seguir:

    1. Nome: insira o nome que você quer usar para o acionador.
    2. Evento: selecione Enviar para uma ramificação.
    3. Origem: selecione o repositório que você criou no GitHub anteriormente.
    4. Ramificação: insira ^dev$.
    5. Configuração: selecione Arquivo de configuração do Cloud Build (YAML ou JSON) Mantenha o local do arquivo de configuração cloudbuild.yaml padrão.
    6. Em Variáveis de substituição, clique em Adicionar variável.
    7. Adicione os novos valores de variáveis:

      1. Variável: insira _DASHBOARD_ID.
      2. Valor: digite o valor do DASHBOARD_ID.

      Quando a versão é executada, todas as ocorrências de _DASHBOARD_ID no seu arquivo cloudbuild.yaml são substituídas pelo valor que você fornece.

  4. Clique em Criar.

Agora você tem um gatilho de compilação que é executado quando uma confirmação é enviada para seu sistema de controle de versões. Também é possível criar acionadores de compilação que são executados somente quando há alterações que correspondem a determinados critérios. Por exemplo, é possível criar acionadores que validam sua configuração em relação a um conjunto de regras.

Como conceder permissões à sua conta de serviço do Cloud Build

O Cloud Build usa uma conta de serviço para executar versões para você. Quando você ativou a API Cloud Build anteriormente, a conta de serviço do Cloud Build foi criada automaticamente e recebeu o papel de conta de serviço do Cloud Build para o projeto. Esse papel concede permissões à conta de serviço para executar várias tarefas. No entanto, é possível conceder mais permissões à conta de serviço para executar outras tarefas.

Nesta seção, você concede à conta de serviço do Cloud Build no projeto de preparo permissões adicionais para ler e gravar painéis no projeto do Cloud.

  1. Configure o Cloud Shell para usar seu projeto de preparo:

    gcloud config set project $STAGING_PROJECT_ID
    
  2. Conceda à conta de serviço do Cloud Build as permissões necessárias:

    PROJECT_NUMBER="$(gcloud projects describe ${STAGING_PROJECT_ID} \
      --format='get(projectNumber)')"
    
    gcloud projects add-iam-policy-binding ${PROJECT_NUMBER} \
      --member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
      --role=roles/monitoring.dashboardEditor
    

Como alterar o painel em desenvolvimento

As seções a seguir mostram como testar com segurança as alterações no painel em um projeto de desenvolvimento, fazer com que as alterações sejam revisadas e implantar automaticamente as alterações na produção. A implantação automática é possível graças às etapas anteriores que você realizou para tratar seus painéis como código e colocá-los no controle de versão.

  1. No console do Google Cloud, acesse a página Monitoramento > Painéis:

    Acessar a página Painéis

  2. Selecione o projeto de desenvolvimento do Cloud.

  3. Clique no painel que você criou anteriormente neste tutorial.

  4. No gráfico Instância de VM do GCE - utilização da CPU, clique em Mais opções do gráfico e, em seguida, em Editar.

  5. Na caixa de diálogo Editar gráfico exibida, altere o valor do Título do gráfico para My first change.

  6. Clique em Salvar.

Como atualizar o painel com a API Monitoring

Para atualizar um painel, é possível usar a API Monitoring para implantar uma atualização no painel existente ou excluir e recriá-lo com a definição atualizada.

Como implantar um painel atualizado

Para implantar um painel atualizado, armazene o ETag do painel no momento da criação ou quando você obtiver a representação JSON pela primeira vez. Em seguida, quando você quiser atualizar o painel, especifique que ETag para garantir que o painel não seja alterado. Se outros engenheiros tiverem alterado o painel, especificar o ETag garante que você não substitua o painel pelas alterações. Isso também significa que você precisa manter o estado.

No entanto, se você bloquear seu ambiente para que apenas o pipeline de CI/CD altere seu painel, você altera quem é responsável por manter o estado. Seu sistema de controle de versões agora é responsável por rastrear alterações ao longo do tempo, em vez de um engenheiro precisar verificar ETags idêntico entre confirmações. Qualquer alteração substituída pode ser visualizada no histórico de confirmação do seu sistema de controle de versões.

Como excluir e recriar o painel

Quando quiser atualizar o painel, exclua o painel atual e crie um novo com as alterações desejadas. Essa abordagem é mais simples de automatizar, justificar e depurar, porque você só precisa especificar o projeto do Cloud em que você quer implantar e o painel a ser excluído. Quando você exclui e recria um painel, não é necessário manter o estado na forma de ETags. A viabilidade dessa abordagem depende do fato de que apenas o pipeline de CI/CD pode alterar seus painéis. Essa abordagem trata seus painéis como uma forma de infraestrutura imutável. Também é possível restaurar o painel do sistema de controle de versões com segurança se houver alterações não intencionais, como modificações acidentais.

As seções a seguir mostram como implementar essa abordagem para excluir o painel e recriá-lo.

Como implantar o painel de desenvolvimento no preparo

Ao enviar as alterações para seu repositório, o gatilho de compilação inicia uma versão que implanta seu painel ao projeto de preparo do Cloud. A compilaçãoção executa as etapas especificadas em um arquivo cloudbuild.yaml fornecido.

Criar um arquivo de configuração do Cloud Build

Crie um arquivo de configuração YAML do Cloud Build no seu repositório local com o seguinte conteúdo:

cat >cloudbuild.yaml <<EOF
steps:
# Substitute project ID placeholder in dashboard file with project ID supplied by Cloud Build
- name: 'google/cloud-sdk'
  id : 'Substitute project ID'
  entrypoint: 'bash'
  args:
    - '-c' # pass what follows as a command to bash
    - |
      sed -i 's/\[PROJECT_ID\]/'\$PROJECT_ID'/g' dashboard.json

- name: 'google/cloud-sdk'
  id: 'Delete dashboard'
  args:
    [
      'gcloud', 'monitoring', 'dashboards', 'delete',
      '--quiet',
      'projects/\$PROJECT_ID/dashboards/\${_DASHBOARD_ID}'
    ]
- name: 'google/cloud-sdk'
  id: 'Create dashboard'
  args:
    [
      'gcloud', 'monitoring', 'dashboards', 'create',
      '--config-from-file=dashboard.json'
    ]
EOF

Agora, é possível enviar automaticamente o painel em desenvolvimento para seu projeto de preparo.

Implantar a alteração automaticamente

  1. Configure o Cloud Shell para usar seu projeto de desenvolvimento:

    gcloud config set project $DEV_PROJECT_ID
    
  2. Receba a nova representação JSON do seu painel do projeto de preparo do Cloud.

    gcloud monitoring dashboards describe $DASHBOARD_ID --format=json > dashboard.json
    
  3. Remova o ETag e parametrize o campo de nome do arquivo JSON para que você use-o na criação do painel:

    sed -i '/"etag":/d' dashboard.json
    sed -i 's/projects\/[0-9]\+/projects\/[PROJECT_ID]/g' dashboard.json
    
  4. Envie a configuração do Cloud Build para o GitHub:

    git checkout -b dev
    git add .
    git commit -m "Add changes"
    git push --set-upstream origin dev
    
  5. No console do Google Cloud, abra a página IAM.

    Acessar a página Histórico

  6. Selecione seu projeto de preparo.

  7. A página Histórico da versão exibe o status do gatilho de compilação que está sendo executado.

Também é possível usar essa arquitetura para enviar automaticamente atualizações do painel para outros projetos. Para cada projeto para onde você quer enviar atualizações, crie um gatilho de compilação que inicie uma versão e que envie atualizações sempre que houver uma nova confirmação para o sistema de controle de versões.

Depois que o gatilho for concluído, verifique se o painel de desenvolvimento foi implantado no preparo.

Como verificar a implantação do preparo

Verifique se o painel de desenvolvimento foi implantado no projeto de preparo do Cloud no Console do Cloud.

  1. No console do Google Cloud, acesse a página Monitoramento > Painéis.

    Acessar a página Painéis

  2. Selecione o projeto de preparo do Cloud.

  3. Clique no painel criado anteriormente neste tutorial.

  4. No painel Monitoramento de instâncias da VM do GCE, verifique se o gráfico Minha primeira alteração está disponível.

Você implantou automaticamente seu painel do projeto de desenvolvimento do Cloud no seu projeto de preparo do Cloud sem reproduzir o painel manualmente. Essa automação facilita a implantação de painéis de modo consistente nos projetos do Cloud, independentemente do número de gráficos em cada painel ou da complexidade deles.

Como criar um gatilho de compilação para enviar alterações para produção

Nesta seção, crie um gatilho de compilação que é executado quando uma solicitação de envio é analisada e mesclada com main. Esse gatilho de compilação implanta o painel de preparo na produção, usando o painel armazenado no sistema de controle de versões.

  1. No console do Google Cloud, selecione o projeto de produção.
  2. Conecte o repositório do GitHub ao projeto de produção e selecione o repositório que você criou anteriormente neste tutorial. O repositório está disponível porque o aplicativo do GitHub para Cloud Build já estava instalado no seu repositório na primeira vez que você criou um gatilho de compilação no seu projeto de preparo.
  3. Crie um gatilho de aplicativo do GitHub.

    1. Nome: insira o nome que você quer usar para o acionador.
    2. Evento: selecione Enviar para uma ramificação.
    3. Origem: selecione o repositório que você criou no GitHub anteriormente.
    4. Ramificação: insira ^main$.
    5. Configuração: selecione Arquivo de configuração do Cloud Build (YAML ou JSON)
    6. Em Variáveis de substituição, clique em Adicionar variável.
    7. Adicione os novos valores de variáveis:

      1. Variável: insira _DASHBOARD_ID.
      2. Valor: digite o valor do DASHBOARD_ID.

      Quando a versão é executada, todas as ocorrências de _DASHBOARD_ID no seu arquivo cloudbuild.yaml são substituídas pelo valor que você fornece.

  4. Clique em Criar.

Agora você tem um gatilho de compilação que é executado quando uma confirmação é enviada para seu sistema de controle de versões. Também é possível criar acionadores de compilação que são executados somente quando há alterações que correspondem a determinados critérios. Por exemplo, é possível criar acionadores que validam sua configuração em relação a um conjunto de regras.

Como conceder permissões à sua conta de serviço do Cloud Build

Em seguida, conceda à conta de serviço do Cloud Build no projeto de produção a permissão para ler e gravar painéis no projeto do Cloud.

  1. Configure o Cloud Shell para usar seu projeto de produção:

    gcloud config set project $PROD_PROJECT_ID
    
  2. Conceda à conta de serviço do Cloud Build as permissões necessárias:

    PROJECT_NUMBER="$(gcloud projects describe ${PROD_PROJECT_ID} \
      --format='get(projectNumber)')"
    
    gcloud projects add-iam-policy-binding ${PROJECT_NUMBER} \
      --member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
      --role=roles/monitoring.dashboardEditor
    

Como criar uma solicitação de envio

As alterações no painel estão agora no projeto de preparo do Cloud e estão prontas para revisão. As alterações foram enviadas ao GitHub quando você concluiu a configuração para implantar as alterações automaticamente anteriormente neste tutorial. Em seguida, crie uma solicitação de envio para iniciar o processo de revisão.

  1. Acesse a página do GitHub do repositório que você criou anteriormente neste tutorial.
  2. Clique em Comparar e enviar solicitações.

    A interface do GitHub para comparar e enviar solicitações.

  3. Digite um título e um comentário para a solicitação de envio. O título precisa resumir o que esta solicitação de envio fará. Nesse caso, o título declara que a solicitação de envio modificará o título. O comentário precisa fornecer detalhes sobre a solicitação de envio. Nesse caso, o comentário explica onde revisar as alterações, além dos resultados da aprovação da solicitação de envio.

    A interface do GitHub para abrir uma solicitação de envio.

  4. Clique em Criar solicitação de envio.

Você criou uma solicitação de envio que representa um conjunto de alterações a serem analisadas.

Como revisar a solicitação de envio

Sua solicitação de envio é analisada no projeto de preparo do Cloud e, em seguida, mesclada para implantar automaticamente as alterações na produção. As solicitações de envio geralmente são revisadas por um colega. Neste tutorial, você atuará como seu colega para revisar suas alterações. Para analisar as alterações, faça o seguinte para acessar seu projeto de preparo do Cloud:

  1. No console do Google Cloud, acesse a página Monitoramento > Painéis:

    Acessar a página Painéis

  2. Selecione o projeto de preparo do Cloud.

  3. Clique no painel que você criou anteriormente neste tutorial.

  4. No painel Monitoramento de instâncias da VM do GCE, revise a alteração de título.

Como mesclar a solicitação de envio

Após a revisão das alterações, mescle a solicitação de envio:

  1. Acesse a página de solicitação de envio do repositório que você criou anteriormente neste tutorial.
  2. Para mesclar a solicitação de envio, clique em Mesclar solicitação de envio e, em seguida, em Confirmar mesclagem.

    A interface do GitHub com &quot;Mesclar solicitação de envio&quot; em destaque.

Para ver o status do gatilho de compilação que está sendo executado, acesse a página Histórico da versão no Console do Cloud e selecione seu projeto de produção.

Após a conclusão do gatilho, verifique se o painel de preparo foi implantado na produção.

Como verificar se o painel de preparo foi implantado na produção

  1. No console do Google Cloud, acesse a página Monitoramento > Painéis:

    Acessar a página Painéis

  2. Selecione o projeto de produção do Cloud.

  3. Clique no painel criado anteriormente neste tutorial.

  4. No painel Monitoramento de instâncias da VM do GCE, verifique se o gráfico Minha primeira alteração está disponível.

Você implantou automaticamente o painel no seu projeto de preparo do Cloud no projeto de produção do Cloud sem reproduzir o painel manualmente. Essa automação facilita a implantação de painéis de modo consistente nos projetos do Cloud, independentemente do número de gráficos em cada painel ou da complexidade deles.

Limpeza

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir