Neste documento, mostramos como enviar métricas diretamente de aplicativos
para o endpoint do OTLP usando um SDK e o exportador gRPC, que é
o exportador recomendado para uso com SDKs.
O endpoint do OTLP é compatível com todos os protocolos do OTLP, incluindo
http/proto, http/json e grpc. Para mais informações, consulte
Suporte a protocolo.
Quando você envia métricas de aplicativos diretamente para o endpoint do OTLP, o coletor do OpenTelemetry não processa a autenticação, a detecção de recursos ou o processamento em lote para você. Ao usar SDKs para enviar métricas de aplicativos, faça o seguinte:
- Configure as credenciais para que o exportador de gRPC do OTLP use o Application Default Credentials do Google, conforme descrito em Receber credenciais de autenticação.
- Detecte recursos do Google Cloud e do Kubernetes no aplicativo. A maneira de fazer isso depende do aplicativo que você está executando.
- Configure um tamanho máximo de lote de exportação de 200 pontos de dados de métricas para que as solicitações não excedam o limite da API Telemetry de 200 pontos de dados por solicitação.
Antes de começar
Para executar os exemplos, é necessário ativar as APIs necessárias e adquirir credenciais de autenticação.
Ativar APIs
Ative a API Cloud Monitoring e a API Telemetry no projeto doGoogle Cloud executando o seguinte comando:
gcloud services enable monitoring.googleapis.com telemetry.googleapis.com
Receber credenciais de autenticação
Configure as credenciais para que o exportador de gRPC do OTLP use o Application Default Credentials do Google executando o seguinte comando:
gcloud auth application-default login
Exemplos específicos de linguagem
Nesta seção, fornecemos uma seleção de exemplos específicos de linguagem que criam e gravam uma métrica de contador. Selecione uma guia para ver informações sobre como executar o exemplo e o código.
Go
Para informações sobre como configurar e executar este exemplo, consulte o arquivo README do exemplo do Go.
Java
Para saber como configurar e executar esse exemplo, consulte o arquivo README do exemplo em Java.
NodeJS
Para informações sobre como configurar e executar este exemplo, consulte o arquivo README do exemplo do NodeJS.
Python
Para informações sobre como executar este exemplo, consulte o arquivo README do
exemplo em Python.
Usar a API Downward para aplicativos em execução como pods
Se você estiver executando o aplicativo como um pod no Kubernetes e não estiver enviando telemetria pelo coletor do OpenTelemetry, use a API Downward para definir os atributos de recurso do Kubernetes:
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONTAINER_NAME
value: my-container-name
- name: OTEL_RESOURCE_ATTRIBUTES
value: k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME),k8s.container.name=$(CONTAINER_NAME)
A seguir
- Para informações sobre como usar um coletor do OpenTelemetry e a API Telemetry com a instrumentação sem código do OpenTelemetry, consulte Usar a instrumentação sem código do OpenTelemetry para Java.
- Para saber como migrar de outro exportador para o
otlphttp, consulte Migrar para o exportador OTLP. - Para saber mais sobre a API Telemetry, consulte a Visão geral da API Telemetry (OTLP).