Choisir une approche d'instrumentation

Cette page contient des recommandations pour instrumenter votre application sur différentes plates-formesGoogle Cloud , telles que Google Kubernetes Engine (GKE) et Cloud Run. Si votre application n'est pas encore instrumentée, suivez les recommandations ci-dessous pour savoir comment instrumenter votre application afin d'envoyer des données de télémétrie à Google Cloud. Les recommandations figurant sur cette page ne sont pas les seules solutions, et d'autres approches peuvent fonctionner. Pour obtenir des conseils supplémentaires, contactez l'assistanceGoogle Cloud .

Des recommandations sont proposées pour les éléments suivants:

Pour plus d'informations sur les exemples d'instrumentation, consultez les documents répertoriés dans la section Exemples de code.

GKE

Pour obtenir des informations générales sur GKE, consultez la page Présentation de GKE.

Type Recommandation
Métriques

Nous vous recommandons d'utiliser Google Cloud Managed Service pour Prometheus.

Pour l'instrumentation, effectuez l'une des opérations suivantes:

Traces

Procédez comme suit :

  1. Déployez le collecteur OpenTelemetry conçu par Google sur Google Kubernetes Engine.

    Le collecteur reçoit les données de trace de l'exportateur OTLP intégré au SDK, les traite, puis les envoie à votre projet Google Cloud à l'aide de l'API Telemetry (OTLP).

  2. Utilisez le SDK OpenTelemetry et l'exportateur OTLP pour votre langage.
Journaux

Configurez votre application pour générer des journaux structurés JSON vers stdout et stderr. Pour obtenir la liste des frameworks, consultez la page Frameworks de journalisation recommandés.

GKE collecte automatiquement les journaux écrits dans stdout et stderr. Pour en savoir plus, consultez la page À propos des journaux GKE.

Compute Engine

Pour obtenir des informations générales sur Compute Engine, consultez la page Instances de machines virtuelles.

Type Recommandation
Métriques et traces

Procédez comme suit :

  1. utiliser l'agent Ops pour collecter des métriques et des traces.

    Pour obtenir un exemple, consultez Collecter les métriques et les traces OpenTelemetry Protocol (OTLP). Ce guide explique comment configurer l'agent Ops pour recevoir des données de métriques et de trace à partir des exportateurs OTLP intégrés au SDK, transformer ces données, puis les envoyer à votre projet Google Cloud . Les données de métriques sont envoyées à l'aide de l'API Cloud Monitoring, et les données de trace sont envoyées à l'aide de l'API Cloud Trace.

  2. Utilisez le SDK OpenTelemetry et l'exportateur OTLP pour votre langage.

Par ailleurs, si vous souhaitez configurer uniquement la collecte pour les métriques au format Prometheus, utilisez le récepteur Prometheus de l'agent Ops pour collecter les métriques instrumentées à l'aide des bibliothèques clientes Prometheus ou du SDK OpenTelemetry.

Journaux

Procédez comme suit :

  1. Configurez votre application pour générer des journaux structurés JSON dans un fichier. Pour obtenir la liste des frameworks, consultez la page Frameworks de journalisation recommandés.
  2. installer l'agent Ops et configurer un récepteur. Pour obtenir un exemple, consultez la section Récepteurs de journalisation.

Cloud Run

Pour obtenir des informations générales sur Cloud Run, consultez la page Qu'est-ce que Cloud Run ?

Type Recommandation
Métriques et traces

Procédez comme suit :

  1. Utilisez le SDK OpenTelemetry et l'exportateur OTLP pour votre langage.
  2. Déployer un side-car OpenTelemetry pour collecter des métriques et des traces.

    Pour obtenir des exemples, consultez les documents suivants :

  3. Pour votre service Cloud Run, utilisez la facturation basée sur les instances. Avec la facturation basée sur les instances, le processeur est alloué pendant toute la durée de vie de l'instance, ce qui est nécessaire, car l'instrumentation OpenTelemetry effectue un traitement en arrière-plan. Pour en savoir plus, consultez Paramètres de facturation pour les services Cloud Run.

Par ailleurs, si vous souhaitez uniquement configurer la collecte pour les métriques au format Prometheus, utilisez le side-car Prometheus pour Cloud Run afin de collecter des métriques instrumentées à l'aide de bibliothèques clientes Prometheus ou du SDK OpenTelemetry.

Journaux

Configurez votre application pour générer des journaux structurés JSON vers stdout et stderr. Pour obtenir la liste des frameworks, consultez la page Frameworks de journalisation recommandés.

Cloud Run collecte automatiquement les journaux écrits dans stdout et stderr. Pour en savoir plus, consultez la section Écrire des journaux de conteneur.

Cloud Run Functions

Pour obtenir des informations générales sur Cloud Run Functions, consultez la présentation de Cloud Run Functions.

Type Recommandation
Métriques L'écriture directe des métriques n'est pas disponible dans Cloud Run Functions. Vous pouvez générer des métriques basées sur les journaux.
Traces Utilisez le SDK OpenTelemetry et l'exportateur Cloud Trace pour votre langage.
Journaux

Configurez votre application pour générer des journaux structurés JSON vers stdout et stderr. Pour obtenir la liste des frameworks, consultez la page Frameworks de journalisation recommandés.

Les fonctions Cloud Run collectent automatiquement les journaux écrits dans stdout et stderr. Pour en savoir plus, consultez Fonctions Cloud Run : présentation de la surveillance et de la journalisation.

App Engine

Pour obtenir des informations générales sur App Engine, consultez la page Présentation d'App Engine.

Type Recommandation
Métriques Utilisez le SDK OpenTelemetry et l'exportateur Cloud Monitoring pour votre langage.
Traces Utilisez le SDK OpenTelemetry et l'exportateur Cloud Trace pour votre langage.
Journaux

Configurez votre application pour générer des journaux structurés JSON vers stdout et stderr. Pour obtenir la liste des frameworks, consultez la page Frameworks de journalisation recommandés.

App Engine collecte automatiquement les journaux écrits dans stdout et stderr. Pour en savoir plus, consultez Écrire et afficher des journaux.

Frameworks de journalisation recommandés

Pour collecter les journaux, nous vous recommandons d'utiliser un framework pouvant être configuré pour générer des objets JSON sérialisés vers stdout, stderr ou vers un fichier. L'agent Logging, intégré ou installé, extrait le fichier et écrit des journaux structurés pour Cloud Logging. Pour écrire des données de journal, nous vous recommandons de procéder comme suit:

Exemples de code

Lorsque vous instrumentez une application avec des bibliothèques OpenTelemetry, vous décidez de la manière dont vos données de télémétrie sont envoyées à votre projet Google Cloud . Il existe deux approches fondamentales :

  • Vous instrumentez le code de votre application avec le SDK OpenTelemetry et utilisez l'exportateur OTLP intégré au SDK pour envoyer des données à un collecteur OpenTelemetry. Le collecteur reçoit les données de l'exportateur intégré, puis les envoie à votre projet Google Cloud . Les modifications que vous apportez au code de votre application sont indépendantes du fournisseur. Le collecteur contient la logique permettant d'envoyer les données de télémétrie à votre projet Google Cloud .

  • Vous instrumentez le code de votre application avec le SDK OpenTelemetry et utilisez un exportateur intégré qui envoie directement les données à votre projet Google Cloud . Certaines modifications que vous apportez à votre application sont spécifiques au fournisseur. Toutefois, vous n'avez pas besoin de configurer ni de déployer de collecteur.

Nous vous recommandons d'utiliser un collecteur OpenTelemetry pour exporter vos données de télémétrie lorsque votre environnement est compatible avec l'utilisation d'un collecteur. Pour certains environnements, vous devez utiliser un exportateur intégré qui envoie directement les données à votre projetGoogle Cloud .

Exemples d'exportation basée sur un collecteur

Pour obtenir des exemples d'instrumentation spécifiques à chaque langage, consultez les documents suivants :

Pour en savoir plus sur la définition et le déploiement des collecteurs, consultez Présentation des exemples.

Exemples d'exportation directe à l'aide d'exportateurs intégrés

Références à OpenTelemetry

Cette section fournit des liens vers le SDK OpenTelemetry et les exportateurs pour OTLP, Cloud Trace et Cloud Monitoring.

Références générales:

Go

Java

JavaScript

Python