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

En este documento, se presenta el uso de OpenTelemetry Collector con el otlphttp exportador 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 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 OpenTelemetry Collector que use la API de Telemetry.

OTLP para métricas de Prometheus solo funciona cuando se usa OpenTelemetry Collector versión 0.140.0 o posterior.

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 etiquetas no admiten UTF-8 completo.

    • Se rechazarán los nombres de las métricas que no cumplan con la expresión regular [a-zA-Z][a-zA-Z0-9_:./-]*. Los únicos caracteres especiales permitidos en los nombres de las métricas están en el conjunto _:./-.
    • Se rechazarán los DataPoints que contengan atributos (es decir, claves de etiquetas) que no cumplan con la expresión regular [a-zA-Z_][a-zA-Z0-9_.]*. Los únicos caracteres especiales permitidos en las claves de etiquetas están en el conjunto _.. Se permiten todos los caracteres especiales en los valores de las etiquetas.

    Para evitar el rechazo de tus métricas por estos motivos, puedes configurar un procesador para transformar los nombres y atributos de las métricas 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 interactúan con Cloud Monitoring las métricas transferidas con la API de Telemetry y el otlphttp exportador:

  • Es posible que haya colisiones de tipos de valores entre las métricas de tipo INT64 y DOUBLE, en especial si enviaste la métrica target_info anteriormente. Si experimentas este tipo de conflicto, borra los descriptores de métricas INT64. Puedes usar esta secuencia de comandos de Golang para borrar todas las métricas de tipo INT64 target_info de tu alcance de métricas.

  • Si conservas la etiqueta le cuando consultas histogramas exponenciales, es posible que se muestren resultados inesperados. Se espera que funcionen las consultas más típicas histogram_quantile(.99, sum by (le) (metric)).

  • Es posible que las métricas delta no se consulten correctamente en ciertas circunstancias, como deltas 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 OpenTelemetry Collector, 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, te recomendamos que uses solo el exportador de OTLP de gRPC, no los exportadores de HTTP, cuando exportes 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 la SKU "Muestras de Prometheus transferidas", la misma que se usa para las métricas de Google Cloud Managed Service para Prometheus. Para obtener más información, consulta la página 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 todos los límites y cuotas de métricas estándar de Cloud Monitoring y Google Cloud Managed Service para Prometheus metric quotas and limits. Por ejemplo, las métricas no pueden tener más de 200 etiquetas.

La cuota predeterminada para las métricas transferidas por la API de Telemetry es de 60,000 solicitudes por minuto. Con un tamaño máximo de lote 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?