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 SDK.
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 protocolos.
Cuando envías métricas de la aplicación directamente al extremo de OTLP, el recopilador de OpenTelemetry no controla la autenticación, la detección de recursos ni el procesamiento por lotes por ti. Cuando uses SDKs para enviar métricas desde aplicaciones, debes 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 Obtén credenciales de autenticación.
- Detecta recursos de Google Cloud y Kubernetes desde la aplicación. La forma de hacerlo depende de la aplicación que ejecutes.
- Configura un tamaño máximo de lote de exportación de 200 puntos de datos de métricas para que las solicitudes no superen el límite de la API de Telemetry de 200 puntos de datos por solicitud.
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 proyecto deGoogle Cloud ejecutando el siguiente comando:
gcloud services enable monitoring.googleapis.com telemetry.googleapis.com
Obtén credenciales de autenticación
Configura las credenciales para que el exportador de gRPC de OTLP use las credenciales predeterminadas de la aplicación de Google ejecutando el siguiente comando:
gcloud auth application-default login
Ejemplos específicos por idioma
En esta sección, se proporciona una selección de muestras específicas de lenguaje 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 de la
muestra de Go.
Java
Para obtener información sobre cómo configurar y ejecutar este ejemplo, consulta el
archivo README de la
muestra de Java.
NodeJS
Para obtener información sobre cómo configurar y ejecutar este ejemplo, consulta el
archivo README de la
muestra de NodeJS.
Python
Para obtener información sobre cómo ejecutar este ejemplo, consulta el archivo README de la
muestra de Python.
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 envías telemetría 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?
- Para obtener información sobre cómo 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 Descripción general de la API de Telemetry (OTLP).