Informa métricas del cliente

El cliente de HBase de Cloud Bigtable para Java puede recopilar métricas del cliente que te permiten supervisar el rendimiento de Cloud Bigtable. Otras bibliotecas cliente de Cloud Bigtable no proporcionan métricas de cliente. En esta página, se explica cómo habilitar estas métricas en HBase para Java y se muestran las que están disponibles.

Habilita las métricas

El cliente de HBase de Cloud Bigtable para Java usa Dropwizard Metrics para recopilar y, también, informar las métricas del cliente. Dado que la recopilación de métricas puede agregar un poco de latencia (hasta 9 microsegundos) a cada solicitud, las métricas no se encuentran habilitadas de forma predeterminada. En la siguiente sección, se explica cómo habilitar las métricas del cliente.

Usa el generador de informes de Log4j

La forma más simple de habilitar las métricas es agregar la siguiente línea al archivo de configuración de Log4j:

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

Con esta configuración, se activa la recopilación de métricas de Cloud Bigtable y se registran esas métricas con un generador de registros de SLF4J.

Usa otros generadores de informes

Para usar otros tipos de generadores de informes, debes actualizar el código de la aplicación. Por ejemplo, este es un generador de informes que envía las métricas a un servidor de 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 ofrece generadores de informes para JMX, registros de la consola, SLF4J y CSV. También hay varios generadores de informes de terceros disponibles.

Métricas disponibles

En esta sección, se describen las métricas que están disponibles cuando se habilitan las métricas del cliente. Cada métrica tiene uno de los siguientes tipos:

  • Contador: Un conteo acumulativo por máquina virtual Java (JVM).
  • Medidor: Información del contador más la información de capacidad de procesamiento (conteo del último minuto, los últimos 5 minutos o los últimos 15 minutos)
  • Cronómetro: Información del medidor más la información de latencia (como la mediana, el promedio y el percentil 95)

Solo se recopilan métricas determinadas para cada tipo de solicitud. Consulta “Ejemplo: Métricas para una solicitud Put” si deseas ver un ejemplo de las métricas que se recopilan en una solicitud Put.

Métricas a nivel de canal

Tipo Nombre Descripción
Contador google-cloud-bigtable.sessions.active La cantidad de BigtableSession abiertas. Cada Connection de HBase tiene una sola BigtableSession.
Contador google-cloud-bigtable.grpc.channel.active La cantidad de canales de gRPC/Netty de nivel inferior abiertos. Cada BigtableSession tiene muchos canales de gRPC.

Métricas generales de RPC

Tipo Nombre Descripción
Contador google-cloud-bigtable.grpc.rpc.active La cantidad de llamadas de procedimiento remoto (RPC) que se encuentran activas.
Medidor google-cloud-bigtable.grpc.rpc.performed Rendimiento de la RPC.

Métricas del método de datos

Estas métricas se recopilan para los siguientes métodos de datos:

  • ReadRows: Implementa operaciones “get” y “scan”.
  • MutateRow: Implementa operaciones “put” y “delete”.
  • MutateRows: Implementa escrituras masivas.
  • CheckAndMutateRow: Implementa los métodos checkAnd* de HBase.
  • ReadModifyWrite: Implementa los métodos Increment y Append de HBase.
  • SampleRowKeys: Recupera la información de la región que se usa en las operaciones de MapReduce.
Tipo Nombre Descripción
Cronómetro google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency El tiempo que tardan las operaciones individuales. Las operaciones incluyen el total de latencia de todas las RPC ejecutadas. Por lo general, solo se ejecuta una. Los reintentos del cliente pueden provocar que se vuelva a ejecutar la misma RPC más de una vez si hay un error transitorio.
Cronómetro google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency El tiempo que toma recibir la primera respuesta a una solicitud de análisis.
Medidor google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed La cantidad de reintentos ejecutados.
Medidor google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures La cantidad de fallas que no se pueden reintentar.
Medidor google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted La cantidad de veces que se anuló un reintento porque muchos fallaron antes.

Métricas masivas

Las métricas masivas se proporcionan para los métodos que muestran más de una respuesta, como una escritura masiva.

Tipo Nombre Descripción
Medidor google-cloud-bigtable.scanner.results La capacidad de procesamiento de las filas individuales que se muestran en una solicitud de análisis.
Medidor google-cloud-bigtable.bulk-mutator.mutations.added La capacidad de procesamiento de las mutaciones individuales que se agrega a las solicitudes MutateRows.
Medidor google-cloud-bigtable.bulk-mutator.mutations.retried La cantidad de mutaciones individuales que se reintentaron en el tiempo.

Métricas de tablas de Cloud Bigtable

Convertir los objetos de Cloud Bigtable en objetos de HBase puede agregar latencia a las solicitudes. Los siguientes cronómetros pueden correlacionarse con los cronómetros *.operation.latency especificados para medir el costo de la conversión.

Tipo Nombre Descripción
Cronómetro google-cloud-bigtable.table.put.latency El tiempo que toman las operaciones Put individuales. Se correlaciona con google-cloud-bigtable.grpc.method.MutateRow.operation.latency.
Cronómetro google-cloud-bigtable.table.get.latency El tiempo que toman las operaciones Get individuales. Se correlaciona con google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

Ejemplo: Métricas para una solicitud Put

Cuando las métricas del cliente están habilitadas, se recopilan las siguientes métricas para una solicitud Put correcta que no se reintenta:

  • Contador: google-cloud-bigtable.grpc.rpc.active
  • Medidor: google-cloud-bigtable.grpc.rpc.performed
  • Cronómetro: google-cloud-bigtable.grpc.method.MutateRow.operation.latency
  • Cronómetro: google-cloud-bigtable.table.put.latency

La recopilación de estas métricas agrega alrededor de 1 microsegundo (1/1,000 milisegundos) a la operación Put. La operación Put promedio puede durar solo entre 2 y 3 milisegundos, si incluye alrededor de 1 KB de datos.