Acerca das etiquetas específicas da aplicação
As etiquetas específicas da aplicação referem-se a etiquetas ou atributos que são injetados em dados de registo, métricas ou rastreios. Estas etiquetas identificam o serviço ou a carga de trabalho que gerou os dados. Pode usar etiquetas específicas da aplicação como quaisquer outras etiquetas. Por exemplo, pode filtrar dados pelo ID de uma aplicação. A telemetria gerada pela infraestrutura suportada inclui automaticamente estas etiquetas. Com a instrumentação, as métricas e os rastreios escritos pela sua aplicação podem incluir estas etiquetas.
Nesta secção,
interprete a.b.{x,y} como a.b.x e a.b.y.
Os dados de métricas da instrumentação que adicionou às suas aplicações podem incluir as seguintes etiquetas de métricas:
metric.labels.apphub_application_{container,id,location}metric.labels.apphub_workload_{criticality_type,environment_type,id}
Os intervalos de rastreio gerados pela instrumentação que adicionou às suas aplicações podem incluir os seguintes atributos de recursos:
gcp.apphub.application.{container,id,location}gcp.apphub.{workload,service}.{criticality_type,environment_type,id}
Acerca das métricas do servidor HTTP OpenTelemetry
Não existem métricas do sistema para cargas de trabalho executadas no Google Kubernetes Engine que possam comunicar o nível de tráfego, a taxa de erros do servidor ou a latência para pedidos HTTP. No entanto, os valores destes sinais de ouro podem ser derivados de http.server.request.duration, que é uma métrica recolhida automaticamente pela biblioteca do cliente HTTP OpenTelemetry.
O exportador googlemanagedprometheusconverte a métrica OpenTelemetry na métrica Prometheus que tem as seguintes propriedades:http.server.request.duration
- Nome:
prometheus/http_server_request_duration_seconds/histogram - Métrica:
prometheus.googleapis.com/http_server_request_duration_seconds/histogram - Tipos de recursos:
prometheus_target - Unidade:
s - Tipo:
CUMULATIVE - Tipo de valor:
DISTRIBUTION
Quando o seu Google Cloud projeto contém a métrica http_server_request_duration_seconds, os painéis de controlo da monitorização de aplicações apresentam o nível de tráfego, a taxa de erros do servidor e a latência dos pedidos HTTP.
Para saber como configurar a sua aplicação para exportar a métrica http_server_request_duration_seconds,
consulte a secção Use o OpenTelemetry no Kubernetes deste documento.
Adicione etiquetas de aplicação aos dados de métricas
O Google Cloud Observability tenta identificar a origem das métricas do Prometheus comparando os atributos anexados às métricas do Prometheus que são enviadas para o seu projeto com os dados devolvidos pela API App Hub. O resto desta secção apresenta as configurações que permitem ao Google Cloud Observability identificar a aplicação App Hub.
Use o OpenTelemetry no Kubernetes
Para que o Google Cloud Observability anexe etiquetas de aplicações aos dados de métricas gerados pelas cargas de trabalho da sua aplicação que são executadas no Google Kubernetes Engine, faça o seguinte:
Instrumente a aplicação com o OpenTelemetry.
- Para informações gerais, consulte o artigo Instrumentação e observabilidade.
- Para ver links para exemplos de Go, Java, Node.js e Python, juntamente com informações sobre esses exemplos, consulte o artigo Vista geral dos exemplos de instrumentação.
Implemente o coletor criado pela Google ou o coletor OpenTelemetry e configure o coletor da seguinte forma:
- Exporte dados de métricas com o exportador
googlemanagedprometheus. - Configure o processador
k8sattributespara extrair metadados, como onamespace, do ambiente. - Configure o processador
transform/collisionpara definir os atributosproject_id,location,clusterenamespace. - Configure o processador
transform/aco-gkepara preencher as etiquetastop_level_controller_nameetop_level_controller_type.
Por exemplo, consulte o ficheiro
otlp-k8s-ingest/config/collector.yaml, que é o ficheiro de configuração do coletor criado pela Google. Para saber mais sobre este coletor, consulte o artigo Implemente o coletor OpenTelemetry criado pela Google no GKE.- Exporte dados de métricas com o exportador
Registe as cargas de trabalho da sua aplicação no App Hub.
Use o serviço gerido do Google Cloud para Prometheus no GKE
Para que o Google Cloud Observability anexe etiquetas de aplicações aos dados de métricas gerados pelas cargas de trabalho da sua aplicação que são executadas em clusters do Google Kubernetes Engine, faça o seguinte:
Use o Managed Service for Prometheus do Google Cloud com recolha gerida.
Implemente as suas cargas de trabalho num cluster do Google Kubernetes Engine cuja versão seja, pelo menos,
1.32.1-gke.1439000.Registe as cargas de trabalho da sua aplicação no App Hub.
O Google Cloud Managed Service for Prometheus descobre os valores das etiquetas de aplicações através dos metadados de descoberta de serviços e, em seguida, adiciona as etiquetas top_level_controller_{name,type} ao targetLabels.metadata.
Durante o carregamento de métricas, o Google Cloud Observability usa as etiquetas top_level_controller_{name,type}e a API App Hub para identificar a sua aplicação App Hub e adicionar as etiquetas adequadas aos seus dados de métricas.
Use o Cloud Run
Para que o Google Cloud Observability anexe etiquetas de aplicações aos dados de métricas gerados pelas suas cargas de trabalho do Cloud Run, faça o seguinte:
Instrumente a sua aplicação através do OpenTelemetry ou do sidecar do Managed Service for Prometheus para o Cloud Run. Para informações sobre estas abordagens, consulte os seguintes documentos:
Registe as cargas de trabalho da sua aplicação no App Hub.
Valide as etiquetas de métricas
Para verificar se a sua aplicação está a enviar métricas do Prometheus para o seu projeto, faça o seguinte:
-
Confirme se a sua aplicação está a enviar métricas do Prometheus para o seu projeto:
-
Na Google Cloud consola, aceda à página leaderboard Explorador de métricas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
- No elemento Métrica, expanda o menu Selecionar uma métrica,
introduza
Prometheus Targetna barra de filtros e, de seguida, use os submenus para selecionar um tipo de recurso e uma métrica específicos:- No menu Recursos ativos, selecione Alvo do Prometheus.
- Para selecionar uma métrica, use os menus Categorias de métricas ativas e Métricas ativas.
- Clique em Aplicar.
Para adicionar filtros que removem séries cronológicas dos resultados da consulta, use o elemento Filter.
- Configure a forma como os dados são vistos.
Para ver as etiquetas, expanda o menu Filtrar. Cada entrada no Filtro corresponde a uma etiqueta.
Para mais informações sobre como configurar um gráfico, consulte o artigo Selecione métricas quando usar o explorador de métricas.
Se não vir nenhuma métrica do Prometheus, reveja a sua configuração.
-
Se as suas métricas do Prometheus não contiverem etiquetas de aplicação, faça o seguinte:
Confirme que registou a sua carga de trabalho ou serviço no App Hub.
Examine os registos para determinar se existem erros.
Por exemplo, se implementar um OpenTelemetry Collector ou o Collector criado pela Google e estiver a ser executado no Google Kubernetes Engine, pode fazer o seguinte:
-
Na Google Cloud consola, aceda à página Workloads:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda seja Kubernetes Engine.
- Selecione a implementação do coletor e, de seguida, selecione o separador Registos.
-
Se estiver a usar um OpenTelemetry Collector ou o Collector criado pela Google, então reveja a configuração do seu Collector. O seu coletor tem de fazer o seguinte:
- Exporte dados de métricas com o exportador
googlemanagedprometheus. - Configure o processador
k8sattributespara extrair metadados, como onamespace, do ambiente. - Configure o processador
transform/collisionpara definir os atributosproject_id,location,clusterenamespace. - Configure o processador
transform/aco-gkepara preencher as etiquetastop_level_controller_nameetop_level_controller_type.
Para ver um exemplo, consulte o ficheiro de configuração do coletor criado pela Google:
otlp-k8s-ingest/config/collector.yaml.- Exporte dados de métricas com o exportador
Adicione atributos de aplicação a intervalos de rastreio
Não instrumenta a sua aplicação de forma que os atributos específicos da aplicação sejam anexados aos intervalos enviados para o seu projeto do Google Cloud . Em alternativa, o Google Cloud Observability usa atributos de recursos do OpenTelemetry e a API App Hub para identificar a aplicação App Hub associada a um intervalo e, em seguida, adiciona os atributos específicos da aplicação antes de armazenar o intervalo.
Para que o Google Cloud Observability anexe atributos de recursos específicos da aplicação aos dados de rastreio gerados pelos serviços e cargas de trabalho da aplicação, faça o seguinte:
Instrumente a sua aplicação com o OpenTelemetry e configure o exportador para enviar dados de rastreio para o ponto final da API Telemetry (OTLP).
Recomendamos uma exportação baseada em recolhedores. Os seguintes documentos descrevem os coletores que anexam todos os atributos necessários aos dados do intervalo:
- Implemente o coletor OpenTelemetry criado pela Google no Google Kubernetes Engine.
- Implemente o coletor OpenTelemetry criado pela Google no Cloud Run.
- Implemente o OpenTelemetry Collector no SO otimizado para contentores.
Se não usar um dos coletores anteriores, tem de configurar a instrumentação ou o coletor para anexar todos os atributos necessários.
Implemente os seus serviços e cargas de trabalho na Infraestrutura suportada.
Registe os seus serviços e cargas de trabalho no App Hub.
Para mais informações sobre estes atributos, consulte as Google Cloud convenções semânticas do App Hub.
Atributos obrigatórios
Esta secção aplica-se a configurações em que não usa um dos coletores recomendados. Por exemplo, pode querer escrever o seu próprio coletor ou preferir exportar diretamente os dados de rastreio.
Atributos que identificam a localização do projeto e do recurso
Defina os seguintes atributos:
cloud.provider: definido como"gcp".cloud.account.id: definido como o ID do seu projeto.cloud.availability_zoneoucloud.region: defina a zona ou região onde os seus recursos estão localizados. Pode definir ambos os atributos.
Os detetores de recursos podem ajudar a definir os atributos anteriores:
resourcedetectionprocessor- Go: Google Cloud resource detector
- Java:
opentelemetry-java-contrib/gcp-resources - Node.js:
resource-detector-gcp - Python:
opentelemetry-resourcedetector-gcp
Atributos para cargas de trabalho do Google Kubernetes Engine
Para uma carga de trabalho do Google Kubernetes Engine, configure o seu coletor ou instrumentação para fazer o seguinte:
- Extrair metadados, como o
namespace, do ambiente. - Extraia metadados relevantes do processador
k8sattributes. - Defina os atributos
project_id,location,clusterenamespace. - Defina as etiquetas
top_level_controller_nameetop_level_controller_type.
Para um exemplo baseado no coletor, consulte
otlp-k8s-ingest/config/collector.yaml.
Esse coletor usa o processador
k8sattributesprocessor.
Atributos para cargas de trabalho de VMs
Se implementar a sua aplicação numa VM, essa VM tem de estar associada a um grupo de instâncias geridas (GIG). Também tem de anexar os seguintes atributos:
gcp.gce.instance_group_manager.namegcp.gce.instance_group_manager.regionougcp.gce.instance_group_manager.zone