Ce document explique comment envoyer des métriques directement depuis des applications vers le point de terminaison OTLP à l'aide d'un SDK et de l'exportateur gRPC, qui est l'exportateur recommandé pour une utilisation avec les SDK.
Le point de terminaison OTLP est compatible avec tous les protocoles OTLP, y compris http/proto, http/json et grpc. Pour en savoir plus, consultez Compatibilité des protocoles.
Lorsque vous envoyez des métriques d'application directement au point de terminaison OTLP, le collecteur OpenTelemetry ne gère pas l'authentification, la détection des ressources ni le traitement par lot à votre place. Lorsque vous utilisez des SDK pour envoyer des métriques à partir d'applications, vous devez procéder comme suit :
- Configurez les identifiants de l'exportateur OTLP gRPC pour utiliser les identifiants par défaut de l'application Google, comme décrit dans Obtenir des identifiants d'authentification.
- Détectez les ressources Google Cloud et Kubernetes à partir de l'application. La procédure à suivre dépend de l'application que vous exécutez.
- Configurez une taille maximale de lot d'exportation de 200 points de données de métriques afin que les requêtes ne dépassent pas la limite de l'API Telemetry de 200 points de données par requête.
Avant de commencer
Pour exécuter les exemples, vous devez activer les API nécessaires et obtenir des identifiants d'authentification.
Activer les API
Activez l'API Cloud Monitoring et l'API Telemetry dans votre projetGoogle Cloud en exécutant la commande suivante :
gcloud services enable monitoring.googleapis.com telemetry.googleapis.com
Obtenir des identifiants d'authentification
Configurez les identifiants de l'exportateur gRPC OTLP pour qu'il utilise les identifiants par défaut de l'application Google en exécutant la commande suivante :
gcloud auth application-default login
Exemples spécifiques à un langage
Cette section fournit une sélection d'exemples spécifiques à un langage qui créent et écrivent une métrique de compteur. Sélectionnez un onglet pour obtenir des informations sur l'exécution de l'exemple et afficher le code.
Go
Pour en savoir plus sur la configuration et l'exécution de cet exemple, consultez le fichier README de l'exemple Go.
Java
Pour en savoir plus sur la configuration et l'exécution de cet exemple, consultez le fichier README de l'exemple Java.
NodeJS
Pour en savoir plus sur la configuration et l'exécution de cet exemple, consultez le fichier README de l'exemple NodeJS.
Python
Pour en savoir plus sur l'exécution de cet exemple, consultez le fichier README de l'exemple Python.
Utiliser l'API Downward pour les applications exécutées en tant que pods
Si vous exécutez l'application en tant que pod dans Kubernetes et que vous n'envoyez pas de données de télémétrie via le collecteur OpenTelemetry, veillez à utiliser l'API Downward pour définir les attributs de ressource 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)
Étapes suivantes
- Pour en savoir plus sur l'utilisation d'un collecteur OpenTelemetry et de l'API Telemetry avec l'instrumentation sans code OpenTelemetry, consultez Utiliser l'instrumentation sans code OpenTelemetry pour Java.
- Pour en savoir plus sur la migration vers l'exportateur
otlphttpà partir d'un autre exportateur, consultez Migrer vers l'exportateur OTLP. - Pour en savoir plus sur l'API Telemetry, consultez la présentation de l'API Telemetry (OTLP).