Métricas legadas do lado do cliente HBase

Nesta página, descrevemos um conjunto de métricas do lado do cliente que foi substituído por métricas integradas do lado do cliente. Essa página é mantida como uma referência para os desenvolvedores que ainda usam as métricas legadas.

Recomendamos o uso das métricas integradas do lado do cliente descritas na Visão geral das métricas do lado do cliente, em vez das métricas legadas descritas nesta página.

Ativar métricas

Essas informações são destinadas a clientes que usam as métricas legadas. Para ativar as métricas mais recentes integradas ao lado do cliente, consulte Configurar métricas do lado do cliente.

O cliente HBase do Cloud Bigtable para Java usava o DropBoard Metrics para coletar e reportar métricas do lado do cliente. Como a coleta de métricas pode adicionar uma quantidade muito pequena de latência (microssegundos de um dígito) a cada solicitação, as métricas não eram ativadas por padrão. As seções a seguir explicam como ativar as métricas legadas do lado do cliente.

Usar o gerador de relatórios Log4j

A maneira mais simples de ativar as métricas legadas do lado do cliente é adicionar a linha a seguir ao arquivo de configuração Log4j:

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

Essa definição de configuração ativa a coleta de métricas e registra métricas do Bigtable com um SLF4J logger.

Usar outros geradores de relatórios

Você pode usar outros tipos de geradores de relatórios por meio da atualização do código do aplicativo. Por exemplo, veja um gerador de relatórios que envia métricas a 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 Dropassistant Metrics fornece relatórios para JMX, geração de registros de console, SLF4J e CSV. Há também vários repórteres de terceiros disponíveis.

Métricas disponíveis

Nesta seção, descrevemos as métricas disponíveis quando as métricas legadas do lado do cliente do HBase estão ativadas. Cada métrica tem um dos seguintes tipos:

  • Contador: contagem cumulativa por máquina virtual Java (JVM, na sigla em inglês).
  • Medidor: informações de contagem mais informações de capacidade (uma contagem para o último minuto, 5 minutos ou 15 minutos).
  • Temporizador: informações do medidor mais dados de latência (como mediana, média e 95º percentil).

Somente determinadas métricas são coletadas para cada tipo de solicitação. Consulte "Exemplo: métricas de uma solicitação Put" para ver um exemplo das métricas coletadas durante uma solicitação Put.

Métricas de canal

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

Métricas de RPC gerais

Tipo Nome Descrição
Contador google-cloud-bigtable.grpc.rpc.active O número de chamadas de procedimento remoto (RPCs, na sigla em inglês) ativas no momento.
Medidor google-cloud-bigtable.grpc.rpc.performed Capacidade de RPC.

Métricas de método de dados

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

  • ReadRows: implementa recebimentos e verificações.
  • MutateRow: implementa inserções e exclusõ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: recupera informações de regiã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 levam. As operações incluem a quantidade total de latência de todos os RPCs que são realizados. (Geralmente, apenas um RPC é realizado. Novas tentativas no lado do cliente podem fazer com que o mesmo RPC seja executado mais de uma vez se houver um erro temporário.)
Temporizador google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency O tempo necessário para receber a primeira resposta a uma solicitação de verificação.
Medidor google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed O número de novas tentativas que foram realizadas.
Medidor google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures O número de falhas não repetidas.
Medidor google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted O número de vezes que a repetição foi cancelada porque muitas tentativas falharam.

Métricas em massa

Métricas em massa são fornecidas para métodos que retornam mais de uma resposta, como uma gravação em massa.

Tipo Nome Descrição
Medidor google-cloud-bigtable.scanner.results A capacidade de linhas individuais retornadas por uma verificação.
Medidor google-cloud-bigtable.bulk-mutator.mutations.added A capacidade de mutações individuais adicionadas para cada solicitação MutateRows.
Medidor google-cloud-bigtable.bulk-mutator.mutations.retried O número de mutações individuais repetidas ao longo do tempo.

Métricas da tabela do Bigtable

A conversão de objetos do Bigtable em objetos do HBase pode aumentar a latência de uma solicitação. Os timers a seguir podem ser correlacionados com os timers *.operation.latency especificados para avaliar o custo da conversão.

Tipo Nome Descrição
Temporizador google-cloud-bigtable.table.put.latency O tempo que as operações individuais Put levam. 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 levam. Correlaciona-se com google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

Exemplo: métricas para uma solicitação Put

Quando as métricas do lado do cliente estão ativadas, as seguintes métricas são coletadas para uma solicitação Put bem-sucedida que não é repetida:

  • 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 coleta dessas métricas adiciona aproximadamente 1 microssegundo (1/1000 de milésimo de segundo) à operação Put. A operação Put geral pode ser de 2 a 3 milissegundos, supondo que a operação inclua cerca de 1 KB de dados.