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 BigtableSession s 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étodoscheckAnd*
de HBase.ReadModifyWrite
: implementa los métodosAppend
yIncrement
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.