Présentation de la collecte des traces

Cette page présente la collecte de traces avec OpenTelemetry. Pour surveiller et déboguer les requêtes Spanner, vous pouvez activer les traces dans les bibliothèques clientes Spanner. Le traçage côté client et de bout en bout peut vous aider à surveiller les performances et à déboguer les problèmes.

Les traces fournissent des informations pertinentes pour chaque requête d'un client, par exemple :

  • Portées avec des codes temporels indiquant le moment où le client a envoyé une requête RPC et celui où il a reçu la réponse RPC, y compris la latence causée par le réseau et le système client.

  • Attributs (paires clé/valeur) fournissant des informations sur le client et sa configuration.

  • Annotations avec les événements importants dans les étendues.

Pour en savoir plus sur les spans et les attributs, consultez Spans et Attributs dans la documentation OpenTelemetry.

Trace de bout en bout

En plus du traçage côté client, vous pouvez activer le traçage de bout en bout. Le traçage de bout en bout vous aide à comprendre et à déboguer les problèmes de latence spécifiques à Spanner, tels que les suivants :

  • Déterminez si la latence est due à la latence réseau entre votre application et Spanner, ou si elle se produit dans Spanner.

  • Identifiez les régions Google Cloud par lesquelles les requêtes de votre application sont acheminées et s'il existe une requête interrégionale. Une requête interrégionale signifie généralement une latence plus élevée entre votre application et Spanner.

Pour éviter de surcharger Cloud Trace et gérer efficacement les coûts, le traçage de bout en bout est limité en termes de nombre d'étendues de trace que vous pouvez exporter. Cette limite n'a aucune incidence sur l'utilisation du traçage de bout en bout pour le dépannage.

OpenTelementry

Les bibliothèques clientes Spanner sont compatibles avec la collecte de traces à l'aide des API OpenTelemetry. OpenTelemetry est un framework d'observabilité Open Source. OpenTelemetry propose un large éventail de configurations, telles que des exportateurs pour des backends spécifiques, des ratios d'échantillonnage et des limites de portée.

Exporter des traces avec des exportateurs et des collecteurs

Dans vos configurations, vous pouvez exporter vos traces vers un backend d'observabilité. La plupart des fournisseurs de services d'observabilité proposent des exportateurs que vous pouvez utiliser, comme l'exportateur de traces.

En plus d'un exportateur, OpenTelemetry recommande de configurer un collecteur. Un collecteur permet à votre service de décharger rapidement les données et de gérer d'autres tâches, comme les nouvelles tentatives, le traitement par lot et le chiffrement. Un collecteur s'exécute en parallèle de votre application. Le collecteur reçoit les messages OLTP, les traite et les exporte vers votre backend d'observabilité.

Limites

Les traces Spanner sont soumises aux limites suivantes :

  • Les spans de trace ne sont disponibles que pour les bibliothèques clientes Java, Go, Node et Python.
  • Les traces de bout en bout ne peuvent être exportées que vers Cloud Trace.

Tarifs

En plus de l'utilisation de Spanner, le traçage peut entraîner des frais via votre backend d'observabilité.

L'ingestion de délais de trace dans votre backend d'observabilité est facturable. Par exemple, si vous utilisez Cloud Trace comme backend, vous serez facturé selon les tarifs de Cloud Trace.

Pour mieux comprendre la facturation, commencez par un petit taux d'échantillonnage des traces en fonction de votre trafic.

Étapes suivantes

Pour configurer le traçage de bout en bout et côté client, consultez Configurer la collecte de traces à l'aide d'OpenTelemetry.