En este documento, se ilustra cómo puedes enviar métricas directamente desde las aplicaciones al extremo de OTLP con un SDK y el exportador de gRPC, que es el exportador recomendado para usar con los SDKs.
El extremo de OTLP admite todos los protocolos de OTLP, incluidos http/proto, http/json y grpc. Para obtener más información, consulta Compatibilidad con los protocolos.
Cuando envías métricas de la aplicación directamente al extremo de OTLP, el recopilador de OpenTelemetry no controla la autenticación ni el enriquecimiento por ti. Cuando uses los SDKs para enviar métricas desde las aplicaciones, deberás hacer lo siguiente:
- Configura las credenciales para que el exportador de gRPC de OTLP use las credenciales predeterminadas de la aplicación de Google, como se describe en Cómo obtener credenciales de autenticación.
- Detecta Google Cloud recursos de Kubernetes desde la aplicación. La forma de hacerlo depende de la aplicación que estés ejecutando.
Antes de comenzar
Para ejecutar los ejemplos, debes habilitar las APIs necesarias y adquirir credenciales de autenticación.
Habilita las APIs
Habilita la API de Cloud Monitoring y la API de Telemetry en tu proyectoGoogle Cloud ejecutando el siguiente comando:
gcloud services enable monitoring.googleapis.com telemetry.googleapis.com
Obtén credenciales de autenticación
Ejecuta el siguiente comando para configurar las credenciales del exportador de gRPC de OTLP para que use las credenciales predeterminadas de la aplicación de Google:
gcloud auth application-default login
Ejemplos específicos del idioma
En esta sección, se proporciona una selección de muestras específicas del idioma que crean y escriben una métrica de contador. Selecciona una pestaña para obtener información sobre cómo ejecutar la muestra y ver el código.
Go
Para obtener información sobre cómo configurar y ejecutar este ejemplo, consulta el archivo README del ejemplo de Go.
Java
Para obtener información sobre cómo configurar y ejecutar este ejemplo, consulta el archivo README del ejemplo de Java.
NodeJS
Para obtener información sobre cómo configurar y ejecutar este ejemplo, consulta el archivo README del ejemplo de NodeJS.
Python
Para obtener información sobre cómo ejecutar este ejemplo, consulta el archivo README del ejemplo de Python.README
Usa la API de Downward para las aplicaciones que se ejecutan como Pods
Si ejecutas la aplicación como un pod en Kubernetes y no la envías a través del recopilador de OpenTelemetry, asegúrate de usar la API descendente para establecer los atributos de recursos de 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)
¿Qué sigue?
- Si deseas obtener información para usar un recopilador de OpenTelemetry y la API de Telemetry con la instrumentación sin código de OpenTelemetry, consulta Usa la instrumentación sin código de OpenTelemetry para Java.
- Para obtener información sobre cómo migrar al exportador de
otlphttpdesde otro exportador, consulta Migra al exportador de OTLP. - Para obtener más información sobre la API de Telemetry, consulta la descripción general de la API de Telemetry (OTLP).