Descripción general de la transferencia de métricas de OTLP

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.

  • 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 INT64 y DOUBLE, en especial si ya enviaste la métrica target_info. Si experimentas este tipo de conflicto, borra los descriptores de métricas INT64. Puedes usar este script de Golang para borrar todas las métricas de tipo INT64 de tu alcance de métricas.target_info

  • Conservar la etiqueta le cuando se consultan histogramas exponenciales puede devolver resultados inesperados. Se espera que funcionen las búsquedas más típicas de histogram_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?