Client-side metrics descriptions
Client-side metrics are available when you use the Bigtable client library for Java or the Bigtable HBase client for Java. This page provides a detailed description of each client-side metric.
To learn how to set up and configure client-side metrics, see Set up client-side metrics . For an overview, see the Client-side metrics overview .
Metrics are published to the region of the Bigtable cluster that
they are for. If Bigtable can't resolve the cluster for a metric,
like when an operation fails, then the metric is published to the global region
and the cluster
tag has the value unspecified
.
Use client-side metrics in conjunction with server-side metrics for performance debugging. For a comprehensive list of Bigtable server-side and client-side metrics, see Metrics .
Operation latencies
bigtable.googleapis.com/client/operation_latencies
For
ReadRows
requests, the operation latencies include
the application processing time for each returned message.-
ReadRow -
ReadRows -
MutateRow -
MutateRows -
SampleRowKeys -
CheckAndMutateRow -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- final operation status
- streaming operation
- client name
Attempt latencies
bigtable.googleapis.com/client/attempt_latencies
Under normal circumstances, this value is identical to
operation_latencies
. If the client receives transient
errors, however, then operation_latencies
is the sum of
all attempt_latencies
and the exponential delays.-
ReadRow -
ReadRows -
MutateRow -
MutateRows -
SampleRowKeys -
CheckAndMutateRow -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- attempt status
- streaming operation
- client name
Retry count
bigtable.googleapis.com/client/retry_count
-
ReadRow -
ReadRows -
MutateRow -
MutateRows -
SampleRowKeys -
CheckAndMutateRow -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- final operation status
- client name
Application blocking latencies
bigtable.googleapis.com/client/application_blocking_latencies
ReadRows
requests. The start and stop times
for this metric depend on the way that you send the read request; see Application blocking latencies timer
examples
for details.-
ReadRow -
ReadRows -
MutateRow -
MutateRows -
SampleRowKeys -
CheckAndMutateRow -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- client name
Application blocking latencies timer examples
ReadRows
requests are typically sent in one of three ways: iteratively,
asynchronously, or as a future call. The following examples demonstrate the
start and stop times for the application blocking latencies for each type of ReadRows
operation.
Iterative
long
totaLatency
=
0
;
ServerStream<Row>
stream
=
bigtableDataClient
.
readRows
(
query
);
for
(
Row
row
:
stream
)
{
timer
.
start
();
// Do something with row
timer
.
stop
();
totalLatency
+=
timer
.
elapsed
();
}
Asynchronous
client
.
readRowsAsync
(
query
,
new
ResponseObserver<Row>
()
{
@Override
public
void
onStart
(
StreamController
streamController
)
{
}
@Override
public
void
onResponse
(
Row
row
)
{
timer
.
start
();
// Do something with the row
timer
.
stop
();
totalLatency
+=
timer
.
elapsed
();
}
@Override
public
void
onError
(
Throwable
throwable
)
{
// Do something with the error
}
@Override
public
void
onComplete
()
{
}
});
Future call
The application blocking latencies should be approximately 0 (no timer) for
this type of ReadRows
request.
List<Row>
rows
=
bigtableDataClient
.
readRowsCallable
().
all
().
call
(
query
);
First-response latencies
bigtable.googleapis.com/client/first_response_latencies
ReadRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- final operation status
- client name
Server latencies
bigtable.googleapis.com/client/server_latencies
-
ReadRow -
ReadRows -
MutateRow -
MutateRows -
SampleRowKeys -
CheckAndMutateRow -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- attempt status
- streaming operation
- client name
Connectivity error count
bigtable.googleapis.com/client/connectivity_error_count
-
ReadRow -
ReadRows -
MutateRow -
MutateRows -
SampleRowKeys -
CheckAndMutateRow -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- attempt status
- client name
Client blocking latencies
bigtable.googleapis.com/client/client_blocking_latencies
-
ReadRow for version 2.21.0 or later -
ReadRows for version 2.21.0 or later -
MutateRow for version 2.21.0 or later -
MutateRows for version 2.21.0 or later -
SampleRowKeys for version 2.21.0 or later -
CheckAndMutateRow for version 2.21.0 or later -
BulkReadRows -
BulkMutateRows
- project ID
- instance ID
- table
- cluster
- zone
- app profile ID
- method name
- client name

