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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Trace APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Trace APIs.
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 Google Cloud CLI: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 para o 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.