[CSM] Remove experimental CSM PluginOption API in favor of CsmObservability API

pull/35812/head
Yash Tibrewal 1 year ago
parent 3ebccf55cd
commit d2488f41c3
  1. 10
      include/grpcpp/ext/csm_observability.h
  2. 4
      src/cpp/ext/csm/csm_observability.cc
  3. 8
      test/cpp/ext/csm/csm_observability_test.cc
  4. 16
      test/cpp/interop/xds_interop_client.cc
  5. 16
      test/cpp/interop/xds_interop_server.cc

@ -90,16 +90,6 @@ class CsmObservabilityBuilder {
std::unique_ptr<grpc::internal::OpenTelemetryPluginBuilderImpl> builder_; std::unique_ptr<grpc::internal::OpenTelemetryPluginBuilderImpl> builder_;
}; };
/// Creates an OpenTelemetryPluginOption that would add additional labels on
/// gRPC metrics to enhance observability for CSM users.
///
/// Sample Usage -
/// OpenTelemetryPluginBuilder()
/// .SetMeterProvider(provider)
/// .AddPluginOption(MakeCsmOpenTelemetryPluginOption())
/// .BuildAndRegisterGlobal();
std::unique_ptr<OpenTelemetryPluginOption> MakeCsmOpenTelemetryPluginOption();
} // namespace experimental } // namespace experimental
} // namespace grpc } // namespace grpc

@ -139,9 +139,5 @@ absl::StatusOr<CsmObservability> CsmObservabilityBuilder::BuildAndRegister() {
return CsmObservability(); return CsmObservability();
} }
std::unique_ptr<OpenTelemetryPluginOption> MakeCsmOpenTelemetryPluginOption() {
return std::make_unique<grpc::internal::CsmOpenTelemetryPluginOption>();
}
} // namespace experimental } // namespace experimental
} // namespace grpc } // namespace grpc

@ -63,14 +63,6 @@ TEST(CsmChannelTargetSelectorTest, XdsTargetsWithTDAuthority) {
"xds://traffic-director-global.xds.googleapis.com/foo")); "xds://traffic-director-global.xds.googleapis.com/foo"));
} }
TEST(CsmPluginOptionTest, Basic) {
EXPECT_EQ(
OpenTelemetryPluginBuilder()
.AddPluginOption(experimental::MakeCsmOpenTelemetryPluginOption())
.BuildAndRegisterGlobal(),
absl::OkStatus());
}
} // namespace } // namespace
} // namespace testing } // namespace testing
} // namespace grpc } // namespace grpc

@ -427,7 +427,7 @@ void RunTestLoop(std::chrono::duration<double> duration_per_query,
GPR_UNREACHABLE_CODE(thread.join()); GPR_UNREACHABLE_CODE(thread.join());
} }
void EnableCsmObservability() { grpc::experimental::CsmObservability EnableCsmObservability() {
gpr_log(GPR_DEBUG, "Registering Prometheus exporter"); gpr_log(GPR_DEBUG, "Registering Prometheus exporter");
opentelemetry::exporter::metrics::PrometheusExporterOptions opts; opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
// default was "localhost:9464" which causes connection issue across GKE // default was "localhost:9464" which causes connection issue across GKE
@ -438,12 +438,11 @@ void EnableCsmObservability() {
auto meter_provider = auto meter_provider =
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>(); std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
meter_provider->AddMetricReader(std::move(prometheus_exporter)); meter_provider->AddMetricReader(std::move(prometheus_exporter));
assert(grpc::OpenTelemetryPluginBuilder() auto observability = grpc::experimental::CsmObservabilityBuilder()
.AddPluginOption( .SetMeterProvider(std::move(meter_provider))
grpc::experimental::MakeCsmOpenTelemetryPluginOption()) .BuildAndRegister();
.SetMeterProvider(std::move(meter_provider)) assert(observability.ok());
.BuildAndRegisterGlobal() return *observability;
.ok());
} }
void RunServer(const int port, StatsWatchers* stats_watchers, void RunServer(const int port, StatsWatchers* stats_watchers,
@ -554,8 +553,9 @@ int main(int argc, char** argv) {
} }
BuildRpcConfigsFromFlags(&rpc_config_queue); BuildRpcConfigsFromFlags(&rpc_config_queue);
grpc::experimental::CsmObservability observability;
if (absl::GetFlag(FLAGS_enable_csm_observability)) { if (absl::GetFlag(FLAGS_enable_csm_observability)) {
EnableCsmObservability(); observability = EnableCsmObservability();
} }
std::chrono::duration<double> duration_per_query = std::chrono::duration<double> duration_per_query =

@ -43,7 +43,7 @@ ABSL_FLAG(bool, secure_mode, false,
ABSL_FLAG(bool, enable_csm_observability, false, ABSL_FLAG(bool, enable_csm_observability, false,
"Whether to enable CSM Observability"); "Whether to enable CSM Observability");
void EnableCsmObservability() { grpc::experimental::CsmObservability EnableCsmObservability() {
gpr_log(GPR_DEBUG, "Registering Prometheus exporter"); gpr_log(GPR_DEBUG, "Registering Prometheus exporter");
opentelemetry::exporter::metrics::PrometheusExporterOptions opts; opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
// default was "localhost:9464" which causes connection issue across GKE // default was "localhost:9464" which causes connection issue across GKE
@ -54,12 +54,11 @@ void EnableCsmObservability() {
auto meter_provider = auto meter_provider =
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>(); std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
meter_provider->AddMetricReader(std::move(prometheus_exporter)); meter_provider->AddMetricReader(std::move(prometheus_exporter));
assert(grpc::OpenTelemetryPluginBuilder() auto observability = grpc::experimental::CsmObservabilityBuilder()
.AddPluginOption( .SetMeterProvider(std::move(meter_provider))
grpc::experimental::MakeCsmOpenTelemetryPluginOption()) .BuildAndRegister();
.SetMeterProvider(std::move(meter_provider)) assert(observability.ok());
.BuildAndRegisterGlobal() return *observability;
.ok());
} }
int main(int argc, char** argv) { int main(int argc, char** argv) {
@ -82,8 +81,9 @@ int main(int argc, char** argv) {
} }
grpc::EnableDefaultHealthCheckService(false); grpc::EnableDefaultHealthCheckService(false);
bool enable_csm_observability = absl::GetFlag(FLAGS_enable_csm_observability); bool enable_csm_observability = absl::GetFlag(FLAGS_enable_csm_observability);
grpc::experimental::CsmObservability observability;
if (enable_csm_observability) { if (enable_csm_observability) {
EnableCsmObservability(); observability = EnableCsmObservability();
} }
grpc::testing::RunServer(absl::GetFlag(FLAGS_secure_mode), grpc::testing::RunServer(absl::GetFlag(FLAGS_secure_mode),
enable_csm_observability, port, maintenance_port, enable_csm_observability, port, maintenance_port,

Loading…
Cancel
Save