Métricas del lado del cliente de HBase antiguas

En esta página se describe un conjunto de métricas del lado del cliente que se ha sustituido por métricas del lado del cliente integradas. Esta página se mantiene como referencia para los desarrolladores que aún usan las métricas antiguas.

Te recomendamos que uses las métricas del cliente integradas que se describen en el artículo Descripción general de las métricas del cliente en lugar de las métricas antiguas que se describen en esta página.

Habilitar métricas

Esta información se proporciona a los clientes que usan las métricas antiguas. Para habilitar las métricas del lado del cliente más recientes y predefinidas, consulta Configurar métricas del lado del cliente.

El cliente de HBase de Cloud Bigtable para Java usaba Dropwizard Metrics para recoger y registrar métricas del lado del cliente. Como la recogida de métricas puede añadir una latencia muy pequeña (microsegundos de un solo dígito) a cada solicitud, las métricas no se habilitaron de forma predeterminada. En las siguientes secciones se explica cómo habilitar las métricas del lado del cliente antiguas.

Usar el reporter de Log4j

La forma más sencilla de habilitar las métricas del cliente antiguas es añadir la siguiente línea al archivo de configuración Log4j:

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

Este ajuste de configuración activa la recogida de métricas y registra las métricas de Bigtable con un registrador SLF4J.

Usar otros reporteros

Puedes usar otros tipos de reporteros actualizando el código de tu aplicación. Por ejemplo, aquí tienes un reportero que envía métricas a un servidor 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 proporciona reporteros para JMX, el registro de la consola, SLF4J y CSV. También hay disponibles varios reporteros de terceros.

Métricas disponibles

En esta sección se describen las métricas disponibles cuando se habilitan las métricas del lado del cliente de HBase antiguas. Cada métrica tiene uno de los siguientes tipos:

  • Contador: un recuento acumulativo por máquina virtual Java (JVM).
  • Medidor: información de recuento más información sobre el rendimiento (un recuento por el último minuto, 5 minutos o 15 minutos)
  • Temporizador: información del medidor e información sobre la latencia (como la mediana, la media y el percentil 95)

Solo se recogen determinadas métricas para cada tipo de solicitud. Consulta el apartado Ejemplo: métricas de una solicitud Put para ver un ejemplo de las métricas que se recogen durante una solicitud Put.

Métricas a nivel de canal

Tipo Nombre Descripción
Encimera google-cloud-bigtable.sessions.active Cuántos BigtableSessions se han abierto. Cada HBase Connection tiene un solo BigtableSession.
Encimera google-cloud-bigtable.grpc.channel.active Número de canales gRPC/Netty de nivel inferior que se han abierto. Cada BigtableSession tiene muchos canales gRPC.

Métricas generales de RPC

Tipo Nombre Descripción
Encimera google-cloud-bigtable.grpc.rpc.active Número de llamadas a procedimientos remotos (RPCs) que están activas en este momento.
Meter google-cloud-bigtable.grpc.rpc.performed Rendimiento de RPC.

Métricas de métodos de datos

Las métricas de métodos de datos se recogen para los siguientes métodos de datos:

  • ReadRows: implementa las funciones get y scan.
  • MutateRow: implementa las funciones de inserción y eliminación.
  • MutateRows: implementa escrituras en bloque.
  • CheckAndMutateRow: implementa los métodos checkAnd* de HBase.
  • ReadModifyWrite: implementa los métodos Append y Increment de HBase.
  • SampleRowKeys: obtiene información de la región que se usa en operaciones de MapReduce.
Tipo Nombre Descripción
Temporizador google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency El tiempo que tardan las operaciones individuales. Las operaciones incluyen la latencia total de todas las llamadas a procedimientos remotos que se realizan. Normalmente, solo se realiza una RPC. Los reintentos del lado del cliente pueden provocar que la misma RPC se realice más de una vez si se produce un error transitorio.
Temporizador google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency Tiempo que se tarda en recibir la primera respuesta a una solicitud de análisis.
Meter google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed Número de reintentos que se han realizado.
Meter google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures Número de errores no reintentables.
Meter google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted Número de veces que se ha cancelado el reintento porque se han producido demasiados errores.

Métricas en bloque

Las métricas en bloque se proporcionan para los métodos que devuelven más de una respuesta, como las escrituras en bloque.

Tipo Nombre Descripción
Meter google-cloud-bigtable.scanner.results El rendimiento de las filas concretas devueltas por un análisis.
Meter google-cloud-bigtable.bulk-mutator.mutations.added El rendimiento de las mutaciones individuales añadidas en cada solicitud MutateRows.
Meter google-cloud-bigtable.bulk-mutator.mutations.retried Número de mutaciones individuales que se han vuelto a intentar a lo largo del tiempo.

Métricas de tabla de Bigtable

Convertir 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 coste de la conversión.

Tipo Nombre Descripción
Temporizador 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.
Temporizador 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 de una solicitud Put

Cuando se habilitan las métricas del lado del cliente, se recogen las siguientes métricas de una solicitud Put correcta que no se vuelve a intentar:

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

Recoger estas métricas añade aproximadamente 1 microsegundo (1/1000 de milisegundo) a la operación Put. La operación Put podría tardar entre 2 y 3 milisegundos, siempre que incluya aproximadamente 1 KB de datos.