En este documento, se presenta el uso de OpenTelemetry Collector con el exportador otlphttp y la API de Telemetry (OTLP), telemetry.googleapis.com, que implementa el protocolo OTLP de OpenTelemetry.
La combinación del exportador otlphttp y la API de Telemetry te permite transferir métricas de OTLP a Cloud Monitoring.
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.
También puedes enviar métricas directamente a la API de Telemetry desde las aplicaciones que usan SDKs. Para obtener más información, consulta Usa SDKs para enviar métricas desde aplicaciones.
Si usas Google Kubernetes Engine, puedes seguir OpenTelemetry administrado para GKE en lugar de implementar y configurar manualmente un recopilador de OpenTelemetry que use la API de Telemetry.
OTLP para las métricas de Prometheus solo funciona cuando se usa la versión 0.140.0 o posterior del recopilador de OpenTelemetry.
Nombres de métricas y etiquetas en la API de Telemetry
En esta sección, se describen las convenciones de nomenclatura y los requisitos para las métricas transferidas a Cloud Monitoring con la API de Telemetry:
Los nombres de las métricas y las claves de las etiquetas no admiten UTF-8 completo.
- Se rechazarán los nombres de métricas que no cumplan con la expresión regular
[a-zA-Z][a-zA-Z0-9_:./]*. - Se rechazarán los objetos DataPoint que contengan atributos (es decir, claves de etiquetas) que no cumplan con la expresión regular
[a-zA-Z_][a-zA-Z0-9_.]*.
Para evitar que se rechacen tus métricas por estos motivos, puedes configurar un procesador para que transforme tus nombres y atributos de métricas por ti con la función
replace_pattern.- Se rechazarán los nombres de métricas que no cumplan con la expresión regular
Importante: Para consultar nombres de métricas y claves de etiquetas con caracteres especiales que no sean los dos puntos (
:) y el guion bajo (_), debes incluirlos entre llaves ({}) y comillas ("), según la especificación UTF-8 de PromQL. Por ejemplo, las siguientes son consultas válidas:{"my.metric.name"}{"my.metric.name", "label.key.KEY"="value"}
Métricas de la API de Telemetry y Cloud Monitoring
En esta sección, se describe cómo las métricas transferidas con la API de Telemetry y el exportador de otlphttp interactúan con Cloud Monitoring:
Es posible que haya colisiones de tipos de valores entre las métricas de tipo
INT64yDOUBLE, en especial si ya enviaste la métricatarget_info. Si experimentas este tipo de conflicto, borra los descriptores de métricasINT64. Puedes usar este script de Golang para borrar todas las métricas de tipoINT64de tu alcance de métricas.target_infoConservar la etiqueta
lecuando se consultan histogramas exponenciales puede devolver resultados inesperados. Se espera que funcionen las búsquedas más típicas dehistogram_quantile(.99, sum by (le) (metric)).Es posible que las métricas delta no se consulten correctamente en ciertas circunstancias, como cuando los deltas son muy dispersos.
Compatibilidad con protocolos
El extremo de OTLP admite todos los protocolos de OTLP, incluidos http/proto, http/json y grpc. Cuando exportas desde un recopilador de OpenTelemetry, puedes usar cualquiera de los protocolos. Sin embargo, debido a la falta de compatibilidad con la actualización dinámica de tokens en la mayoría de los exportadores de SDK, recomendamos usar solo el exportador de OTLP de gRPC, no los exportadores de HTTP, cuando se exporta directamente desde los SDKs. Para obtener más información, consulta Usa SDKs para enviar métricas desde aplicaciones.
Facturación
La facturación de las métricas de OTLP se contabiliza en el SKU "Muestras de Prometheus transferidas", el mismo que se usa para las métricas de Google Cloud Managed Service para Prometheus. Para obtener más información, consulta la página de facturación.
Límites y cuotas
La transferencia de métricas con la API de Telemetry está sujeta a los límites de métricas de la API de Telemetry.
Además, se aplican todas las cuotas y los límites estándar de las métricas de Cloud Monitoring y Google Cloud Managed Service para Prometheus. Por ejemplo, las métricas no pueden tener más de 200 etiquetas.
La cuota predeterminada para las métricas que se transfieren a través de la API de Telemetry es de 60,000 solicitudes por minuto. Con un tamaño de lote máximo de 200 puntos por solicitud, esta es una cuota predeterminada efectiva de 200,000 muestras por segundo. Puedes solicitar un aumento de la cuota.
¿Qué sigue?
- Para obtener instrucciones paso a paso sobre cómo implementar y usar el recopilador de OpenTelemetry con la API de Telemetry, consulta Implementa y usa el recopilador.
- Para obtener información sobre cómo enviar métricas a la API de Telemetry desde aplicaciones que usan SDKs, consulta Usa SDKs para enviar métricas desde aplicaciones.
- 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).