Cet article explique comment examiner un composant Spanner pour trouver la source de la latence et visualiser cette latence à l'aide d'OpenTelemetry. Pour une présentation générale des composants de cet article, consultez la section Points de latence dans une requête Spanner.
OpenTelemetry est un kit d'outils et un framework d'observabilité Open Source qui vous permet de créer et de gérer des données de télémétrie, telles que des traces, des métriques et des journaux. Il est le résultat d'une fusion entre OpenTracing et OpenCensus. Pour en savoir plus, consultez Qu'est-ce qu'OpenTelemetry ?
Les bibliothèques clientes Spanner fournissent des métriques et des traces à l'aide du framework d'observabilité OpenTelemetry. Suivez la procédure décrite dans la section Identifier le point de latence pour rechercher les composants ou les composants qui présentent une latence dans Spanner.
Avant de commencer
Avant de commencer à capturer des métriques de latence, familiarisez-vous avec l'instrumentation manuelle avec OpenTelemetry. Vous devez configurer le SDK OpenTelemetry avec les options appropriées pour exporter vos données de télémétrie. Plusieurs options d'exportateur OpenTelemetry sont disponibles. Nous vous recommandons d'utiliser l'exportateur du protocole OpenTelemetry (OTLP). D'autres options incluent l'utilisation d'un collecteur OTel avec Google Cloud Exporter ou Google Managed Service pour Prometheus Exporter.
Si vous exécutez votre application sur Compute Engine, vous pouvez utiliser l'agent Ops pour collecter les métriques et les traces du protocole OpenTelemetry. Pour en savoir plus, consultez Collecter les métriques et les traces OTLP.
Ajouter des dépendances
Pour configurer le SDK OpenTelemetry et l'exportateur OTLP, ajoutez les dépendances suivantes à votre application.
Java
Go
Injecter l'objet OpenTelemetry
Ensuite, créez un objet OpenTelemetry avec l'exportateur OTLP et injectez l'objet OpenTelemetry à l'aide de SpannerOptions
.
Java
Go
Capturer et visualiser la latence aller-retour du client
La latence aller-retour du client correspond à la durée (en millisecondes) entre le premier octet de la requête API Spanner que le client envoie à la base de données (via le GFE et l'interface de l'API Spanner) et le dernier octet de réponse que le client reçoit de la base de données.
Capturer la latence aller-retour du client
La métrique de latence aller-retour du client Spanner n'est pas compatible avec OpenTelemetry. Vous pouvez instrumenter la métrique à l'aide d'OpenCensus avec un pont et migrer les données vers OpenTelemetry.
Visualiser la latence aller-retour du client
Après avoir récupéré les métriques, vous pouvez visualiser la latence aller-retour du client dans Cloud Monitoring.
Voici un exemple de graphique illustrant la latence du 5e centile de la métrique de latence aller-retour du client. Pour définir la latence du centile sur le 50e ou le 99e centile, utilisez le menu Aggregator (Agrégateur).
Le programme crée une vue appelée roundtrip_latency
. Cette chaîne devient une partie du nom de la métrique lorsqu'elle est exportée vers Cloud Monitoring.
Capturez et visualisez la latence du GFE
La latence du GFE (Google Front End) correspond au délai (en millisecondes) entre le moment où le réseau Google reçoit un appel de procédure à distance du client et le moment où le GFE reçoit le premier octet de la réponse.
Capturer la latence du GFE
Vous pouvez capturer les métriques de latence des GFE en activant les options suivantes à l'aide de la bibliothèque cliente Spanner.
Java
Go
Visualiser la latence du GFE
Après avoir récupéré les métriques, vous pouvez visualiser la latence des GFE dans Cloud Monitoring.
Voici un exemple de graphique illustrant l'agrégation de distribution pour la métrique de latence du GFE. Pour définir la latence du centile sur les 5e, 50e, 95e ou 99e centile, utilisez le menu Agrégateur.
Le programme crée une vue appelée spanner/gfe_latency
. Cette chaîne devient une partie du nom de la métrique lorsqu'elle est exportée vers Cloud Monitoring.
Capturer et visualiser la latence des requêtes API Spanner
La latence des requêtes API Spanner correspond à la durée (en secondes) entre le premier octet de la requête reçu par l'interface de l'API Spanner et le dernier octet de réponse envoyé par l'interface de l'API Spanner.
Capturer la latence des requêtes API Spanner
Par défaut, cette latence est disponible dans les métriques Cloud Monitoring. Vous n'avez rien à faire pour la capturer et l'exporter.
Visualiser la latence des requêtes API Spanner
Vous pouvez utiliser l'outil de graphique de l'explorateur de métriques pour visualiser le graphique de la métrique spanner.googleapis.com/api/request_latencies
dans Cloud Monitoring.
Voici un exemple de graphe illustrant la latence au 5e centile de la métrique de latence des requêtes de l'API Spanner. Pour définir la latence du centile sur le 50e ou le 99e centile, utilisez le menu Aggregator (Agrégateur).
Capturez et visualisez la latence des requêtes
La latence des requêtes correspond à la durée (en millisecondes) nécessaire pour exécuter des requêtes SQL dans la base de données Spanner.
Capturer la latence des requêtes
Vous pouvez capturer la latence des requêtes pour les langages suivants :
Java
Go
Visualiser la latence des requêtes
Après avoir récupéré les métriques, vous pouvez visualiser la latence des requêtes dans Cloud Monitoring.
Voici un exemple de graphique illustrant l'agrégation de distribution pour la métrique de latence du GFE. Pour définir la latence du centile sur les 5e, 50e, 95e ou 99e centile, utilisez le menu Agrégateur.
Le programme crée une vue OpenCensus appelée query_stats_elapsed
.
Cette chaîne devient une partie du nom de la métrique lorsqu'elle est exportée vers Cloud Monitoring.
Étapes suivantes
En savoir plus sur OpenTelemetry
Découvrez comment effectuer la migration vers OpenTelemetry.
Découvrez comment diagnostiquer la latence à l'aide des metrics.