Metriche lato client HBase legacy

Questa pagina descrive un insieme di metriche lato client che sono state sostituite con quelle predefinite. Questa pagina è gestita come un per gli sviluppatori che usano ancora le metriche precedenti.

Ti consigliamo di utilizzare le metriche integrate lato client descritte in Panoramica delle metriche lato client anziché le metriche precedenti descritte in questa pagina.

Attiva le metriche

Queste informazioni sono fornite per i clienti che utilizzano le metriche precedenti. Per attivare le metriche lato client integrate più recenti, consulta Configurare le metriche lato client.

Il client Cloud Bigtable HBase per Java utilizzava Dropwizard Metriche per raccogliere e generare report sulle metriche lato client. Poiché la raccolta delle metriche può aggiungere una quantità molto piccola di latenza (microsecondi a una cifra) a ogni richiesta, le metriche non sono state attivate per impostazione predefinita. Le sezioni seguenti spiegano come attivare le metriche lato client precedenti.

Utilizzare il reporter Log4j

Il modo più semplice per abilitare le metriche lato client legacy è aggiungere seguente riga al file di configurazione Log4j:

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

Questa impostazione di configurazione attiva la raccolta delle metriche e registra le metriche Bigtable con un logger SLF4J.

Utilizzare altri reporter

Puoi utilizzare altri tipi di report aggiornando il codice dell'applicazione. Ad esempio, di seguito è riportato un report che invia le metriche a un server 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 fornisce report per JMX, logging della console, SLF4J e CSV. Sono inoltre disponibili diversi reporter di terze parti.

Metriche disponibili

Questa sezione descrive le metriche disponibili quando sono attivate le metriche lato client HBase legacy. Ogni metrica ha uno dei seguenti tipi:

  • Contatore: un conteggio cumulativo per ogni macchina virtuale Java (JVM).
  • Meter: informazioni sul conteggio più informazioni sul throughput (un conteggio per l'ultimo minuto, 5 minuti o 15 minuti)
  • Timer: informazioni sul misuratore più informazioni sulla latenza (ad es. mediana, media e 95° percentile)

Per ogni tipo di richiesta vengono raccolte solo alcune metriche. Consulta "Esempio: metriche per una richiesta Put" per un esempio delle metriche che vengono raccolte durante una richiesta Put.

Metriche a livello di canale

Tipo Nome Descrizione
Contatore google-cloud-bigtable.sessions.active Numero di BigtableSession aperti. Ogni tabella HBase Connection ha un solo BigtableSession.
Contatore google-cloud-bigtable.grpc.channel.active Numero di canali gRPC/Netty di livello inferiore aperti. Ogni BigtableSession ha molti canali gRPC.

Metriche RPC generali

Tipo Nome Descrizione
Contatore google-cloud-bigtable.grpc.rpc.active Il numero di chiamate di procedura remota (RPC) attualmente attive.
Meter google-cloud-bigtable.grpc.rpc.performed Throughput RPC.

Metriche del metodo di dati

Le metriche dei metodi di dati vengono raccolte per i seguenti metodi di dati:

  • ReadRows: implementa get e scansioni.
  • MutateRow: implementa put ed eliminazioni.
  • MutateRows: implementa le scritture collettive.
  • CheckAndMutateRow: implementa i metodi checkAnd* di HBase.
  • ReadModifyWrite: implementa i metodi Append e Increment di HBase.
  • SampleRowKeys: recupera le informazioni sulla regione utilizzate per MapReduce operazioni aziendali.
Tipo Nome Descrizione
Timer google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency Il periodo di tempo richiesto dalle singole operazioni. Le operazioni includono e la latenza totale di tutte le RPC eseguite. (di solito solo una RPC in esecuzione. I nuovi tentativi lato client possono causare l'esecuzione della stessa RPC più di una volta sola se si verifica un errore temporaneo.)
Timer google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency Il tempo necessario per ricevere la prima risposta a una scansione richiesta.
Meter google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed Il numero di nuovi tentativi eseguiti.
Meter google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures Il numero di errori non ripetibili.
Meter google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted Il numero di volte in cui è stato interrotto il nuovo tentativo a causa di un numero eccessivo di nuovi tentativi non riuscito.

Metriche collettive

Le metriche collettive sono fornite per i metodi che restituiscono più di una risposta, come una scrittura collettiva.

Tipo Nome Descrizione
Meter google-cloud-bigtable.scanner.results La velocità effettiva delle singole righe restituite da una scansione.
Meter google-cloud-bigtable.bulk-mutator.mutations.added Il throughput delle singole mutazioni aggiunte per ogni MutateRows richiesta.
Meter google-cloud-bigtable.bulk-mutator.mutations.retried Il numero di singole mutazioni tentate nel tempo.

Metriche delle tabelle Bigtable

La conversione di oggetti Bigtable in oggetti HBase può aumentare la latenza di una richiesta. I seguenti timer possono essere correlati *.operation.latency timer per misurare il costo della conversione.

Tipo Nome Descrizione
Timer google-cloud-bigtable.table.put.latency La durata delle singole operazioni Put. Correla con google-cloud-bigtable.grpc.method.MutateRow.operation.latency.
Timer google-cloud-bigtable.table.get.latency La durata delle singole operazioni Get. Correla con google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

Esempio: metriche per una richiesta Put

Quando le metriche lato client sono attivate, per una richiesta Put riuscita per la quale non viene eseguito alcun nuovo tentativo vengono raccolte le seguenti metriche:

  • Contatore: google-cloud-bigtable.grpc.rpc.active
  • Contatore: google-cloud-bigtable.grpc.rpc.performed
  • Timer: google-cloud-bigtable.grpc.method.MutateRow.operation.latency
  • Timer: google-cloud-bigtable.table.put.latency

La raccolta di queste metriche aggiunge circa 1 microsecondo (1/1000 di un millisecondi) all'operazione Put. L'operazione complessiva di Put potrebbe essere rapidamente da 2 a 3 millisecondi, supponendo che l'operazione includa circa 1 KB di e i dati di Google Cloud.