Skip to content

Commit 7c46f16

Browse files
authored
impl(bigtable): add grpc metrics exporter (#16288)
1 parent 842dfb2 commit 7c46f16

7 files changed

Lines changed: 890 additions & 2 deletions

File tree

google/cloud/bigtable/BUILD.bazel

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ cc_library(
4343
srcs = google_cloud_cpp_bigtable_srcs,
4444
hdrs = google_cloud_cpp_bigtable_hdrs,
4545
local_defines = select({
46-
":metrics_enabled": ["GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS"],
46+
":metrics_enabled": [
47+
"GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS",
48+
"GOOGLE_CLOUD_CPP_BIGTABLE_WITH_GRPC_OTEL_METRICS",
49+
],
4750
"//conditions:default": [],
4851
}),
4952
visibility = [
@@ -65,6 +68,7 @@ cc_library(
6568
] + select({
6669
":metrics_enabled": [
6770
"//:opentelemetry",
71+
"@grpc//:grpcpp_otel_plugin",
6872
"@opentelemetry-cpp//api",
6973
"@opentelemetry-cpp//sdk/src/metrics",
7074
],
@@ -121,6 +125,7 @@ cc_library(
121125
local_defines = select({
122126
":metrics_enabled": [
123127
"GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS",
128+
"GOOGLE_CLOUD_CPP_BIGTABLE_WITH_GRPC_OTEL_METRICS",
124129
"GOOGLE_CLOUD_CPP_BIGTABLE_QUERY_PLAN_REFRESH_ASSERT",
125130
],
126131
"//conditions:default": ["GOOGLE_CLOUD_CPP_BIGTABLE_QUERY_PLAN_REFRESH_ASSERT"],

google/cloud/bigtable/CMakeLists.txt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ add_library(
190190
internal/endpoint_options.h
191191
internal/google_bytes_traits.cc
192192
internal/google_bytes_traits.h
193+
internal/grpc_metrics_exporter.cc
194+
internal/grpc_metrics_exporter.h
193195
internal/logging_result_set_reader.cc
194196
internal/logging_result_set_reader.h
195197
internal/metrics.cc
@@ -285,7 +287,17 @@ target_compile_definitions(google_cloud_cpp_bigtable
285287
PRIVATE GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS)
286288
target_link_libraries(google_cloud_cpp_bigtable
287289
PUBLIC google-cloud-cpp::opentelemetry)
288-
set(EXTRA_MODULES "google_cloud_cpp_opentelemetry" "opentelemetry_metrics")
290+
if (TARGET gRPC::grpcpp_otel_plugin)
291+
target_compile_definitions(
292+
google_cloud_cpp_bigtable
293+
PRIVATE GOOGLE_CLOUD_CPP_BIGTABLE_WITH_GRPC_OTEL_METRICS)
294+
target_link_libraries(google_cloud_cpp_bigtable
295+
PUBLIC gRPC::grpcpp_otel_plugin)
296+
set(EXTRA_MODULES "google_cloud_cpp_opentelemetry" "grpcpp_otel_plugin"
297+
"opentelemetry_metrics")
298+
else ()
299+
set(EXTRA_MODULES "google_cloud_cpp_opentelemetry" "opentelemetry_metrics")
300+
endif ()
289301
google_cloud_cpp_add_common_options(google_cloud_cpp_bigtable)
290302
target_include_directories(
291303
google_cloud_cpp_bigtable
@@ -460,6 +472,7 @@ if (BUILD_TESTING)
460472
internal/defaults_test.cc
461473
internal/dynamic_channel_pool_test.cc
462474
internal/google_bytes_traits_test.cc
475+
internal/grpc_metrics_exporter_test.cc
463476
internal/logging_result_set_reader_test.cc
464477
internal/metrics_test.cc
465478
internal/mutate_rows_limiter_test.cc
@@ -528,6 +541,11 @@ if (BUILD_TESTING)
528541
target_compile_definitions(
529542
${target} PRIVATE GOOGLE_CLOUD_CPP_BIGTABLE_WITH_OTEL_METRICS)
530543
endif ()
544+
if (TARGET gRPC::grpcpp_otel_plugin)
545+
target_compile_definitions(
546+
${target}
547+
PRIVATE GOOGLE_CLOUD_CPP_BIGTABLE_WITH_GRPC_OTEL_METRICS)
548+
endif ()
531549
google_cloud_cpp_add_common_options(${target})
532550
add_test(NAME ${target} COMMAND ${target})
533551
endforeach ()

google/cloud/bigtable/bigtable_client_unit_tests.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ bigtable_client_unit_tests = [
5555
"internal/defaults_test.cc",
5656
"internal/dynamic_channel_pool_test.cc",
5757
"internal/google_bytes_traits_test.cc",
58+
"internal/grpc_metrics_exporter_test.cc",
5859
"internal/logging_result_set_reader_test.cc",
5960
"internal/metrics_test.cc",
6061
"internal/mutate_rows_limiter_test.cc",

google/cloud/bigtable/google_cloud_cpp_bigtable.bzl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ google_cloud_cpp_bigtable_hdrs = [
9494
"internal/dynamic_channel_pool.h",
9595
"internal/endpoint_options.h",
9696
"internal/google_bytes_traits.h",
97+
"internal/grpc_metrics_exporter.h",
9798
"internal/logging_result_set_reader.h",
9899
"internal/metrics.h",
99100
"internal/mutate_rows_limiter.h",
@@ -206,6 +207,7 @@ google_cloud_cpp_bigtable_srcs = [
206207
"internal/default_row_reader.cc",
207208
"internal/defaults.cc",
208209
"internal/google_bytes_traits.cc",
210+
"internal/grpc_metrics_exporter.cc",
209211
"internal/logging_result_set_reader.cc",
210212
"internal/metrics.cc",
211213
"internal/mutate_rows_limiter.cc",

0 commit comments

Comments
 (0)