Présentation de l'ingestion de métriques OTLP

Ce document présente l'utilisation du collecteur OpenTelemetry avec l' otlphttp exportateur et l'API Telemetry (OTLP), telemetry.googleapis.com, qui implémente le protocole OpenTelemetry OTLP. La combinaison de l'exportateur otlphttp et de l'API Telemetry vous permet d'ingérer des métriques OTLP dans Cloud Monitoring.

Le point de terminaison OTLP est compatible avec tous les protocoles OTLP, y compris http/protobuf, http/json et grpc. Pour en savoir plus, consultez la section Compatibilité avec le protocole.

Vous pouvez également envoyer des métriques directement à l'API Telemetry à partir d'applications qui utilisent des SDK. Pour en savoir plus, consultez la section Utiliser des SDK pour envoyer des métriques à partir d'applications.

Si vous utilisez Google Kubernetes Engine, vous pouvez suivre la section OpenTelemetry géré pour GKE au lieu de déployer et de configurer manuellement un collecteur OpenTelemetry qui utilise l' API Telemetry.

OTLP pour les métriques Prometheus ne fonctionne que lorsque vous utilisez le collecteur OpenTelemetry version 0.140.0 ou ultérieure.

Noms de métriques et de libellés dans l'API Telemetry

Cette section décrit les conventions d'attribution de noms et les exigences concernant les métriques ingérées dans Cloud Monitoring à l'aide de l'API Telemetry :

  • Les noms de métriques et les clés de libellés ne sont pas entièrement compatibles avec UTF-8.

    • Les noms de métriques qui ne sont pas conformes à l'expression régulière [a-zA-Z][a-zA-Z0-9_:./-]* seront rejetés. Les seuls caractères spéciaux autorisés dans les noms de métriques sont ceux de l'ensemble _:./-.
    • Les DataPoints contenant des attributs (c'est-à-dire des clés de libellés) qui ne sont pas conformes à l'expression régulière [a-zA-Z_][a-zA-Z0-9_.]* seront rejetés. Les seuls caractères spéciaux autorisés dans les clés de libellés sont ceux de l'ensemble _.. Tous les caractères spéciaux sont autorisés dans les valeurs de libellés.

    Pour éviter que vos métriques ne soient rejetées pour ces raisons, vous pouvez configurer un processeur afin de transformer vos noms de métriques et vos attributs à l'aide de la fonction replace_pattern.

  • Important : Pour interroger des noms de métriques et des clés de libellés contenant des caractères spéciaux autres que le signe deux-points (:) et le trait de soulignement (_), vous devez les placer entre accolades ({}) et guillemets ("), conformément à la spécification UTF-8 de PromQL. Par exemple, les requêtes suivantes sont valides :

    • {"my.metric.name"}
    • {"my.metric.name", "label.key.KEY"="value"}

Métriques de l'API Telemetry et Cloud Monitoring

Cette section décrit comment les métriques ingérées à l'aide de l'API Telemetry et de l'exportateur otlphttp interagissent avec Cloud Monitoring :

  • Il peut y avoir des conflits de type de valeur entre les métriques de type INT64 et DOUBLE, en particulier si vous avez déjà envoyé la métrique target_info. Si vous rencontrez ce type de conflit, supprimez les descripteurs de métriques INT64. Vous pouvez utiliser ce script Golang pour supprimer toutes les métriques de type INT64 target_info de votre champ d'application de métriques.

  • Conserver le libellé le lors de l'interrogation d'histogrammes exponentiels peut renvoyer des résultats inattendus. Les requêtes histogram_quantile(.99, sum by (le) (metric)) plus classiques devraient fonctionner.

  • Les métriques delta peuvent ne pas être interrogées correctement dans certaines circonstances, par exemple lorsque les deltas sont très épars.

Compatibilité avec le protocole

Le point de terminaison OTLP est compatible avec tous les protocoles OTLP, y compris http/protobuf, http/json et grpc. Lorsque vous exportez à partir d'un collecteur OpenTelemetry, vous pouvez utiliser n'importe quel protocole. Toutefois, en raison du manque de prise en charge de l'actualisation dynamique des jetons dans la plupart des exportateurs de SDK, nous vous recommandons d'utiliser uniquement l'exportateur gRPC OTLP, et non les exportateurs HTTP, lorsque vous exportez directement à partir de SDK. Pour en savoir plus, consultez la section Utiliser des SDK pour envoyer des métriques à partir d'applications.

Facturation

La facturation des métriques OTLP est comptabilisée sous la référence "Échantillons Prometheus ingérés", la même que celle utilisée pour les métriques de Google Cloud Managed Service pour Prometheus. Pour en savoir plus, consultez la page Facturation.

Limites et quotas

L'ingestion de métriques à l'aide de l'API Telemetry est soumise à les limites de métriques de l'API Telemetry.

De plus, tous les quotas et limites de métriques standards de Cloud Monitoring et de Google Cloud Managed Service pour Prometheus metric quotas and limits s'appliquent. Par exemple, les métriques ne peuvent pas comporter plus de 200 libellés.

Le quota par défaut pour les métriques ingérées par l'API Telemetry est de 60 000 requêtes par minute. Avec une taille de lot maximale de 200 points par requête, cela correspond à un quota par défaut effectif de 200 000 échantillons par seconde. Vous pouvez demander une augmentation de quota.

Étape suivante