Veja a latência dos pedidos de apps
Saiba como recolher e ver dados de latência das suas aplicações:
- Crie um cluster do Google Kubernetes Engine (GKE) através da CLI do Google Cloud. 
- Transfira e implemente uma aplicação de exemplo no seu cluster. 
- Crie um rastreio enviando um pedido HTTP para a aplicação de exemplo. 
- Veja as informações de latência do rastreio que criou. 
- Limpar. 
Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:
Antes de começar
- 
As restrições de segurança definidas pela sua organização podem impedir a conclusão dos seguintes passos. Para informações de resolução de problemas, consulte o artigo Desenvolva aplicações num ambiente Google Cloud restrito. 
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Google Kubernetes Engine and Cloud Trace APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Google Kubernetes Engine and Cloud Trace APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- Na barra de ferramentas, clique em terminal - Ativar Cloud Shell e, de seguida, siga os passos no Cloud Shell.
- Crie um cluster: - gcloud container clusters create cloud-trace-demo --zone us-central1-c- O comando anterior, cuja conclusão demora vários minutos, cria um cluster padrão com o nome - cloud-trace-demona zona- us-central1-c.
- Configure o - kubectlpara atualizar automaticamente as respetivas credenciais de modo a usar a mesma identidade que a CLI Google Cloud:- gcloud container clusters get-credentials cloud-trace-demo --zone us-central1-c
- Valide o acesso ao seu cluster: - kubectl get nodes- Um exemplo do resultado deste comando é: - NAME STATUS ROLES AGE VERSION gke-cloud-trace-demo-default-pool-063c0416-113s Ready <none> 78s v1.22.12-gke.2300 gke-cloud-trace-demo-default-pool-063c0416-1n27 Ready <none> 79s v1.22.12-gke.2300 gke-cloud-trace-demo-default-pool-063c0416-frkd Ready <none> 78s v1.22.12-gke.2300
- Clonar uma app Python do GitHub: - git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
- Execute o seguinte comando para implementar a aplicação de exemplo: - cd python-docs-samples/trace/cloud-trace-demo-app-opentelemetry && ./setup.sh- O script - setup.shdemora vários minutos a ser concluído.- O script configura três serviços através de uma imagem pré-criada e, em seguida, aguarda que todos os recursos sejam aprovisionados. As cargas de trabalho têm os nomes - cloud-trace-demo-a,- cloud-trace-demo-be- cloud-trace-demo-c.- Um exemplo do resultado deste comando é: - deployment.apps/cloud-trace-demo-a is created service/cloud-trace-demo-a is created deployment.apps/cloud-trace-demo-b is created service/cloud-trace-demo-b is created deployment.apps/cloud-trace-demo-c is created service/cloud-trace-demo-c is created Wait for load balancer initialization complete...... Completed.
- 
Na Google Cloud consola, aceda à página Explorador de rastreios: Aceda ao Explorador de rastreios Também pode encontrar esta página através da barra de pesquisa. A captura de ecrã seguinte mostra o resultado da execução do comando curlvárias vezes. O gráfico apresenta dados de latência agregados para intervalos, que descrevem suboperações de rastreio.
- Para ver um rastreio em detalhe, selecione um intervalo no gráfico ou uma linha na tabela. - É apresentada a caixa de diálogo de detalhes do rastreio, conforme mostrado na captura de ecrã seguinte: - Um gráfico de Gantt apresenta informações sobre o rastreio selecionado. A primeira linha no gráfico de Gantt destina-se ao rastreio e cada linha seguinte é um intervalo no rastreio. 
- Para ver informações detalhadas sobre um intervalo, no gráfico de Gantt, selecione o intervalo. 
- A aplicação importa vários pacotes OpenTelemetry: 
- A aplicação instrumenta pedidos Web com contexto de rastreio e rastreia automaticamente os controladores Flask e os pedidos a outros serviços: 
- A aplicação configura o exportador do Cloud Trace como um fornecedor de rastreios, que propaga o contexto de rastreio no formato do Cloud Trace: 
- O seguinte fragmento de código mostra como enviar pedidos em Python. O OpenTelemetry propaga implicitamente o contexto do rastreio para si com os seus pedidos de saída: 
- kubectlobtém o endereço IP do serviço denominado- cloud-trace-demo-a.
- Em seguida, o comando curlenvia o pedido HTTP para o serviçoa.
- O serviço arecebe o pedido HTTP e envia um pedido ao serviçob.
- O serviço brecebe o pedido HTTP e envia um pedido ao serviçoc.
- O serviço crecebe o pedido HTTP do serviçobe devolve a stringHello, I am service Cao serviçob.
- O serviço brecebe a resposta do serviçoc, anexa-a à stringAnd I am service Be devolve o resultado ao serviçoa.
- O serviço arecebe a resposta do serviçobe anexa-a à stringHello, I am service A.
- A resposta do serviço aé impressa no Cloud Shell.
Crie um cluster do GKE
Este guia cria um cluster do GKE padrão. Se usar o modo Autopilot para o Google Kubernetes Engine ou se ativar a Workload Identity Federation para o GKE, tem de configurar a sua aplicação para usar a Workload Identity Federation para o GKE.
Transfira e implemente uma aplicação
Transfira e implemente uma aplicação Python que use a framework Flask e o pacote OpenTelemetry. A aplicação é descrita na secção Acerca da app desta página.
No Cloud Shell, faça o seguinte:
Crie dados de rastreio
Um rastreio descreve o tempo que uma aplicação demora a concluir uma única operação.
Para criar um rastreio, execute o seguinte comando no Cloud Shell:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
A resposta do comando anterior tem o seguinte aspeto:
Hello, I am service A
And I am service B
Hello, I am service C
Pode executar o comando curl várias vezes para gerar várias
rastreios.
Veja os dados de latência
Acerca da aplicação
A aplicação de exemplo usada neste guia de início rápido está disponível num repositório do GitHub. Este repositório contém informações sobre como usar a aplicação em ambientes que não sejam o Cloud Shell. A aplicação de exemplo está escrita em Python, usa a framework Flask e os pacotes OpenTelemetry, e é executada num cluster do GKE.
Este guia cria um cluster do GKE padrão. Se usar o modo Autopilot para o Google Kubernetes Engine ou se ativar a Workload Identity Federation para o GKE, tem de configurar a sua aplicação para usar a Workload Identity Federation para o GKE.
Instrumentação
O ficheiro app.py no repositório do GitHub,
contém a instrumentação necessária para capturar e enviar dados de rastreio
para o seu projeto Google Cloud :
Como funciona a candidatura
Para maior clareza, nesta secção, cloud-trace-demo é omitido dos nomes dos serviços. Por exemplo, o serviço cloud-trace-demo-c é referenciado como c.
Esta aplicação cria três serviços denominados a, b e c. O serviço a está configurado para chamar o serviço b, e o serviço b está configurado para chamar o serviço c.
Para ver detalhes sobre a configuração dos serviços, consulte os ficheiros YAML no
repositório do GitHub.
Quando enviou um pedido HTTP ao serviço a neste início rápido,
usou o seguinte comando curl:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
O comando curl funciona da seguinte forma:
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
Se criou um novo projeto e já não precisa dele, elimine o projeto.
Se usou um projeto existente, faça o seguinte:
- Para eliminar o cluster, no Cloud Shell, execute o seguinte comando: - gcloud container clusters delete cloud-trace-demo --zone us-central1-c
O que se segue?
- Para obter informações sobre os idiomas e as plataformas suportados, consulte o artigo Vista geral do Cloud Trace.
- Para ver detalhes sobre como instrumentar as suas aplicações, consulte: 
- Para mais informações sobre a janela Explorador de rastreios, consulte o artigo Encontre e veja rastreios. 
- Para saber mais sobre a gestão de clusters do GKE, consulte o kubectl.