Anciennes métriques côté client HBase

Cette page décrit un ensemble de métriques côté client qui ont été remplacées par des métriques côté client intégrées. Cette page sert de référence pour tous les développeurs qui utilisent encore les anciennes métriques.

Nous vous recommandons d'utiliser les métriques côté client intégrées décrites dans la Présentation des métriques côté client, plutôt que les anciennes métriques décrites sur cette page.

Activer les métriques

Ces informations sont destinées aux clients qui utilisent les anciennes métriques. Pour activer les métriques côté client intégrées, qui sont plus récentes, consultez Configurer les métriques côté client.

Le client Cloud Bigtable HBase pour Java utilisait Dropwizard Metrics pour collecter et consigner les métriques côté client. La collecte de métriques pouvant ajouter une faible latence (de l'ordre de quelques microsecondes) à chaque requête, les métriques n'étaient pas activées par défaut. Les sections suivantes expliquent comment activer les anciennes métriques côté client.

Utiliser l'émetteur Log4j

Le moyen le plus simple d'activer les anciennes métriques côté client consiste à ajouter la ligne suivante à votre fichier de configuration Log4j :

log4j.category.com.google.cloud.bigtable.metrics=DEBUG

Ce paramètre de configuration active la collecte des métriques et enregistre les métriques Bigtable avec un enregistreur SLF4J.

Utiliser d'autres émetteurs

Vous pouvez utiliser d'autres types de reporters en mettant à jour le code de votre application. Par exemple, voici un reporter qui envoie des métriques à un serveur Graphite :

Graphite pickledGraphite = new PickledGraphite(new InetSocketAddress("graphite.example.com", 2004));
DropwizardMetricRegistry registry = new DropwizardMetricRegistry();
GraphiteReporter reporter =
    GraphiteReporter.forRegistry(registry.getRegistry())
        .convertRatesTo(TimeUnit.SECONDS)
        .convertDurationsTo(TimeUnit.MILLISECONDS)
        .filter(MetricFilter.ALL)
        .build(pickledGraphite);
reporter.start(1, TimeUnit.MINUTES);
BigtableClientMetrics.setMetricRegistry(registry);

Dropwizard Metrics fournit des reporters pour JMX, la journalisation de la console, SLF4J et CSV. Différents reporters tiers sont également disponibles.

Métriques disponibles

Cette section décrit les métriques disponibles lorsque les anciennes métriques HBase côté client sont activées. Chaque métrique dispose de l'un des types suivants :

  • Compteur : nombre cumulé par machine virtuelle Java (JVM)
  • Outil de mesure : informations de comptage et de débit (comptage sur la dernière minute, les 5 dernières minutes ou les 15 dernières minutes)
  • Timer : informations sur l'outil de mesure et sur la latence (par exemple, médiane, moyenne et 95e centile)

Seules certaines métriques sont collectées pour chaque type de requête. Consultez la section Exemple : métriques pour une requête Put pour obtenir un exemple des métriques collectées au cours d'une requête Put.

Métriques au niveau du canal

Type Nom Description
Compteur google-cloud-bigtable.sessions.active Nombre de BigtableSession ouvertes. Chaque Connection HBase possède une seule BigtableSession.
Compteur google-cloud-bigtable.grpc.channel.active Nombre de canaux gRPC/Netty de niveau inférieur ouverts. Chaque BigtableSession dispose de nombreux canaux gRPC.

Métriques générales RPC

Type Nom Description
Compteur google-cloud-bigtable.grpc.rpc.active Nombre d'appels de procédures à distance (RPC) actuellement actifs.
Outil de mesure google-cloud-bigtable.grpc.rpc.performed Débit RPC.

Métriques de méthode de données

Les métriques de méthode de données sont collectées pour les méthodes de données suivantes :

  • ReadRows : met en œuvre les "get" et les "scan".
  • MutateRow : met en œuvre les "put" et les "delete".
  • MutateRows : met en œuvre les écritures groupées.
  • CheckAndMutateRow : met en œuvre les méthodes HBase checkAnd*.
  • ReadModifyWrite : met en œuvre les méthodes HBase Append et Increment.
  • SampleRowKeys : récupère les informations de région utilisées pour les opérations MapReduce.
Type Nom Description
Timer google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency Temps pris par chaque opération individuelle. Les opérations incluent la quantité totale de latence de tous les RPC exécutés. (Habituellement, un seul RPC est exécuté. Les nouvelles tentatives côté client peuvent entraîner l'exécution du même RPC plusieurs fois en cas d'erreur transitoire.)
Timer google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency Délai nécessaire pour recevoir la première réponse à une demande d'analyse.
Outil de mesure google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed Nombre de tentatives qui ont été effectuées.
Outil de mesure google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures Nombre d'échecs qui ne peuvent pas faire l'objet d'une nouvelle tentative.
Outil de mesure google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted Nombre de tentatives infructueuses en raison d'un trop grand nombre d'échecs.

Métriques groupées

Des métriques groupées sont fournies pour les méthodes qui renvoient plus d'une réponse, telle qu'une écriture groupée.

Type Nom Description
Outil de mesure google-cloud-bigtable.scanner.results Débit des lignes individuelles affichées par une analyse.
Outil de mesure google-cloud-bigtable.bulk-mutator.mutations.added Débit des mutations individuelles ajoutées pour chaque requête MutateRows.
Outil de mesure google-cloud-bigtable.bulk-mutator.mutations.retried Nombre de mutations individuelles ayant fait l'objet d'une nouvelle tentative au fil du temps.

Métriques de table Bigtable

La conversion des objets Bigtable en objets HBase peut augmenter la latence d'une requête. Les timers suivants peuvent être mis en corrélation avec les timers *.operation.latency spécifiés pour mesurer le coût de la conversion.

Type Nom Description
Timer google-cloud-bigtable.table.put.latency Durée de chaque opération Put individuelle. Corrélée à google-cloud-bigtable.grpc.method.MutateRow.operation.latency.
Timer google-cloud-bigtable.table.get.latency Durée de chaque opération Get individuelle. Corrélée à google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

Exemple : métriques pour une requête Put

Lorsque les métriques côté client sont activées, les métriques suivantes sont collectées pour une requête Put réussie qui ne fait pas l'objet d'une nouvelle tentative :

  • Compteur : google-cloud-bigtable.grpc.rpc.active
  • Outil de mesure : google-cloud-bigtable.grpc.rpc.performed
  • Timer : google-cloud-bigtable.grpc.method.MutateRow.operation.latency
  • Timer : google-cloud-bigtable.table.put.latency

La collecte de ces métriques ajoute environ une microseconde (1/1 000 de milliseconde) à l'opération Put. L'ensemble de l'opération Put peut ne durer que deux à trois millisecondes, en supposant que l'opération comporte environ 1 Ko de données.