Clientseitige Legacy-Messwerte
Auf dieser Seite wird eine Reihe von clientseitigen Messwerten beschrieben, die durch integrierte clientseitige Messwerte ersetzt wurden. Diese Seite dient als Referenz für alle Entwickler, die noch die Legacy-Messwerte verwenden.
Wir empfehlen die Verwendung der integrierten clientseitigen Messwerte, die in der Übersicht über clientseitige Messwerte beschrieben werden, anstelle der auf dieser Seite beschriebenen Legacy-Messwerte.
Messwerte aktivieren
Diese Informationen werden für Kunden bereitgestellt, die die alten Messwerte verwenden. Informationen zum Aktivieren der neueren, integrierten clientseitigen Messwerte finden Sie unter Clientseitige Messwerte einrichten.
Der Cloud Bigtable HBase-Client für Java verwendet Dropwizard Metrics, um clientseitige Messwerte zu erfassen und in Berichten zusammenzustellen. Da das Erfassen von Messwerten die Latenz bei jeder Abfrage leicht erhöhen kann (im einstelligen Mikrosekundenbereich), waren Messwerte nicht standardmäßig aktiviert. Im folgenden Abschnitt wird erklärt, wie Sie die alten clientseitigen Messwerte aktivieren.
Log4j-Reporter verwenden
Die einfachste Möglichkeit, die clientseitigen Messwerte zu aktivieren, besteht darin, Ihrer Konfigurationsdatei Log4j die folgende Zeile hinzuzufügen:
log4j.category.com.google.cloud.bigtable.metrics=DEBUG
Diese Konfigurationseinstellung aktiviert die Erfassung von Messwerten und protokolliert die Bigtable-Messwerte mit einem SLF4J-Logger.
Andere Reporter verwenden
Sie können andere Arten von Reportern verwenden, wenn Sie den Code Ihrer Anwendung aktualisieren. Folgendes ist zum Beispiel ein Reporter, der Messwerte an einen Graphite-Server sendet:
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 bietet Reporter für JMX, Konsolen-Logging, SLF4J und CSV. Es sind auch zahlreiche Reporter von Drittanbietern verfügbar.
Verfügbare Messwerte
In diesem Abschnitt werden die Messwerte beschrieben, die verfügbar sind, wenn die Legacy-HBase-Messwerte auf Clientseite aktiviert sind. Jeder Messwert entspricht einem der folgenden Typen:
- Zähler: Ein kumulativer Zähler per Java Virtual Machine (JVM).
- Meter: Informationen über Zahlen und Durchsatz (Zählung der letzten Minute, 5 Minuten oder 15 Minuten)
- Timer: Messinformationen sowie Informationen zur Latenz (wie Median, Mittelwert und 95. Perzentil)
Bei jedem Anfragetyp werden nur bestimmte Messwerte erfasst. Ein Beispiel für die bei einer Put
-Anfrage erfassten Messwerte finden Sie unter Beispiel: Messwerte bei einer Put
-Anfrage.
Messwerte auf Kanalebene
Typ | Name | Beschreibung |
---|---|---|
Zähler | google-cloud-bigtable.sessions.active |
Die Anzahl der geöffneten BigtableSession s. Jede HBase-Connection hat eine einzelne BigtableSession . |
Zähler | google-cloud-bigtable.grpc.channel.active |
Die Anzahl der nachrangigen gRPC/Netty-Kanäle. Jede BigtableSession hat viele gRPC-Kanäle. |
Allgemeine RPC-Messwerte
Typ | Name | Beschreibung |
---|---|---|
Zähler | google-cloud-bigtable.grpc.rpc.active |
Die Anzahl an Remote-Prozedur-Aufrufen (RPCs), die derzeit aktiv sind. |
Meter | google-cloud-bigtable.grpc.rpc.performed |
RPC-Durchsatz. |
Datenmethoden-Messwerte
Datenmethoden-Messwerte werden für die folgenden Datenmethoden erfasst:
ReadRows
: Implementiert "Gets" und "Scans".MutateRow
: Implementiert "Puts" und "Deletes".MutateRows
: Implementiert Bulk-Schreibvorgänge.CheckAndMutateRow
: Implementiert diecheckAnd*
-Methoden von HBase.ReadModifyWrite
: Implementiert die MethodenAppend
undIncrement
von HBase.SampleRowKeys
: Ruft Informationen zu Regionen ab, die für MapReduce-Vorgänge verwendet werden.
Typ | Name | Beschreibung |
---|---|---|
Timer | google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency |
Die Zeit, die für einzelne Vorgänge benötigt wird. Vorgänge beinhalten die gesamte Latenz aller RPCs, die durchgeführt werden. (Gewöhnlich wird nur ein RPC durchgeführt. Neuversuche auf der Clientseite können dazu führen, dass der gleiche RPC mehr als einmal ausgeführt wird, wenn ein vorübergehender Fehler besteht.) |
Timer | google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency |
Die Zeitdauer bis zum Erhalt der ersten Antwort auf eine Scan-Anfrage. |
Meter | google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed |
Die Anzahl der durchgeführten Neuversuche. |
Meter | google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures |
Die Anzahl an nicht neu versuchbaren Fehlschlägen. |
Meter | google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted |
Die Anzahl abgebrochener Neuversuche wegen zu vieler vorher fehlgeschlagener Neuversuche. |
Bulk-Messwerte
Bulk-Messwerte werden für Methoden zur Verfügung gestellt, die mehrere Antworten zurückgeben, beispielsweise Bulk-Schreibvorgänge.
Typ | Name | Beschreibung |
---|---|---|
Meter | google-cloud-bigtable.scanner.results |
Der Durchsatz an individuellen Zeilen, die von einem Scan zurückgegeben werden. |
Meter | google-cloud-bigtable.bulk-mutator.mutations.added |
Der Durchsatz an individuellen Mutationen, die für jede MutateRows -Anfrage hinzugefügt werden. |
Meter | google-cloud-bigtable.bulk-mutator.mutations.retried |
Die Anzahl an individuellen Mutationen im Laufe der Zeit |
Bigtable Tabellen-Messwerte
Die Umwandlung von Bigtable-Objekten in HBase-Objekte kann die Latenz einer Anfrage erhöhen. Die folgenden Timer können mit den angegebenen *.operation.latency
-Timern korreliert werden, um die Kosten der Umwandlung zu messen.
Typ | Name | Beschreibung |
---|---|---|
Timer | google-cloud-bigtable.table.put.latency |
Die Zeitdauer, die ein individueller Put -Vorgang erfordert.
Korreliert mit google-cloud-bigtable.grpc.method.MutateRow.operation.latency . |
Timer | google-cloud-bigtable.table.get.latency |
Die Zeitdauer, die ein individueller Get -Vorgang erfordert.
Korreliert mit google-cloud-bigtable.grpc.method.ReadRows.operation.latency . |
Beispiel: Messwerte bei einer Put
-Anfrage
Wenn clientseitige Messwerte aktiviert sind, werden bei einer erfolgreichen Put
Put-Anfrage, die nicht wiederholt wird, die folgenden Messwerte erfasst:
- Zähler:
google-cloud-bigtable.grpc.rpc.active
- Anzeige:
google-cloud-bigtable.grpc.rpc.performed
- Timer:
google-cloud-bigtable.grpc.method.MutateRow.operation.latency
- Timer:
google-cloud-bigtable.table.put.latency
Durch das Erfassen dieser Messwerte dauert der Put
-Vorgang ungefähr 1 Mikrosekunde (1/1000 einer Millisekunde) länger. Der gesamte Put
-Vorgang kann in zwei bis drei Millisekunden abgeschlossen werden, vorausgesetzt, er umfasst ungefähr 1 KB Daten.