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.
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.
-
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.create
permission. 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.enable
permission. 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-demo
na zonaus-central1-c
.Configure o
kubectl
para 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.sh
demora 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-b
ecloud-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
curl
vá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:
kubectl
obtém o endereço IP do serviço denominadocloud-trace-demo-a
.- Em seguida, o comando
curl
envia o pedido HTTP para o serviçoa
. - O serviço
a
recebe o pedido HTTP e envia um pedido ao serviçob
. - O serviço
b
recebe o pedido HTTP e envia um pedido ao serviçoc
. - O serviço
c
recebe o pedido HTTP do serviçob
e devolve a stringHello, I am service C
ao serviçob
. - O serviço
b
recebe a resposta do serviçoc
, anexa-a à stringAnd I am service B
e devolve o resultado ao serviçoa
. - O serviço
a
recebe a resposta do serviçob
e 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.