기존 HBase 클라이언트 측 측정항목
이 페이지에서는 기본 제공 클라이언트 측 측정항목으로 변경된 클라이언트 측 측정항목에 대해 설명합니다. 이 페이지는 여전히 기존 측정항목을 사용하는 모든 개발자를 위한 참조로 유지됩니다.
이 페이지에 설명된 기존 측정항목 대신 클라이언트 측 측정항목 개요에 설명된 기본 제공 클라이언트 측 측정항목을 사용하는 것이 좋습니다.
측정항목 사용 설정
이 정보는 기존 측정항목을 사용하는 고객을 위해 제공됩니다. 최신 기본 제공 클라이언트 측 측정항목을 사용 설정하려면 클라이언트 측 측정항목 설정을 참조하세요.
자바용 Cloud Bigtable HBase 클라이언트는 Dropwizard 측정항목을 사용하여 클라이언트 측 측정항목을 수집하고 보고합니다. 측정항목을 수집하면 각 요청에 매우 짧은 지연 시간(10마이크로초 미만)이 추가될 수 있기 때문에 측정항목은 기본적으로 사용 설정되지 않습니다. 다음 섹션에서는 기존 클라이언트 측 측정항목을 사용 설정하는 방법을 설명합니다.
Log4j 보고자 사용
기존 클라이언트 측 측정항목을 사용 설정하는 가장 간단한 방법은 Log4j 구성 파일에 다음 줄을 추가하는 것입니다.
log4j.category.com.google.cloud.bigtable.metrics=DEBUG
이 구성 설정은 측정항목 수집을 활성화하고 SLF4J 로거로 Bigtable 측정항목을 로깅합니다.
다른 보고자 사용
애플리케이션의 코드를 업데이트하여 다른 유형의 보고자를 사용할 수 있습니다. 예를 들어, 다음은 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 측정항목은 JMX, 콘솔 로깅, SLF4J, CSV용 보고자를 제공합니다. 다양한 타사 보고자를 사용할 수도 있습니다.
사용 가능한 측정항목
이 섹션에서는 기존 HBase 클라이언트 측 측정항목이 사용 설정되어 있을 때 사용 가능한 측정항목을 설명합니다. 각 측정항목은 다음 유형 중 하나입니다.
- 카운터: Java 가상 머신(JVM)당 누적 개수입니다.
- 측정기: 개수 정보와 처리량 정보를 더한 값입니다(마지막 1분, 5분, 15분당 개수).
- 타이머: 측정기 정보와 지연 시간 정보를 더한 값입니다(중앙값, 평균, 95번째 백분위수).
각 요청 유형에 대해 특정 측정항목만 수집됩니다. Put
요청 중에 수집되는 측정항목의 예는 '예: Put
요청의 측정항목'을 참조하세요.
채널 수준 측정항목
유형 | 이름 | 설명 |
---|---|---|
카운터 | google-cloud-bigtable.sessions.active |
열려 있는 BigtableSession 수입니다. 각 HBase Connection 에는 단일 BigtableSession 이 있습니다. |
카운터 | google-cloud-bigtable.grpc.channel.active |
열려 있는 하위 수준 gRPC/Netty 채널 수입니다. 각 BigtableSession 에는 많은 gRPC 채널이 있습니다. |
일반 RPC 측정항목
유형 | 이름 | 설명 |
---|---|---|
카운터 | google-cloud-bigtable.grpc.rpc.active |
현재 활성 상태인 리모트 프로시져 콜(RPC) 수입니다. |
측정기 | google-cloud-bigtable.grpc.rpc.performed |
RPC 처리량입니다. |
데이터 메소드 측정항목
다음 데이터 메소드에 대해 데이터 메소드 측정항목이 수집됩니다.
ReadRows
: 가져오기 및 검사를 구현합니다.MutateRow
: 입력 및 삭제를 구현합니다.MutateRows
: 일괄 쓰기를 구현합니다.CheckAndMutateRow
: HBase의checkAnd*
메서드를 구현합니다.ReadModifyWrite
: HBase의Append
및Increment
메서드를 구현합니다.SampleRowKeys
: 맵리듀스 작업에 사용되는 리전 정보를 검색합니다.
유형 | 이름 | 설명 |
---|---|---|
타이머 | google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency |
개별 작업에 걸리는 시간입니다. 작업에는 수행되는 모든 RPC의 총 지연 시간이 포함됩니다. 대개 한 RPC만 수행됩니다. 일시적 오류가 있는 경우 클라이언트 측에서 재시도하기 때문에 동일한 RPC가 여러 번 수행될 수 있습니다. |
타이머 | google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency |
검색 요청에 대한 첫 번째 응답을 받는 데 걸리는 시간입니다. |
측정기 | google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed |
수행된 재시도 횟수입니다. |
측정기 | google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures |
재시도할 수 없는 오류 수입니다. |
측정기 | google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted |
재시도가 너무 많이 실패하여 재시도가 취소된 횟수입니다. |
일괄 측정항목
일괄 측정항목은 일괄 쓰기와 같이 둘 이상의 응답을 반환하는 메소드에 제공됩니다.
유형 | 이름 | 설명 |
---|---|---|
측정기 | google-cloud-bigtable.scanner.results |
Scan에서 반환하는 개별 행의 처리량입니다. |
측정기 | google-cloud-bigtable.bulk-mutator.mutations.added |
각 MutateRows 요청에 추가된 개별 변형의 처리량입니다. |
측정기 | google-cloud-bigtable.bulk-mutator.mutations.retried |
여러 시간에 걸쳐 재시도한 개별 변이 수입니다. |
Bigtable 테이블 측정항목
CloudBigtable 객체를 HBase 객체로 변환하면 요청 지연 시간이 늘어날 수 있습니다. 다음 타이머를 지정된 *.operation.latency
타이머와 연결하여 전환 비용을 측정할 수 있습니다.
유형 | 이름 | 설명 |
---|---|---|
타이머 | google-cloud-bigtable.table.put.latency |
개별 Put 작업에 걸리는 시간입니다.
google-cloud-bigtable.grpc.method.MutateRow.operation.latency 와 상관 관계가 있습니다. |
타이머 | google-cloud-bigtable.table.get.latency |
개별 Get 작업에 걸리는 시간입니다.
google-cloud-bigtable.grpc.method.ReadRows.operation.latency 와 상관 관계가 있습니다. |
예: Put
요청의 측정항목
클라이언트 측 측정항목이 사용 설정되면 재시도되지 않은 성공적인 Put
요청에 대해 다음 측정항목이 수집됩니다.
- Counter:
google-cloud-bigtable.grpc.rpc.active
- Meter:
google-cloud-bigtable.grpc.rpc.performed
- Timer:
google-cloud-bigtable.grpc.method.MutateRow.operation.latency
- Timer:
google-cloud-bigtable.table.put.latency
이러한 측정항목을 수집하면 약 1마이크로초(1/1000 밀리초)가 Put
작업에 추가됩니다. 작업에 약 1KB의 데이터가 포함되어 있다고 가정할 때 전체 Put
작업에 2~3밀리초가 걸릴 수 있습니다.