C++ et OpenTelemetry

Cette page est destinée aux développeurs d'applications qui souhaitent collecter des données Cloud Trace pour les applications C++ à l'aide d'OpenTelemetry. OpenTelemetry est un framework d'instrumentation indépendant du fournisseur que vous pouvez utiliser pour collecter des données de trace et de métrique. Pour en savoir plus sur l'instrumentation de votre code, consultez la section Instrumentation et observabilité.

Cette page vous guide tout au long des étapes suivantes :

  • Installez les packages OpenTelementry.
  • Configurez votre application pour exporter les délais vers Cloud Trace.
  • Configurez votre plate-forme.

Pour en savoir plus sur les versions, consultez les articles suivants :

Pour obtenir du contenu de référence sur OpenTelemetry, consultez les éléments suivants :

Pour obtenir les dernières informations sur OpenTelemetry pour C++, ainsi que de la documentation supplémentaire et des exemples, consultez la section OpenTelemetry.

Avant de commencer

Activez l'API Cloud Trace.

Rôles requis pour activer les API

Pour activer les API, vous avez besoin de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

Activer l'API

Installer les packages OpenTelementry

Configurer l'exportation des délais vers Cloud Trace

Pour configurer l'exportation des données de trace, appelez la méthode google::cloud::otel::ConfigureBasicTracing(...) dans votre méthode main() :

namespace gc = ::google::cloud;
[](std::string project_id) {
  auto project = gc::Project(std::move(project_id));
  auto configuration = gc::otel::ConfigureBasicTracing(project);

  MyApplicationCode();
}

Le champ project_id est le Google Cloud projet dans lequel vous souhaitez stocker les traces.

La méthode ConfigureBasicTracing(...) instancie un TracerProvider objet qui implémente un exportateur Cloud Trace. Si l'objet renvoyé par l'appel à ConfigureBasicTracing(...) n'est plus dans le champ d'application, l'objet TracerProvider précédent est rétabli, s'il existe.

Configurer le taux d'échantillonnage

Les applications peuvent générer un grand volume de données de trace. L'exemple suivant illustre comment configurer le taux d'échantillonnage :

namespace gc = ::google::cloud;
[](std::string project_id) {
  auto project = gc::Project(std::move(project_id));
  auto options = gc::Options{}.set<gc::otel::BasicTracingRateOption>(.001);
  auto configuration = gc::otel::ConfigureBasicTracing(project, options);

  MyApplicationCode();
}

Exporter vers Cloud Trace avec un TracerProvider personnalisé

Vous pouvez avoir des cas d'utilisation qui nécessitent un objet TracerProvider personnalisé. Par exemple, si vous souhaitez utiliser plusieurs exportateurs en même temps, vous devez créer un objet TracerProvider personnalisé. Dans ce cas, vous pouvez utiliser directement l'exportateur Cloud Trace :