Criar um monitor sintético

Neste documento, descrevemos como criar monitores sintéticos para testar a disponibilidade, a consistência e o desempenho de serviços, aplicativos, páginas da Web e APIs. Fornecer testes para o aplicativo. O monitor sintético executa esse script e registra os resultados dos testes e dados adicionais, como a latência. Para receber uma notificação quando um teste falhar, configure uma política de alertas para monitorar os resultados.

Sobre os monitores sintéticos

Um monitor sintético executa periodicamente uma função do Cloud de 2a geração de finalidade única que é implantada no Cloud Run. Ao criar o monitor sintético, você define a função do Cloud, que precisa ser escrita em Node.js, e a frequência de execução. Por exemplo, é possível configurar a Função do Cloud para interagir com uma página da Web usando o Puppeteer. Também é possível configurar a função do Cloud para interagir com uma API usando o módulo Axios. Talvez você também queira testar recursos que estão em uma rede VPC.

Para criar a função do Cloud, use um editor in-line ou faça upload de um arquivo ZIP. Se você optar por usar o editor in-line, poderá começar com o esqueleto fornecido. Depois de criar um monitor sintético, o Cloud Monitoring usa um sistema de agendamento que programa a execução periódica da função do Cloud. Embora você especifique a região em que a função do Cloud está disponível, os comandos que acionam a execução podem ser originados em qualquer região aceita pelos servidores de verificação de tempo de atividade. Para mais informações, consulte Listar endereços IP do servidor de verificação de tempo de atividade.

É possível criar uma política de alertas para ser notificado quando houver falhas no teste:

  • Ao criar um monitor sintético usando o console do Google Cloud, o comportamento padrão é criar uma política de alertas. Você fornece os canais de notificação. A política de alertas padrão é configurada para notificar você quando há duas ou mais falhas consecutivas de teste.

  • Ao criar um monitor sintético usando a API Cloud Monitoring, você precisa criar a política de alertas para monitorar o tipo de métrica uptime_check/check_passed para o recurso do Cloud Run em que a função do Cloud está executada.

Considerações sobre a frequência de execução

Você configura a frequência de execução da função do Cloud. Para determinar a frequência das execuções, considere o objetivo de nível de serviço (SLO) do seu serviço. Para detectar possíveis violações de SLO, você precisa executar os testes com frequência. No entanto, o SLO do seu serviço não é a única consideração. Você também precisa considerar como a taxa de execução se traduz em carga no serviço e nos seus custos. Cada execução fornece carga ao serviço. Portanto, quanto mais você executar a função do Cloud, mais carga será aplicada ao serviço. Para referência, o intervalo de execução padrão para verificações de tempo de atividade é de um minuto.

A frequência de execução também determina a rapidez com que você pode receber uma notificação quando o teste falhar. O monitoramento abre um incidente e envia uma notificação após a segunda falha consecutiva de um teste. Por exemplo, se a frequência de execução for de 5 minutos, poderá levar 10 minutos até que dois testes falhem. Você vai receber uma notificação após a segunda falha no teste.

Exemplo de código da função do Cloud

Para ver modelos e amostras, consulte Amostras para monitores sintéticos (em inglês). Use esses exemplos como ponto de partida para sua função do Cloud. Se você é um desenvolvedor experiente, considere usar o Gemini para gerar código para monitores sintéticos e reduzir o tempo de desenvolvimento. O uso do Gemini para gerar código está no Acesso antecipado.

O modelo genérico, que pode ser selecionado ao criar um monitor sintético usando o console do Google Cloud, é configurado para coletar dados de trace e registro para solicitações HTTP de saída. A solução aproveita o módulo auto-instrumentation-node do OpenTelemetry e o winston logger. Devido à dependência de produtos de código aberto, é possível esperar alterações na estrutura dos dados de rastreamento e registro. Portanto, os dados de registros e traces coletados devem ser usados apenas para fins de depuração.

É possível implementar sua própria abordagem para coletar dados de rastreamento e registro para solicitações HTTP de saída. Para conferir um exemplo de abordagem personalizada, consulte a classe SyntheticAutoInstrumentation.

Restrições da função do Cloud

  • O nome da função do Cloud não pode conter um sublinhado.

  • Só é possível coletar dados de rastreamento e registro para solicitações HTTP de saída quando você usa o modelo genérico.

  • As configurações de transferência de dados de entrada da função do Cloud precisam ser definidas para permitir todo o tráfego. Essa configuração garante que a primeira fase de validação realizada pelo Cloud Functions, que é feita no nível da rede, sempre seja aprovada. A segunda fase de validação determina se o autor da chamada recebeu permissão para executar a função do Cloud. A autorização depende do papel do Identity and Access Management (IAM) do autor da chamada. Por padrão, o Cloud Monitoring recebe permissão para executar a função do Cloud. Para informações sobre como visualizar ou modificar as configurações de transferência de dados de entrada, consulte Configurações de entrada.

  • Há suporte apenas para funções HTTP. Se você usar o console do Google Cloud para criar o monitor sintético, vai receber uma função padrão que consulta um URL. A origem da função padrão, que pode ser modificada, está disponível no repositório Git generic-synthetic-nodejs.

    Para informações sobre funções HTTP, consulte Como gravar funções HTTP.

  • Se você usar a API, o comando de implantação precisará especificar que a Função do Cloud é de 2a geração. Se você usa o console do Google Cloud, a implantação é feita para você. Para mais informações, consulte Implantar uma função do Cloud.

  • O ambiente de execução é restrito ao Node.js. Para mais informações, consulte . As seguintes versões do Node.js são compatíveis: 12, 14, 16, 18 e 20.

Dados coletados por monitores sintéticos

Nesta seção, descrevemos os dados coletados para o monitor sintético. Para informações sobre como ver os resultados da execução, consulte Explorar os resultados do monitor sintético.

Histórico de execução

Para cada monitor sintético, é coletado um histórico de resultados de execução. Esses dados incluem o seguinte:

  • Uma série temporal que registra o sucesso ou a falha de execuções ao longo do tempo.

  • Uma série temporal que registra a duração da execução do código. O tempo de execução da função não é registrado. Os dados de latência são gravados como uma série temporal uptime_check/request_latency para o recurso do Cloud Run em que a função do Cloud está sendo executada. Um gráfico desses dados é fornecido na página Detalhes do monitor sintético.

  • Registros que contêm informações sobre execuções de monitor sintético, por exemplo, informações sobre detalhes de teste e falha. Os registros disponíveis dependem da sua função do Cloud. Por exemplo, se você usar o modelo Mocha, os registros vão incluir informações sobre se o teste foi aprovado ou reprovado e a duração do teste. O stack trace, quando incluído, lista a linha de código que falhou, os tipos e as mensagens de erro.

  • Opcionalmente, traces e registros para solicitações HTTP de saída. Para informações sobre como coletar esses dados, consulte Latência da solicitação.

Métricas e registros da função do Cloud

Métricas e registros da função do Cloud. Esses dados, que são coletados pelo Cloud Functions, incluem informações sobre o número de execuções por segundo, o tempo de execução e o uso da memória da função.

Latência da solicitação

Os dados de latência da solicitação HTTP feita pelo monitor sintético são coletados e armazenados automaticamente pelo Cloud Trace.

Para coletar dados de trace, registro e latência para as solicitações HTTP de saída feitas pelo monitor sintético, você precisa usar o modelo genérico (link em inglês). Para mais informações, consulte Amostras de monitores sintéticos.

Antes de começar

  1. Para ter as permissões necessárias para visualizar e modificar monitores sintéticos usando o console do Google Cloud, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:

    Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

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

  2. Ative as APIs Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API.

    Ative as APIs

  3. Verifique se o projeto do Google Cloud contém a conta de serviço padrão do Compute Engine. Essa conta de serviço é criada quando você ativa a API Compute Engine e tem um nome semelhante a 12345-compute@developer.gserviceaccount.com.

    No painel de navegação do console do Google Cloud, selecione IAM e administrador e, em seguida, Contas de serviço:

    Acesse Contas de serviço

    Se a conta de serviço padrão do Compute Engine não existir, clique em Criar conta de serviço e preencha a caixa de diálogo.

  4. Verifique se a conta de serviço padrão do Compute Engine ou a conta de serviço que você criou recebeu o papel de Editor (roles/editor).

    Para visualizar os papéis concedidos à conta de serviço, faça o seguinte:

    1. No painel de navegação do console do Google Cloud, selecione IAM:

      Acessar o IAM

    2. Selecione Incluir concessões de papel fornecidas pelo Google.
    3. Se a conta de serviço usada pelo monitor sintético não estiver listada ou se ele não tiver recebido um papel que inclua as permissões na função do Cloud Trace Agent (roles/cloudtrace.agent), conceda esse papel à sua conta de serviço.
  5. Configure os canais de notificação que você quer usar para receber notificações. Recomendamos que você crie vários tipos de canais de notificação. Para mais informações, consulte Criar e gerenciar canais de notificação e Criar e gerenciar canais de notificação por API.

Criar um monitor sintético

Console

Quando você cria um monitor sintético usando o console do Google Cloud, uma nova função do Cloud (2a geração) é implantada e o monitor dela é criado. Não é possível criar um monitor sintético que monitore uma função do Cloud atual.

  1. Verifique se você ativou as APIs necessárias, se o projeto contém uma conta de serviço padrão do Compute Engine e se essa conta recebeu o papel de editor (roles/editor). Para mais informações, consulte Antes de começar.
  2. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Monitoramento sintético:

    Acesse Monitoramento sintético

  3. Selecione Criar monitor sintético.
  4. Selecione o modelo da sua função do Cloud:

    • Monitor sintético personalizado: use esse modelo quando quiser coletar dados de registro ou de rastreamento para solicitações HTTP de saída.

    • Monitor sintético Mocha: use esse modelo ao criar conjuntos de testes Mocha.

    • Verificador de links corrompidos: use esse modelo para testar um URI e um número configurável de links encontrados nesse URI. Saiba mais sobre os campos desse verificador em Criar um verificador de links corrompidos.

  5. Digite um nome para o monitor.

  6. Opcional: atualize o Tempo limite de resposta, a Frequência de verificação e adicione rótulos definidos pelo usuário.

  7. Escolha uma destas opções:

  8. Na caixa de diálogo "Função do Cloud", faça o seguinte:

    1. Digite um nome de exibição e selecione uma região. Os nomes precisam ser exclusivos em uma região.

    2. Na seção Configurações de ambiente de execução, build, conexões e segurança, faça o seguinte:

      • Na guia Conexões, verifique se a opção Permitir todo o tráfego está selecionada.

      • Revise as configurações padrão e atualize-as quando necessário.

      • No campo Conta de serviço do ambiente de execução, selecione uma conta.

      1. Edite o código gerado ou escreva ou faça upload do código para a função do Cloud:

        • Para editar o código gerado, insira seu próprio código ou carregue a função de amostra padrão, selecione Editor in-line. A função de amostra, que depende do modelo selecionado anteriormente, envia uma solicitação para um URL específico. É possível modificar a função padrão.

        • Para carregar um arquivo ZIP do seu sistema local, selecione Upload do ZIP.

        Se você fizer upload de um arquivo ZIP do seu sistema local, também precisará especificar um bucket do Cloud Storage para ele. Se você não tiver um bucket apropriado do Cloud Storage, crie um.

        • Para carregar um arquivo ZIP do Cloud Storage, selecione ZIP do Cloud Storage, escolha o bucket de armazenamento e o arquivo ZIP a ser carregado.

        Também é possível criar uma função do Cloud usando as páginas do Cloud Functions no console do Google Cloud. Para criar um monitor sintético que monitore uma cópia dessa função do Cloud, acesse a guia Origem e clique em Fazer download do arquivo zip. Em seguida, você pode fazer upload do arquivo ZIP.

      2. Clique em Aplicar função.

  9. Configure a política de alertas:

    1. Opcional: atualize o nome da política de alertas e a duração da falha antes do envio das notificações.

    2. Adicione os canais de notificação.

  10. Clique em Criar.

    A função do Cloud que você definiu é criada e implantada como 2a geração, e o monitor sintético é criado.

gcloud

Ao criar um monitor sintético usando a Google Cloud CLI ou a API Cloud Monitoring, você transmite o nome da função para a chamada de API. Portanto, só é possível criar um monitor sintético que monitore uma função do Cloud.

  1. Verifique se você ativou as APIs necessárias, se o projeto contém uma conta de serviço padrão do Compute Engine e se essa conta recebeu o papel de editor (roles/editor). Para mais informações, consulte Antes de começar.
  2. Escreva e implante a Função do Cloud de 2a geração.

    Por exemplo, para implantar a amostra synthetics-sdk-nodejs no repositório Google Cloud/synthetics-sdk-nodejs, faça o seguinte:

    1. Clone o repositório e acesse o local do código-fonte:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Implante a função do Cloud usando o comando gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      No comando gcloud functions deploy, faça o seguinte:

      • Verifique se o valor do campo FUNCTION_NAME é exclusivo na região de implantação.

      • Inclua a sinalização --gen2 e defina a região de implantação.

      • Defina o campo --entry-point da seguinte maneira:

        • Moca: SyntheticMochaSuite
        • Não é Mocha: SyntheticFunction.
      • Defina o campo --runtime como nodejs18

      • Inclua a sinalização --trigger-http.

      • O campo --ingress-settings precisa ser deixado não especificado ou definido como all.

      O Cloud Functions cria e implanta sua função do Cloud. Os resultados do comando da Google Cloud CLI incluem informações sobre a função, incluindo o nome totalmente qualificado:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Para mais informações sobre como implantar uma função, consulte Implantar uma função do Cloud.

    Para listar o Cloud Functions no seu projeto do Google Cloud, use o comando gcloud functions list:

    gcloud functions list
    

    A resposta dessa chamada é uma entrada de lista, e cada entrada lista uma função do Cloud:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Para encontrar o nome totalmente qualificado de uma função do Cloud específica, execute o comando gcloud monitoring uptime describe.

  3. Para criar o monitor sintético, execute o comando gcloud monitoring uptime create:

    gcloud monitoring uptime create DISPLAY_NAME --synthetic-target=TARGET
    

    Antes de executar o comando anterior, faça o seguinte:

    • Substitua DISPLAY_NAME pelo nome do monitor sintético.
    • Substitua TARGET pelo nome totalmente qualificado da função do Cloud.
  4. Criar uma política de alertas.

    Devido à complexidade da configuração da política de alertas, recomendamos que você acesse a página Monitores sintéticos no console do Google Cloud e use as opções para criar uma política de alertas. Com essa abordagem, a maioria dos campos da política de alertas é preenchida para você. Para criar a política de alertas usando o Console do Google Cloud, clique em Criar política na página Monitores sintéticos.

    Se você planeja usar a Google Cloud CLI ou a API Cloud Monitoring, configure o filtro da condição da seguinte maneira:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    A condição monitora série temporal de uptime_check/check_passed que são gravadas pelo monitor sintético. Certifique-se de substituir CHECK_ID pelo identificador do monitor sintético e que está incluído nos dados de resposta de um comando de criação.

    Para informações sobre como criar uma política de alertas, consulte Criar políticas de alertas usando a API.

API

Ao criar um monitor sintético usando a Google Cloud CLI ou a API Cloud Monitoring, você transmite o nome da função para a chamada de API. Portanto, só é possível criar um monitor sintético que monitore uma função do Cloud.

  1. Verifique se você ativou as APIs necessárias, se o projeto contém uma conta de serviço padrão do Compute Engine e se essa conta recebeu o papel de editor (roles/editor). Para mais informações, consulte Antes de começar.
  2. Escreva e implante a Função do Cloud de 2a geração.

    Por exemplo, para implantar a amostra synthetics-sdk-nodejs no repositório Google Cloud/synthetics-sdk-nodejs, faça o seguinte:

    1. Clone o repositório e acesse o local do código-fonte:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Implante a função do Cloud usando o comando gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      No comando gcloud functions deploy, faça o seguinte:

      • Verifique se o valor do campo FUNCTION_NAME é exclusivo na região de implantação.

      • Inclua a sinalização --gen2 e defina a região de implantação.

      • Defina o campo --entry-point da seguinte maneira:

        • Moca: SyntheticMochaSuite
        • Não é Mocha: SyntheticFunction.
      • Defina o campo --runtime como nodejs18

      • Inclua a sinalização --trigger-http.

      • O campo --ingress-settings precisa ser deixado não especificado ou definido como all.

      O Cloud Functions cria e implanta sua função do Cloud. Os resultados do comando da Google Cloud CLI incluem informações sobre a função, incluindo o nome totalmente qualificado:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Para mais informações sobre como implantar uma função, consulte Implantar uma função do Cloud.

    Para listar o Cloud Functions no seu projeto do Google Cloud, use o comando gcloud functions list:

    gcloud functions list
    

    A resposta dessa chamada é uma entrada de lista, e cada entrada lista uma função do Cloud:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Para encontrar o nome totalmente qualificado de uma função do Cloud específica, execute o comando gcloud monitoring uptime describe.

  3. Para criar um monitor sintético, faça o seguinte:

    1. Clique em projects.uptimeCheckConfigs.create para abrir a página de referência da API para o método.
    2. Clique em Testar para abrir o APIs Explorer.
    3. Defina os campos a seguir e execute o comando.

      • Campo pai: projects/PROJECT_ID.
      • No corpo da solicitação, especifique o seguinte:

        • displayName: defina como o nome de exibição do monitor sintético.
        • syntheticMonitor: defina como o nome totalmente qualificado da função do Cloud.

      Em caso de sucesso, a resposta da chamada de API será semelhante a esta:

      {
      "name": "projects/myproject/uptimeCheckConfigs/17272586127463315332",
      "displayName": "MyMonitor",
      ...
      "syntheticMonitor": {
       "cloudFunctionV2": {
          "name": "projects/myproject/locations/us-west2/functions/function-1",
          "cloudRunRevision": {
          "type": "cloud_run_revision",
          "labels": {
             "project_id": "myproject",
             "configuration_name": "",
             "location": "us-west2",
             "revision_name": "",
             "service_name": "function-1"
          }
          }
       }
      }
      }
      
  4. Criar uma política de alertas.

    Devido à complexidade da configuração da política de alertas, recomendamos que você acesse a página Monitores sintéticos no console do Google Cloud e use as opções para criar uma política de alertas. Com essa abordagem, a maioria dos campos da política de alertas é preenchida para você. Para criar a política de alertas usando o Console do Google Cloud, clique em Criar política na página Monitores sintéticos.

    Se você planeja usar a Google Cloud CLI ou a API Cloud Monitoring, configure o filtro da condição da seguinte maneira:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    A condição monitora série temporal de uptime_check/check_passed que são gravadas pelo monitor sintético. Certifique-se de substituir CHECK_ID pelo identificador do monitor sintético e que está incluído nos dados de resposta de um comando de criação.

    Para informações sobre como criar uma política de alertas, consulte Criar políticas de alertas usando a API.

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.

Para criar um monitor sintético e uma política de alertas para monitorar essa verificação, faça o seguinte:

  1. Verifique se você ativou as APIs necessárias, se o projeto contém uma conta de serviço padrão do Compute Engine e se essa conta recebeu o papel de editor (roles/editor). Para mais informações, consulte Antes de começar.

  2. Edite o arquivo de configuração do Terraform e adicione um recurso google_storage_bucket. Em seguida, aplique as alterações.

    O código a seguir define um bucket do Cloud Storage no local US:

    resource "google_storage_bucket" "gcf_source" {
       name = "gcf-v2-source-9948673986912-us"
       location = "US"
       uniform_bucket_level_access = true
    }
    
  3. Edite o arquivo de configuração do Terraform, adicione um recurso google_storage_bucket_object e aplique as alterações.

    O recurso especifica o nome do objeto no bucket e a localização do arquivo ZIP no sistema local. Por exemplo, quando você aplica o código a seguir, um arquivo com o nome example-function.zip é adicionado ao bucket de armazenamento:

    resource "google_storage_bucket_object" "object" {
       name = "example-function.zip"
       bucket = google_storage_bucket.gcf_source.name
       source = "generic-synthetic-node.js.zip"
    }
    
  4. Edite o arquivo de configuração do Terraform, adicione um recurso google_cloudfunctions2_function e aplique as alterações.

    Verifique se o recurso google_cloudfunctions2_function especifica um ambiente de execução do Node.js e o ponto de entrada usado por monitores sintéticos. Por exemplo, quando você aplica o código a seguir, uma função com o nome sm-central1 é implantada:

    resource "google_cloudfunctions2_function" "central1" {
       name = "sm-central1"
       location = "us-central1"
    
       build_config {
          runtime = "nodejs20"
          entry_point = "SyntheticFunction"
          source {
                storage_source {
                   bucket = google_storage_bucket.gcf_source.name
                   object = google_storage_bucket_object.object.name
                }
          }
       }
    
       service_config {
          max_instance_count = 1
          available_memory = "256Mi"
          timeout_seconds  = 60
       }
    }
    
  5. Para criar um monitor sintético, edite o arquivo de configuração do Terraform e adicione um recurso google_monitoring_uptime_check_config e aplique as alterações.

    Para este recurso, especifique o bloco synthetic_monitor:

    resource "google_monitoring_uptime_check_config" "synthetic" {
       display_name = "sm-central1"
       timeout = "30s"
    
       synthetic_monitor {
          cloud_function_v2 {
                name = google_cloudfunctions2_function.central1.id
          }
       }
    }
    
  6. Opcional: crie um canal de notificação e uma política de alertas.

    As etapas a seguir usam o console do Google Cloud para criar o canal de notificação e a política de alertas. Com essa abordagem, a política de alertas monitora apenas os dados gerados pelo monitor sintético.

    1. Para criar um canal de notificação, faça o seguinte:

      1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Alertas:

        Acessar Alertas

      2. Selecione Gerenciar canais de notificação.
      3. Acesse o tipo de canal que você quer adicionar, clique em Adicionar e preencha a caixa de diálogo.
    2. Para criar uma política de alertas, siga estas etapas:

      1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Monitoramento sintético:

        Acesse Monitoramento sintético

      2. Localize seu monitor sintético, selecione Mais e, em seguida, Adicionar política de alertas.
      3. Na caixa de diálogo, vá para a seção Notificações e nome, expanda Canais de notificação e faça suas seleções.
      4. Nomeie a política de alertas e clique em Criar política.

Preços

Em geral, as métricas de sistema do Cloud Monitoring são gratuitas, já as métricas de sistemas, agentes ou aplicativos externos não. As métricas faturáveis são cobradas pelo número de bytes ou de amostras ingeridas.

Para mais informações sobre os preços do Cloud Monitoring, consulte os seguintes documentos:

Resolver problemas em monitores sintéticos

Esta seção fornece informações que podem ser usadas para ajudar a resolver problemas de monitores sintéticos.

Mensagem de erro depois de ativar as APIs

Você abre o fluxo de criação para um monitor sintético e é solicitado a ativar pelo menos uma API. Depois de ativar as APIs, uma mensagem semelhante a esta será exibida:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

A mensagem de erro recomenda que você verifique se a API está ativada e informa que você precisa aguardar e repetir a ação.

Para verificar se a API está ativada, acesse a página APIs e serviços do seu projeto:

Acessar APIs e serviços

Depois de verificar se a API está ativada, continue com o fluxo de criação. A condição é resolvida automaticamente após a ativação da API ser propagada pelo back-end.

As solicitações HTTP de saída não estão sendo rastreadas

Configure o monitor sintético para coletar dados de trace para solicitações HTTP de saída. Seus dados de trace mostram apenas um período, semelhante à seguinte captura de tela:

Cloud Trace mostrando apenas um trace.

Para resolver essa situação, verifique se a conta de serviço recebeu o papel de Agente do Cloud Trace (roles/cloudtrace.agent). Um papel de Editor (roles/editor) também é suficiente.

Para visualizar os papéis concedidos à conta de serviço, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione IAM:

    Acessar o IAM

  2. Selecione Incluir concessões de papel fornecidas pelo Google.
  3. Se a conta de serviço usada pelo monitor sintético não estiver listada ou se ele não tiver recebido um papel que inclua as permissões no papel do Agente do Cloud Trace (roles/cloudtrace.agent), conceda esse papel à sua conta de serviço.

    Se você não souber o nome da sua conta de serviço, selecione Contas de serviço no menu de navegação.

Status em andamento

A página Monitores sintéticos lista um monitor sintético com status de In progress. Um status In progress significa que o monitor sintético foi criado recentemente e não há dados para exibir ou que a função falhou ao ser implantada.

Para determinar se a implantação da função falhou, tente o seguinte:

  • Verifique se o nome da função do Cloud não contém um sublinhado. Se um sublinhado estiver presente, remova-o e reimplante a função do Cloud.

  • Abra a página Detalhes do monitor sintético.

    Se a mensagem a seguir for exibida, exclua o monitor sintético.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    A mensagem de erro indica que a função foi excluída e, portanto, o monitor sintético não pode executar a função.

  • Abra a página do Cloud Functions para a função. Para abrir essa página na página Detalhes do monitor sintético, clique em Código e no nome da função.

    Se for exibida uma mensagem semelhante à seguinte, a função não foi implantada.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Para resolver essa falha, revise o código da função e corrija os erros que estão impedindo a criação ou implantação da função.

Quando você cria um monitor sintético, pode levar vários minutos para que a função seja implantada e executada.

Status do alerta

O painel Monitores sintéticos lista um monitor sintético com status Warning. Um status Warning significa que os resultados da execução são inconsistentes. Isso pode indicar um problema de design com o teste ou que o que está sendo testado tem um comportamento inconsistente.

Status com falha

A guia Monitores sintéticos lista um monitor sintético com um status de Failing. Para mais informações sobre o motivo da falha, consulte o histórico de execução mais recente.

  • Se a mensagem de erro Request failed with status code 429 for exibida, o destino da solicitação HTTP rejeitou o comando. Para resolver essa falha, você precisa alterar o destino do monitor sintético.

    O endpoint https://www.google.com rejeita solicitações feitas por monitores sintéticos.

  • Se a falha estiver retornando um tempo de execução de 0ms, é possível que a função do Cloud esteja ficando sem memória. Para resolver essa falha, edite a função do Cloud, aumente a memória para pelo menos 2 GiB e defina o campo da CPU como 1.

A exclusão falha para um monitor sintético

Você usa a API Cloud Monitoring para excluir um monitor sintético, mas a chamada de API falha com uma resposta semelhante a esta:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Para resolver a falha, exclua as políticas de alertas que monitoram os resultados do monitor sintético e, em seguida, exclua o monitor sintético.

A seguir