Métricas antigas do lado do cliente do HBase

Esta página descreve um conjunto de métricas do lado do cliente que foi substituído por métricas do lado do cliente incorporadas. Esta página é mantida como referência para os programadores que ainda usam as métricas antigas.

Recomendamos que use as métricas do lado do cliente incorporadas descritas na vista geral das métricas do lado do cliente em vez das métricas antigas descritas nesta página.

Ative as métricas

Estas informações são fornecidas para os clientes que estão a usar as métricas antigas. Para ativar as métricas mais recentes incorporadas do lado do cliente, consulte o artigo Configure métricas do lado do cliente.

O cliente HBase do Cloud Bigtable para Java usou o Dropwizard Metrics para recolher e comunicar métricas do lado do cliente. Uma vez que a recolha de métricas pode adicionar uma quantidade muito pequena de latência (microssegundos de um único dígito) a cada pedido, as métricas não foram ativadas por predefinição. As secções seguintes explicam como ativar as métricas antigas do lado do cliente.

Use o repórter Log4j

A forma mais simples de ativar as métricas do lado do cliente antigas é adicionar a seguinte linha ao ficheiro de configuração do Log4j:

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

Esta definição de configuração ativa a recolha de métricas e regista métricas do Bigtable com um registador SLF4J.

Use outros repórteres

Pode usar outros tipos de relatórios atualizando o código da sua aplicação. Por exemplo, segue-se um repórter que envia métricas para um 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);

O Dropwizard Metrics oferece repórteres para JMX, registo na consola, SLF4J e CSV. Também estão disponíveis vários criadores de relatórios de terceiros.

Métricas disponíveis

Esta secção descreve as métricas que estão disponíveis quando as métricas do lado do cliente do HBase antigo estão ativadas. Cada métrica tem um dos seguintes tipos:

  • Contador: uma contagem cumulativa por máquina virtual Java (JVM).
  • Medidor: informações de contagem, além de informações de débito (uma contagem por o último minuto, 5 minutos ou 15 minutos)
  • Temporizador: informações do medidor, além de informações de latência (como mediana, média e percentil 95)

Apenas são recolhidas determinadas métricas para cada tipo de pedido. Consulte "Exemplo: métricas para um pedido Put" para ver um exemplo das métricas que são recolhidas durante um pedido Put.

Métricas ao nível do canal

Tipo Nome Descrição
Contrapropor google-cloud-bigtable.sessions.active Quantos BigtableSessions estão abertos. Cada HBase Connection tem um único BigtableSession.
Contrapropor google-cloud-bigtable.grpc.channel.active Quantos canais gRPC/Netty de nível inferior estão abertos. Cada BigtableSession tem muitos canais gRPC.

Métricas gerais de RPC

Tipo Nome Descrição
Contrapropor google-cloud-bigtable.grpc.rpc.active O número de chamadas de procedimento remoto (RPCs) que estão atualmente ativas.
Contador google-cloud-bigtable.grpc.rpc.performed Débito de RPC.

Métricas do método de dados

As métricas do método de dados são recolhidas para os seguintes métodos de dados:

  • ReadRows: implementa obtenções e análises.
  • MutateRow: implementa puts e eliminações.
  • MutateRows: implementa gravações em massa.
  • CheckAndMutateRow: implementa os métodos checkAnd* do HBase.
  • ReadModifyWrite: implementa os métodos Append e Increment do HBase.
  • SampleRowKeys: obtém informações da região que são usadas para operações de MapReduce.
Tipo Nome Descrição
Temporizador google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency O tempo que as operações individuais demoram. As operações incluem o valor total da latência de todos os RPCs realizados. (Normalmente, só é feita uma RPC. As novas tentativas do lado do cliente podem fazer com que a mesma RPC seja realizada mais do que uma vez se ocorrer um erro transitório.)
Temporizador google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency O tempo que demora a receber a primeira resposta a um pedido de análise.
Contador google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed O número de novas tentativas que foram realizadas.
Contador google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures O número de falhas não repetíveis.
Contador google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted O número de vezes que a nova tentativa foi anulada porque demasiadas tentativas falharam.

Métricas em massa

As métricas em massa são fornecidas para métodos que devolvem mais do que uma resposta, como uma gravação em massa.

Tipo Nome Descrição
Contador google-cloud-bigtable.scanner.results A taxa de transferência de linhas individuais devolvidas por uma análise.
Contador google-cloud-bigtable.bulk-mutator.mutations.added O débito das mutações individuais adicionadas para cada pedido.MutateRows
Contador google-cloud-bigtable.bulk-mutator.mutations.retried O número de mutações individuais repetidas ao longo do tempo.

Métricas de tabelas do Bigtable

A conversão de objetos do Bigtable em objetos do HBase pode aumentar a latência de um pedido. Os seguintes temporizadores podem ser correlacionados com os temporizadores *.operation.latencyespecificados para medir o custo da conversão.

Tipo Nome Descrição
Temporizador google-cloud-bigtable.table.put.latency O tempo que as operações individuais Put demoram. Correlaciona-se com google-cloud-bigtable.grpc.method.MutateRow.operation.latency.
Temporizador google-cloud-bigtable.table.get.latency O tempo que as operações individuais Get demoram. Correlaciona-se com google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

Exemplo: métricas para um pedido Put

Quando as métricas do lado do cliente estão ativadas, são recolhidas as seguintes métricas para um pedido Put bem-sucedido que não é repetido:

  • 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

A recolha destas métricas adiciona aproximadamente 1 microssegundo (1/1000 de um milissegundo) à operação Put. A operação Put geral pode ser tão rápida quanto 2 a 3 milissegundos, assumindo que a operação inclui cerca de 1 KB de dados.