Metriche HBase lato client legacy

Questa pagina descrive un insieme di metriche lato client che è stato sostituito con metriche lato client integrate. Questa pagina viene gestita come riferimento per tutti gli sviluppatori che utilizzano ancora le metriche legacy.

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

Attiva le metriche

Queste informazioni vengono fornite ai clienti che utilizzano le metriche precedenti. Per attivare le nuove metriche lato client integrate, consulta Configurare le metriche lato client.

Il client HBase di Cloud Bigtable per Java utilizza le metriche della procedura guidata Drop per raccogliere e generare rapporti sulle metriche lato client. Poiché la raccolta delle metriche può aggiungere una minima quantità di latenza (microsecondi a una cifra) a ogni richiesta, le metriche non erano abilitate per impostazione predefinita. Le seguenti sezioni spiegano come attivare le metriche lato client legacy.

Utilizzare il reporter di Log4j

Il modo più semplice per abilitare le metriche lato client legacy è aggiungere la 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 di Bigtable con un logger SLF4J.

Utilizzi altri reporter

Puoi utilizzare altri tipi di reporter aggiornando il codice della tua applicazione. Ad esempio, ecco un reporter che invia metriche a un server Gaphite:

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);

Le metriche della procedura guidata forniscono reporter per JMX, logging della console, SLF4J e CSV. È inoltre disponibile una vasta gamma di reporter di terze parti.

Metriche disponibili

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

  • Contatore: un conteggio cumulativo per JVM (Java Virtual Machine).
  • Misuratore: conteggia le informazioni più le informazioni sulla velocità effettiva (un conteggio nell'ultimo minuto, negli ultimi 5 minuti o negli ultimi 15 minuti)
  • Timer: informazioni sullo strumento di misurazione più informazioni sulla latenza (ad esempio mediana, media e 95° percentile)

Per ogni tipo di richiesta vengono raccolte solo alcune metriche. Vedi "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 Quanti BigtableSession sono aperti. Ogni Connection HBase ha un singolo valore BigtableSession.
Contatore google-cloud-bigtable.grpc.channel.active Il 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 Velocità effettiva RPC.

Metriche dei metodi 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 le operazioni MapReduce.
Tipo Nome Descrizione
Timer google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency Il tempo richiesto dalle singole operazioni. Le operazioni includono la quantità totale di latenza di tutte le RPC eseguite. (Di solito viene eseguita una sola RPC. Se si verifica un errore temporaneo, i nuovi tentativi lato client possono causare l'esecuzione della stessa RPC più di una volta.
Timer google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency Il tempo necessario per ricevere la prima risposta a una richiesta di scansione.
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 il nuovo tentativo è stato interrotto perché un numero eccessivo di nuovi tentativi non è riuscito.

Metriche collettive

Le metriche collettive sono fornite per i metodi che restituiscono più di una risposta, ad esempio la 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 La velocità effettiva delle singole mutazioni aggiunte per ogni richiesta MutateRows.
Meter google-cloud-bigtable.bulk-mutator.mutations.retried Il numero di singole mutazioni riprovate nel tempo.

Metriche della tabella Bigtable

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

Tipo Nome Descrizione
Timer google-cloud-bigtable.table.put.latency Il tempo richiesto dalle singole operazioni Put. Correla con google-cloud-bigtable.grpc.method.MutateRow.operation.latency.
Timer google-cloud-bigtable.table.get.latency Il tempo richiesto dalle 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 abilitate, vengono raccolte le seguenti metriche per una richiesta Put riuscita che non viene ripetuta:

  • Contatore: google-cloud-bigtable.grpc.rpc.active
  • Misuratore: 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 millisecondo) all'operazione Put. L'operazione Put complessiva potrebbe richiedere fino a 2-3 millisecondi, supponendo che l'operazione includa circa 1 kB di dati.