Cette page explique comment émettre des métriques côté client gRPC vers Cloud Monitoring lorsque vous utilisez gRPC pour interagir avec Cloud Storage à l'aide de l'une des interfaces compatibles suivantes :
Bibliothèque cliente Java Cloud Storage, version 2.41.0 et ultérieures
Les métriques côté client peuvent être utilisées pour surveiller les performances de l'application cliente qui interagit avec Cloud Storage à l'aide de gRPC. La métrique côté client diffère des métriques côté serveur, qui fournissent des insights sur les performances de Cloud Storage du point de vue du serveur.
Fonctionnement
Vous pouvez choisir d'envoyer des métriques côté client à Cloud Monitoring lorsque vous utilisez gRPC pour interagir avec Cloud Storage à l'aide de l'une des interfaces compatibles.
Tarifs
Les métriques côté client Cloud Storage ne sont pas facturables. Vous pouvez donc émettre, stocker et accéder à ces métriques sans encourir de frais Cloud Monitoring. Pour en savoir plus sur les tarifs, consultez la page Tarifs de Google Cloud Observability.
Avant de commencer
Pour utiliser les métriques côté client, vous devez d'abord effectuer les étapes suivantes :
Vérifiez que la bibliothèque cliente ou le connecteur Cloud Storage que vous souhaitez utiliser est compatible avec gRPC. Les bibliothèques clientes et connecteurs Cloud Storage suivants sont compatibles avec gRPC :
Activez l'API Cloud Monitoring.
Activez l'API Cloud Storage.
Définissez les rôles et autorisations requis pour émettre des métriques côté client.
Rôles requis
Pour définir les autorisations nécessaires pour émettre des métriques côté client gRPC vers Cloud Monitoring, accordez le rôle IAM Rédacteur de métriques Monitoring (roles/monitoring.metricWriter) au compte de service utilisé par le client gRPC.
Ce rôle prédéfini contient les autorisations requises pour émettre des métriques côté client gRPC vers Cloud Monitoring. Pour connaître les autorisations exactes requises, consultez la section Autorisations requises :
Autorisations requises
monitoring.timeSeries.create
Cette autorisation IAM est incluse dans les rôles Cloud Storage prédéfinis suivants :
- Administrateur de l'espace de stockage (
roles/storage.admin) - Administrateur d'objets de l'espace de stockage (
roles/storage.objectAdmin) - Utilisateur d'objets Storage (
roles/storage.objectUser)
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis. Pour en savoir plus sur le rôle "Rédacteur de métriques Monitoring", consultez la documentation IAM concernant roles/monitoring.metricWriter.
Descriptions des métriques
Les sections suivantes décrivent les métriques Cloud Storage côté client qui peuvent être utilisées pour surveiller les performances du client gRPC.
Métriques côté client par tentative
Les métriques suivantes collectent des données sur les performances des tentatives individuelles effectuées par un client pour communiquer avec un serveur. Les métriques par tentative du client peuvent vous aider à mesurer le comportement des nouvelles tentatives, les goulots d'étranglement et à optimiser la communication entre un client et un serveur.
| Métrique complète | Description | Type d'instrument | Unité | Attributs |
|---|---|---|---|---|
storage.googleapis.com/client/grpc/client/attempt/started |
Preview : nombre total de tentatives de RPC lancées, y compris celles qui ne sont pas terminées. |
Compteur | {attempt} |
|
storage.googleapis.com/client/grpc/client/attempt/duration |
Preview. Temps de bout en bout nécessaire pour effectuer une tentative RPC, y compris le temps nécessaire pour sélectionner un sous-canal. |
Histogramme | s |
|
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size |
Preview : nombre total d'octets, compressés mais non chiffrés, envoyés par tous les messages de requête, à l'exception des métadonnées, par tentative RPC. Cela n'inclut pas les octets de tramage gRPC ou de transport. |
Histogramme | By |
|
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size |
Preview : nombre total d'octets (compressés, mais non chiffrés) reçus par tous les messages de réponse, à l'exception des métadonnées, par tentative de RPC. Cela n'inclut pas les octets de tramage gRPC ou de transport. |
Histogramme | By |
|
Pour en savoir plus sur les instruments par tentative du client, consultez la documentation sur les métriques OpenTelemetry sur GitHub.
Métriques client par appel
Les métriques suivantes fournissent une vue globale de l'ensemble du cycle de vie d'un appel client vers un serveur. Les métriques par appel du client fournissent des données de haut niveau sur les appels du client, des métriques de suivi pour comprendre les schémas d'appel et vous aident à identifier les fréquences d'erreurs.
| Métrique complète | Description | Type d'instrument | Unité | Attributs |
|---|---|---|---|---|
storage.googleapis.com/client/grpc/client/call/duration |
Preview : mesure le temps de bout en bout nécessaire à la bibliothèque gRPC pour effectuer un RPC du point de vue de l'application. |
Histogramme | s |
|
Pour en savoir plus sur les instruments par appel du client, consultez la documentation sur les métriques OpenTelemetry sur GitHub.
Métriques de détection de la charge des requêtes
Les métriques suivantes fournissent des informations sur l'efficacité de l'utilisation de la détection de la charge de requêtes par votre application cliente. Les métriques de détection de charge des requêtes peuvent vous aider à équilibrer les charges du serveur, à optimiser l'utilisation des ressources et à améliorer les temps de réponse des clients. Les métriques suivantes ne sont disponibles qu'avec la connectivité directe.
| Métrique complète | Description | Type d'instrument | Unité | Attributs |
|---|---|---|---|---|
storage.googleapis.com/client/grpc/lb/rls/cache_entries |
Preview. Nombre d'entrées dans le cache de détection de la charge de la requête. |
Jauge | {entry} |
|
storage.googleapis.com/client/grpc/lb/rls/cache_size |
Preview. Taille actuelle du cache de détection de charge des requêtes. |
Jauge | By |
|
storage.googleapis.com/client/grpc/lb/rls/default_target_picks |
Preview : nombre de sélections d'équilibreur de charge (LB) envoyées à la cible par défaut. |
Compteur | {pick} |
|
storage.googleapis.com/client/grpc/lb/rls/target_picks |
Preview : nombre de choix d'équilibrage de charge envoyés à chaque cible de détection de charge de requête. Si la cible par défaut est également renvoyée par le serveur de détection de charge des requêtes, les RPC envoyés à cette cible à partir du cache sont comptabilisés dans cette métrique, et non dans grpc.rls.default_target_picks. |
Compteur | {pick} |
|
storage.googleapis.com/client/grpc/lb/rls/failed_picks |
Preview : nombre de sélections LB ayant échoué en raison d'une demande de détection de charge ayant échoué ou d'une limitation du canal de détection de charge des demandes. |
Compteur | {pick} |
|
Métriques du client du service xDiscovery
Les métriques suivantes fournissent des insights sur la façon dont votre application cliente interagit avec le plan de contrôle xDiscovery Service (xDS) pour découvrir et configurer les connexions aux services de backend. Les métriques xDS peuvent vous aider à suivre la latence des demandes de service, à surveiller les mises à jour de configuration et à optimiser les performances xDS globales.
Les métriques suivantes ne sont disponibles qu'avec la connectivité directe.
| Métrique complète | Description | Type d'instrument | Unité | Attributs |
|---|---|---|---|---|
storage.googleapis.com/client/grpc/xds_client/connected |
Preview : indique si le client xDS dispose ou non d'un flux ADS opérationnel vers le serveur xDS. Pour un serveur donné, cette métrique est définie sur 1 lors de la création initiale du flux. En cas d'échec de connectivité ou d'échec du flux ADS sans message de réponse conformément à A57, la métrique est définie sur 0. Une fois définie sur 0, la métrique est réinitialisée sur 1 lorsque la première réponse est reçue sur un flux ADS. Cette métrique n'est disponible que pour les bibliothèques clientes Cloud pour C++. |
Jauge | {bool} |
|
storage.googleapis.com/client/grpc/xds_client/resource_updates_invalid |
Preview. Nombre de ressources reçues considérées comme non valides. Cette métrique n'est disponible que pour les bibliothèques clientes Cloud pour C++. |
Compteur | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/resource_updates_valid |
Preview. Nombre de ressources reçues considérées comme valides, même si elles n'ont pas été modifiées.
Cette métrique n'est disponible que pour les bibliothèques clientes Cloud pour C++. |
Compteur | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/resources |
Preview : nombre de ressources xDS. Cette métrique n'est disponible que pour les bibliothèques clientes Cloud pour C++. |
Jauge | {resource} |
|
storage.googleapis.com/client/grpc/xds_client/server_failure |
Preview : nombre de serveurs xDS qui ne fonctionnent plus correctement et qui sont devenus indisponibles, surchargés ou qui fournissent des données de configuration incorrectes ou non valides. Cette métrique n'est disponible que pour les bibliothèques clientes Cloud pour C++. |
Compteur | {failure} |
|
Pour en savoir plus sur les métriques du client xDS, consultez la documentation sur l'équilibrage de charge mondial basé sur xDS sur GitHub.
Désactiver les métriques côté client
Vous pouvez désactiver les métriques côté client si nécessaire.
Java
public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)
Pour en savoir plus, consultez la méthode de classe GrpcStorageOptions.Builder des bibliothèques clientes Cloud pour Java pour les métriques du client gRPC.
C++
Pour désactiver les métriques côté client pour l'API gRPC à l'aide des bibliothèques clientes Cloud pour C++, consultez Struct EnableGrpcMetricsOption.
Si vous utilisez Bazel pour créer votre application et que vous souhaitez désactiver les métriques côté client, définissez l'option enable_grpc_metrics sur false dans le fichier de compilation de votre application.