Métricas del cliente de HBase heredada

En esta página, se describe un conjunto de métricas del cliente que se reemplazó por las métricas integradas del cliente. Esta página se mantiene como una referencia para cualquier desarrollador que aún utilice las métricas heredadas.

Recomendamos usar las métricas integradas del cliente que se describen en la Descripción general de las métricas del cliente en lugar de las métricas heredadas que se describen en esta página.

Habilita métricas

Esta información se proporciona a los clientes que usan las métricas heredadas. Para habilitar las métricas integradas del cliente más recientes, consulta Configura las métricas del cliente.

El cliente de HBase de Cloud Bigtable para Java usaba Dropwizard Metrics para recopilar y, también, informar las métricas del cliente. Debido a que la recopilación de métricas puede agregar una cantidad muy pequeña de latencia (microsegundos de un solo dígito) a cada solicitud, las métricas no estaban habilitadas de forma predeterminada. En las siguientes secciones, se explica cómo habilitar las métricas heredadas del cliente.

Usa el generador de informes de Log4j

La forma más sencilla de habilitar las métricas del cliente heredadas 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 Bigtable y se registran con un generador de registros 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, Console Logging, SLF4J y CSV. También hay una variedad de 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 heredadas del cliente de HBase. 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 Bigtable

Convertir los objetos de Bigtable en objetos de HBase puede aumentar la latencia de una solicitud. Los siguientes temporizadores se pueden correlacionar con los temporizadores *.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.