Este documento descreve 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. Você fornece testes para seu 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.
Esse recurso só é compatível com projetos Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
Sobre os monitores sintéticos
Um monitor sintético executa periodicamente uma função do Cloud Run de segunda geração de finalidade única implantada no Cloud Run. Ao criar o monitor sintético, você define a função do Cloud Run, que precisa ser escrita em Node.js, e a frequência de execução. Por exemplo, é possível configurar a função do Cloud Run para interagir com uma página da Web usando o Puppeteer. Também é possível configurar sua função do Cloud Run para interagir com uma API usando o módulo Axios. Também é possível testar recursos em uma rede VPC.
Para criar sua função do Cloud Run, use um editor in-line ou faça upload de um arquivo ZIP. Se você optar por usar o editor inline, poderá começar com um esqueleto fornecido. Depois de criar um monitor sintético, o Cloud Monitoring usa um sistema de programação que agenda a execução periódica da sua função do Cloud Run. Embora você especifique a região em que a função do Cloud Run existe, os comandos que acionam a execução podem ter origem em qualquer região compatível com os servidores de verificação de disponibilidade. Para mais informações, consulte Listar endereços IP do servidor de verificação de tempo de atividade.
Crie uma política de alertas para receber notificações quando houver falhas de teste:
Ao criar um monitor sintético usando o console 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 houver duas ou mais falhas consecutivas no teste.
Ao criar um monitor sintético usando a API Cloud Monitoring, é necessário criar a política de alertas para monitorar o tipo de métrica
uptime_check/check_passed
do recurso do Cloud Run em que a função do Cloud Run está sendo executada.
Considerações sobre a frequência de execução
Você configura a frequência com que a função do Cloud Run é executada. 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, é necessário executar os testes com frequência. No entanto, o SLO do seu serviço não é a única consideração. Também é preciso considerar como a taxa de execuções se traduz em carga no serviço e em custos. Cada execução fornece carga no seu serviço. Portanto, quanto mais você executa sua função do Cloud Run, mais carga é aplicada ao serviço. Para referência, o intervalo de execução padrão das verificações de tempo de atividade é de um minuto.
A frequência de execução também determina a rapidez com que você pode ser notificado quando o teste falha. O Monitoring 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, pode levar 10 minutos até que haja dois testes com falha. Você vai receber uma notificação após a segunda falha no teste.
Exemplo de código de função do Cloud Run
Para modelos e exemplos, consulte Exemplos de monitores sintéticos. Use esses exemplos como ponto de partida para sua função do Cloud Run. Se você é um desenvolvedor experiente, considere usar o Gemini para gerar código para monitores sintéticos e reduzir seu tempo de desenvolvimento. O uso do Gemini para gerar código está em pré-lançamento público.
O modelo genérico, que pode ser selecionado ao criar um monitor sintético usando o console Google Cloud , está configurado para coletar dados de rastreamento e de registros de solicitações HTTP de saída. A solução usa o módulo auto-instrumentation-node do OpenTelemetry e o logger Winston. Devido à dependência de produtos de código aberto, espere mudanças na estrutura dos dados de rastreamento e de registros. Portanto, os dados de rastreamento e registro coletados devem ser usados apenas para fins de depuração.
Você pode implementar sua própria abordagem para coletar dados de rastreamento e registro de solicitações HTTP
de saída. Para um exemplo de abordagem personalizada, consulte a classe SyntheticAutoInstrumentation
.
Configuração da função do Cloud Run
Ao configurar a função do Cloud Run, especifique o ambiente de execução, o build, as conexões e as configurações de segurança ou aceite as configurações padrão:
O valor padrão da memória alocada pode não ser suficiente. Recomendamos que você defina esse campo como pelo menos 2 GiB.
O valor padrão das configurações de transferência de dados de entrada da sua função do Cloud Run é permitir todo o tráfego. Você pode usar essa configuração ou uma mais restritiva.
Quando você permite todo o tráfego, a primeira fase de validação realizada pelo Cloud Run functions, que é feita no nível da rede, sempre é aprovada. A segunda fase da validação determina se o autor da chamada recebeu permissão para executar a função do Cloud Run. A autorização depende do papel do Identity and Access Management (IAM) do caller. Por padrão, o Cloud Monitoring recebe permissão para executar sua função do Cloud Run. Para informações sobre como acessar ou modificar as configurações de transferência de dados de entrada, consulte Configurações de entrada.
Restrições das funções do Cloud Run
O nome da função do Cloud Run não pode conter um sublinhado.
Só é possível coletar dados de rastreamento e de registros para solicitações HTTP de saída quando você usa o modelo genérico.
Somente funções HTTP são aceitas. Se você usar o console Google Cloud para criar seu monitor sintético, uma função padrão que consulta um URL será fornecida. 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 Escrever funções HTTP.
Se você usar a API, o comando de implantação precisará especificar que a função do Cloud Run é de segunda geração. Se você usa o consoleGoogle Cloud , a implantação é feita automaticamente. Para mais informações, consulte Implantar uma função do Cloud Run.
O ambiente de execução é restrito ao Node.js. Para mais informações, consulte Nó. As seguintes versões do Node.js são compatíveis: 12, 14, 16, 18 e 20.
Dados coletados por monitores sintéticos
Esta seção descreve os dados coletados para seu monitor sintético. Para informações sobre como ver os resultados da execução, consulte Analisar os resultados de monitores sintéticos.
Histórico de execução
Para cada monitor sintético, um histórico de resultados de execução é coletado. Esses dados incluem o seguinte:
Uma série temporal que registra o sucesso ou a falha das 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 Run 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, como informações sobre o teste e detalhes da falha. Os registros disponíveis dependem da sua função do Cloud Run. 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 dele. O stack trace, quando incluído, lista a linha de código que falhou, os tipos de erro e as mensagens de erro.
Opcionalmente, rastreamentos e registros de solicitações HTTP de saída. Para informações sobre como coletar esses dados, consulte Latência de solicitação.
Métricas e registros de funções do Cloud Run
Métricas e registros da função do Cloud Run. Esses dados, coletados pelo Cloud Run functions, incluem informações sobre o número de execuções por segundo, o tempo de execução e a utilização da memória da sua 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 rastreamento, registro e latência das solicitações HTTP de saída feitas pelo monitor sintético, use o modelo genérico. Para mais informações, consulte Exemplos de monitores sintéticos.
Antes de começar
Conclua as etapas a seguir no projeto do Google Cloud que vai armazenar o monitor sintético:
-
Para receber 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:
-
Editor do Monitoring (
roles/monitoring.editor
) -
Desenvolvedor do Cloud Functions (
roles/cloudfunctions.developer
)
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.
-
Editor do Monitoring (
-
Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.
Verifique se o projeto 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 console Google Cloud , acesse a página Contas de serviço:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
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.
Verifique se a conta de serviço padrão do Compute Engine ou a conta de serviço criada recebeu o papel de Editor (
roles/editor
).Para conferir os papéis concedidos à sua conta de serviço, faça o seguinte:
-
No console do Google Cloud , acesse a página IAM:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
- Selecione Incluir concessões de papel fornecidas pelo Google.
- Se a conta de serviço usada pelo monitor sintético não estiver listada ou se ela não tiver recebido um papel que inclua as permissões do papel de agente do Cloud Trace (
roles/cloudtrace.agent
), conceda esse papel à conta de serviço.
-
- 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.
-
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
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud .
Criar um monitor sintético
Console
Ao criar um monitor sintético usando o console Google Cloud , uma nova função do Cloud Run (2ª geração) é implantada e o monitor dessa função é criado. Não é possível criar um monitor sintético que monitore uma função do Cloud Run.
- Verifique se você ativou as APIs
necessárias, se o projeto tem
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. -
No console Google Cloud , acesse a página
Monitoramento sintético:
Acessar Monitoramento sintético
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
- Selecione Criar monitor sintético.
Selecione o modelo para sua função do Cloud Run:
Monitor sintético personalizado: use esse modelo quando quiser coletar dados de registros ou rastreamentos para solicitações HTTP de saída.
Monitor sintético do Mocha: use este modelo ao escrever conjuntos de testes do Mocha.
Verificador de links quebrados: use este modelo para testar um URI e um número configurável de links encontrados nesse URI. Para informações sobre os campos desse verificador, consulte Criar um verificador de links quebrados.
Insira um nome para o monitor.
Opcional: atualize o Tempo limite de resposta, a Frequência de verificação e adicione rótulos definidos pelo usuário.
Escolha uma destas opções:
Se você tiver acesso ao Gemini Code Assist neste projeto e quiser ajuda para escrever seu código, clique em Quero ajuda para programar. Esse recurso está em pré-lançamento público. Para orientações sobre comandos, consulte Saiba como escrever comandos para monitores sintéticos.
Quando estiver satisfeito com o código, clique em Inserir na função do Cloud.
Clique em Criar função.
Na caixa de diálogo da função do Cloud Run, faça o seguinte:
Insira um nome de exibição e selecione uma região. Os nomes precisam ser exclusivos em uma região.
Na seção Configurações de ambiente de execução, build, conexões e segurança, faça o seguinte:
Revise as configurações padrão e atualize-as quando necessário.
No campo Conta de serviço de tempo de execução, selecione uma conta de serviço.
Edite o código gerado ou escreva ou faça upload do código para sua função do Cloud Run:
Para editar o código gerado, insira seu próprio código ou carregue a função de amostra padrão e selecione Editor in-line. A função de exemplo, que depende do modelo selecionado anteriormente, envia uma solicitação para um URL específico. Você pode modificar a função padrão.
Para carregar um arquivo ZIP do seu sistema local, selecione Upload de ZIP.
Se você fizer upload de um arquivo zip do seu sistema local, também será necessário especificar um bucket do Cloud Storage para ele. Se você não tiver um bucket do Cloud Storage adequado, crie um.
Para carregar um arquivo ZIP do Cloud Storage, selecione ZIP do Cloud Storage, escolha o bucket de armazenamento e selecione o arquivo ZIP para carregar.
Também é possível criar uma função do Cloud Run usando as páginas do Cloud Run functions no console Google Cloud . Para criar um monitor sintético que monitore uma cópia dessa função do Cloud Run, acesse a guia Origem e clique em Fazer download do arquivo zip. Em seguida, faça upload do arquivo ZIP.
Clique em Aplicar função.
Configure a política de alertas:
Opcional: atualize o nome da política de alertas e a duração da falha antes do envio das notificações.
Adicione os canais de notificação.
Clique em Criar.
A função do Cloud Run definida é criada e implantada como 2ª 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 Run.
- Verifique se você ativou as APIs
necessárias, se o projeto tem
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. - Configure a Google Cloud CLI para definir um
projeto padrão usando o
comando
gcloud config set
:gcloud config set project PROJECT_ID
Antes de executar o comando anterior, substitua o seguinte:
- PROJECT_ID: o identificador do projeto. Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
- Escreva e implante sua função do Cloud Run de 2ª geração.
Por exemplo, para implantar a amostra
synthetics-sdk-nodejs
no repositórioGoogle Cloud/synthetics-sdk-nodejs
, faça o seguinte: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
Implante a função do Cloud Run 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 flag
--gen2
e defina a região de implantação.Defina o campo
--entry-point
da seguinte forma:- Mocha:
SyntheticMochaSuite
- Não é Mocha:
SyntheticFunction
.
- Mocha:
Defina o campo
--runtime
comonodejs18
Inclua a flag
--trigger-http
.Defina o campo
--ingress-settings
quando não quiser usar a configuração padrão, que permite todo o tráfego.
O Cloud Run functions cria e implanta a função do Cloud Run. 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 Run.
Para listar as funções do Cloud Run no seu projeto Google Cloud , use o comando
gcloud functions list
:gcloud functions list
A resposta dessa chamada é uma lista de entradas, cada uma listando uma função do Cloud Run:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
Para encontrar o nome totalmente qualificado de uma função específica do Cloud Run, execute o comando
gcloud monitoring uptime describe
. 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, substitua o seguinte:
- DISPLAY_NAME: o nome do monitor sintético.
- TARGET: o nome totalmente qualificado da sua função do Cloud Run.
Crie 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 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 consoleGoogle 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
gravadas pelo monitor sintético. Substitua CHECK_ID pelo identificador do monitor sintético, 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:
Instale e configure o Terraform para seu projeto. Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
Verifique se você ativou as APIs necessárias, se o projeto tem 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.Edite o arquivo de configuração do Terraform e adicione um recurso
google_storage_bucket
. Em seguida, aplique as mudanças.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 }
Edite o arquivo de configuração do Terraform e adicione um recurso
google_storage_bucket_object
e aplique as mudanças.O recurso especifica o nome do objeto no bucket e o local do arquivo ZIP no sistema local. Por exemplo, ao aplicar o código a seguir, um arquivo com o nome
example-function.zip
é adicionado ao seu 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" }
Edite o arquivo de configuração do Terraform e adicione um recurso
google_cloudfunctions2_function
e aplique as mudanças.Verifique se o recurso
google_cloudfunctions2_function
especifica um ambiente de execução do Node.js e o ponto de entrada usado pelos monitores sintéticos. Por exemplo, ao aplicar o código a seguir, uma função com o nomesm-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 } }
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 mudanças.Para esse 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 } } }
Opcional: crie um canal de notificação e uma política de alertas.
As etapas a seguir usam o console Google Cloud para criar o canal de notificação e a política de alertas. Essa abordagem garante que a política de alertas monitore apenas os dados gerados pelo monitor sintético.
Para criar um canal de notificação, faça o seguinte:
-
No console Google Cloud , acesse a página notifications Alertas:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Selecione Gerenciar canais de notificação.
- Acesse o tipo de canal que você quer adicionar, clique em Adicionar e preencha a caixa de diálogo.
-
Para criar uma política de alertas, siga estas etapas:
-
No console Google Cloud , acesse a página
Monitoramento sintético:
Acessar Monitoramento sintético
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Localize seu monitor sintético, selecione more_vert Mais e clique em Adicionar política de alerta.
- Na caixa de diálogo, acesse a seção Notificações e nome, expanda Canais de notificação e faça suas seleções.
- Dê um nome à política de alertas e clique em Criar política.
-
REST
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 Run.
- Verifique se você ativou as APIs
necessárias, se o projeto tem
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. - Configure a Google Cloud CLI para definir um
projeto padrão usando o
comando
gcloud config set
:gcloud config set project PROJECT_ID
Antes de executar o comando anterior, substitua o seguinte:
- PROJECT_ID: o identificador do projeto. Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
- Escreva e implante sua função do Cloud Run de 2ª geração.
Por exemplo, para implantar a amostra
synthetics-sdk-nodejs
no repositórioGoogle Cloud/synthetics-sdk-nodejs
, faça o seguinte: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
Implante a função do Cloud Run 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 flag
--gen2
e defina a região de implantação.Defina o campo
--entry-point
da seguinte forma:- Mocha:
SyntheticMochaSuite
- Não é Mocha:
SyntheticFunction
.
- Mocha:
Defina o campo
--runtime
comonodejs18
Inclua a flag
--trigger-http
.Defina o campo
--ingress-settings
quando não quiser usar a configuração padrão, que permite todo o tráfego.
O Cloud Run functions cria e implanta a função do Cloud Run. 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 Run.
Para listar as funções do Cloud Run no seu projeto Google Cloud , use o comando
gcloud functions list
:gcloud functions list
A resposta dessa chamada é uma lista de entradas, cada uma listando uma função do Cloud Run:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
Para encontrar o nome totalmente qualificado de uma função específica do Cloud Run, execute o comando
gcloud monitoring uptime describe
. Para criar um monitor sintético, faça o seguinte:
- Clique em
projects.uptimeCheckConfigs.create
para abrir a página de referência da API do método. - Clique em Testar para abrir o APIs Explorer.
Defina os campos a seguir e execute o comando.
Campo "parent": o projeto em que o monitor sintético será criado. Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado. Esse campo tem o seguinte formato:
projects/PROJECT_ID
No corpo da solicitação, especifique o seguinte:
displayName
: defina como o nome de exibição do seu monitor sintético.syntheticMonitor
: defina como o nome totalmente qualificado da sua função do Cloud Run.
Se a operação for bem-sucedida, 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" } } } } }
- Clique em
Crie 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 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 consoleGoogle 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
gravadas pelo monitor sintético. Substitua CHECK_ID pelo identificador do monitor sintético, 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.
Preços
Em geral, as métricas do sistema do Cloud Monitoring são gratuitas, e as métricas de sistemas, agentes ou aplicativos externos não são. As métricas faturáveis são cobradas pelo número de bytes ou de amostras ingeridas.
Para mais informações, consulte as seções do Cloud Monitoring na página de preços do Google Cloud Observability.
Resolver problemas com monitores sintéticos
Nesta seção, você encontra informações para ajudar a resolver problemas com seus monitores sintéticos.
Mensagem de erro após ativar as APIs
Você abre o fluxo de criação de um monitor sintético e recebe uma solicitação para 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 aguarde para tentar a ação novamente.
Para verificar se a API está ativada, acesse a página APIs e serviços do seu projeto:
Depois de verificar se a API está ativada, continue com o fluxo de criação. A condição é resolvida automaticamente depois que a ativação da API é propagada pelo back-end.
As solicitações HTTP de saída não estão sendo rastreadas
Você configura o monitor sintético para coletar dados de rastreamento de solicitações HTTP de saída. Os dados de rastreamento mostram apenas um período, semelhante à seguinte captura de tela:
Para resolver essa situação, verifique se a conta de serviço tem o papel de agente do Cloud Trace (
roles/cloudtrace.agent
). O papel de editor (roles/editor
) também é suficiente.Para conferir os papéis concedidos à sua conta de serviço, faça o seguinte:
-
No console do Google Cloud , acesse a página IAM:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.
- Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta com app ativado.
- Selecione Incluir concessões de papel fornecidas pelo Google.
Se a conta de serviço usada pelo monitor sintético não estiver listada ou não tiver recebido um papel que inclua as permissões do papel de agente do Cloud Trace (
roles/cloudtrace.agent
), conceda esse papel à conta de serviço.Se você não souber o nome da sua conta de serviço, no menu de navegação, selecione Contas de serviço.
Status "Em andamento"
A página Monitores sintéticos lista um monitor sintético com o status
In progress
. Um statusIn progress
significa que o monitor sintético foi criado recentemente e não há dados para mostrar ou que a implantação da função falhou.Para determinar se a implantação da função falhou, faça o seguinte:
Verifique se o nome da função do Cloud Run não contém um sublinhado. Se houver um sublinhado, remova-o e implante novamente a função do Cloud Run.
Abra a página Detalhes do monitor sintético.
Se você vir a seguinte mensagem, 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 executá-la.
Abra a página de funções do Cloud Run para a função. Para abrir essa página na página Detalhes do monitor sintético, clique em Código e depois no nome da função.
Se você vir uma mensagem semelhante a esta, a implantação da função falhou.
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.
Ao criar um monitor sintético, pode levar vários minutos para que a função seja implantada e executada.
Status de alerta
A página Monitores sintéticos lista um monitor sintético com o status
Warning
. Um statusWarning
significa que os resultados da execução são inconsistentes. Isso pode indicar um problema de design com seu teste ou que o que está sendo testado tem um comportamento inconsistente.Status de falha
A lista Monitores sintéticos mostra um monitor sintético com o status
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 mostrada, o destino da solicitação HTTP rejeitou o comando. Para resolver essa falha, mude o destino do seu 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
, a função do Cloud Run pode estar ficando sem memória. Para resolver essa falha, edite a função do Cloud Run, aumente a memória para pelo menos 2 GiB e defina o campo "CPU" como1
.
Falha ao excluir 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
- Exemplos de monitores sintéticos
- Gerenciar monitores sintéticos
- Analisar os resultados de monitores sintéticos
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-28 UTC.
- Verifique se você ativou as APIs
necessárias, se o projeto tem
uma conta de serviço padrão do Compute Engine e se essa conta recebeu
o papel de Editor (