Informar métricas del cliente

El cliente 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.

Habilitar métricas

El cliente 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.

Con el generador de informes de Log4j

La forma más simple de habilitar las métricas es agregar la siguiente línea a tu 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 con un generador de registros SLF4J.

Usar 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, Console Logging, SLF4J y CSV. También existen 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 rendimiento (conteo del último minuto, los últimos 5 minutos o los últimos 15 minutos)
  • Cronómetros: Información del medidor más la información de latencia (como la mediana, el promedio y el percentil 95)

Se recopilan solo algunas métricas para cada tipo de solicitud. Consulta “Ejemplo: Métricas para una solicitud Put a fin de ver un ejemplo de las métricas que se recopilan en una solicitud Put.

Métricas del canal

Tipo Nombre Descripción
Contador google-cloud-bigtable.sessions.active Cuántas BigtableSessions están abiertas. Cada Connection de HBase tiene solo una BigtableSession.
Contador google-cloud-bigtable.grpc.channel.active Cuántos canales gRPC/Netty de nivel inferior hay abiertos. Cada BigtableSession tiene muchos canales 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 las funciones gets y scans.
  • MutateRow: Implementa las funciones puts y deletes.
  • MutateRows: Implementa escrituras masivas.
  • CheckAndMutateRow: Implementa métodos checkAnd* de HBase.
  • ReadModifyWrite: Implementa métodos Increment y Append de HBase.
  • SampleRowKeys: Recupera la información de región que se usa en las operaciones 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 agregadas para cada solicitud 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 una solicitud. Los siguientes cronómetros pueden correlacionarse con los *.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 tardan 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 tardan las operaciones Get individuales. Se correlaciona con google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

Ejemplo: Métricas para una solicitud Put

Cuando se habilitan las métricas del cliente, 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

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

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Bigtable