[CSM] De-experimentalize CsmObservability API (#35836)
Closes #35836
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35836 from yashykt:DeexperimentalizeCsmObs 1711e6d9b0
PiperOrigin-RevId: 605650394
This commit is contained in:
parent
f27fb07c84
commit
2999332d64
|
|
@ -158,7 +158,7 @@ class GreeterClient {
|
|||
absl::optional<Cookie> cookie_from_server_;
|
||||
};
|
||||
|
||||
absl::StatusOr<grpc::experimental::CsmObservability> InitializeObservability() {
|
||||
absl::StatusOr<grpc::CsmObservability> InitializeObservability() {
|
||||
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
|
||||
// default was "localhost:9464" which causes connection issue across GKE pods
|
||||
opts.url = "0.0.0.0:9464";
|
||||
|
|
@ -167,7 +167,7 @@ absl::StatusOr<grpc::experimental::CsmObservability> InitializeObservability() {
|
|||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
return grpc::experimental::CsmObservabilityBuilder()
|
||||
return grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ int main(int argc, char** argv) {
|
|||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
auto observability = grpc::experimental::CsmObservabilityBuilder()
|
||||
auto observability = grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
if (!observability.ok()) {
|
||||
|
|
|
|||
|
|
@ -36,8 +36,6 @@ namespace internal {
|
|||
class OpenTelemetryPluginBuilderImpl;
|
||||
} // namespace internal
|
||||
|
||||
namespace experimental {
|
||||
|
||||
// This object maintains state around the registered CsmObservability plugin.
|
||||
// The application is responsible for retaining this object until it has closed
|
||||
// all channels and servers that are recording metrics.
|
||||
|
|
@ -102,7 +100,15 @@ class CsmObservabilityBuilder {
|
|||
std::unique_ptr<grpc::internal::OpenTelemetryPluginBuilderImpl> builder_;
|
||||
};
|
||||
|
||||
namespace experimental {
|
||||
// TODO(yashykt): Remove this once no longer needed.
|
||||
using CsmObservability GRPC_DEPRECATED("Use grpc::CsmObservability instead.") =
|
||||
grpc::CsmObservability;
|
||||
using CsmObservabilityBuilder GRPC_DEPRECATED(
|
||||
"Use grpc::CsmObservabilityBuilder instead.") =
|
||||
grpc::CsmObservabilityBuilder;
|
||||
} // namespace experimental
|
||||
|
||||
} // namespace grpc
|
||||
|
||||
#endif // GRPCPP_EXT_CSM_OBSERVABILITY_H
|
||||
|
|
|
|||
|
|
@ -100,8 +100,6 @@ class CsmOpenTelemetryPluginOption
|
|||
|
||||
} // namespace internal
|
||||
|
||||
namespace experimental {
|
||||
|
||||
//
|
||||
// CsmObservability
|
||||
//
|
||||
|
|
@ -164,5 +162,4 @@ absl::StatusOr<CsmObservability> CsmObservabilityBuilder::BuildAndRegister() {
|
|||
return CsmObservability();
|
||||
}
|
||||
|
||||
} // namespace experimental
|
||||
} // namespace grpc
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace testing {
|
|||
namespace {
|
||||
|
||||
TEST(CsmObservabilityBuilderTest, Basic) {
|
||||
EXPECT_EQ(experimental::CsmObservabilityBuilder().BuildAndRegister().status(),
|
||||
EXPECT_EQ(CsmObservabilityBuilder().BuildAndRegister().status(),
|
||||
absl::OkStatus());
|
||||
}
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ TEST(GsmDependencyTest, GoogleCloudOpenTelemetryDependency) {
|
|||
}
|
||||
|
||||
TEST(CsmChannelTargetSelectorTest, NonXdsTargets) {
|
||||
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister();
|
||||
auto obs = CsmObservabilityBuilder().BuildAndRegister();
|
||||
EXPECT_FALSE(internal::CsmChannelTargetSelector("foo.bar.google.com"));
|
||||
EXPECT_FALSE(internal::CsmChannelTargetSelector("dns:///foo.bar.google.com"));
|
||||
EXPECT_FALSE(
|
||||
|
|
@ -51,24 +51,24 @@ TEST(CsmChannelTargetSelectorTest, NonXdsTargets) {
|
|||
}
|
||||
|
||||
TEST(CsmChannelTargetSelectorTest, XdsTargets) {
|
||||
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister();
|
||||
auto obs = CsmObservabilityBuilder().BuildAndRegister();
|
||||
EXPECT_TRUE(internal::CsmChannelTargetSelector("xds:///foo"));
|
||||
EXPECT_TRUE(internal::CsmChannelTargetSelector("xds:///foo.bar"));
|
||||
}
|
||||
|
||||
TEST(CsmChannelTargetSelectorTest, XdsTargetsWithNonTDAuthority) {
|
||||
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister();
|
||||
auto obs = CsmObservabilityBuilder().BuildAndRegister();
|
||||
EXPECT_FALSE(internal::CsmChannelTargetSelector("xds://authority/foo"));
|
||||
}
|
||||
|
||||
TEST(CsmChannelTargetSelectorTest, XdsTargetsWithTDAuthority) {
|
||||
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister();
|
||||
auto obs = CsmObservabilityBuilder().BuildAndRegister();
|
||||
EXPECT_TRUE(internal::CsmChannelTargetSelector(
|
||||
"xds://traffic-director-global.xds.googleapis.com/foo"));
|
||||
}
|
||||
|
||||
TEST(CsmChannelTargetSelectorTest, CsmObservabilityOutOfScope) {
|
||||
{ auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); }
|
||||
{ auto obs = CsmObservabilityBuilder().BuildAndRegister(); }
|
||||
// When CsmObservability goes out of scope, the target selector should return
|
||||
// false as well.
|
||||
EXPECT_FALSE(internal::CsmChannelTargetSelector("foo.bar.google.com"));
|
||||
|
|
@ -78,18 +78,18 @@ TEST(CsmChannelTargetSelectorTest, CsmObservabilityOutOfScope) {
|
|||
}
|
||||
|
||||
TEST(CsmServerSelectorTest, ChannelArgsWithoutXdsServerArg) {
|
||||
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister();
|
||||
auto obs = CsmObservabilityBuilder().BuildAndRegister();
|
||||
EXPECT_FALSE(internal::CsmServerSelector(grpc_core::ChannelArgs()));
|
||||
}
|
||||
|
||||
TEST(CsmServerSelectorTest, ChannelArgsWithXdsServerArg) {
|
||||
auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister();
|
||||
auto obs = CsmObservabilityBuilder().BuildAndRegister();
|
||||
EXPECT_TRUE(internal::CsmServerSelector(
|
||||
grpc_core::ChannelArgs().Set(GRPC_ARG_XDS_ENABLED_SERVER, true)));
|
||||
}
|
||||
|
||||
TEST(CsmServerSelectorTest, CsmObservabilityOutOfScope) {
|
||||
{ auto obs = experimental::CsmObservabilityBuilder().BuildAndRegister(); }
|
||||
{ auto obs = CsmObservabilityBuilder().BuildAndRegister(); }
|
||||
// When CsmObservability goes out of scope, the server selector should return
|
||||
// false as well.
|
||||
EXPECT_FALSE(internal::CsmServerSelector(grpc_core::ChannelArgs()));
|
||||
|
|
|
|||
|
|
@ -427,7 +427,7 @@ void RunTestLoop(std::chrono::duration<double> duration_per_query,
|
|||
GPR_UNREACHABLE_CODE(thread.join());
|
||||
}
|
||||
|
||||
grpc::experimental::CsmObservability EnableCsmObservability() {
|
||||
grpc::CsmObservability EnableCsmObservability() {
|
||||
gpr_log(GPR_DEBUG, "Registering Prometheus exporter");
|
||||
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
|
||||
// default was "localhost:9464" which causes connection issue across GKE
|
||||
|
|
@ -438,7 +438,7 @@ grpc::experimental::CsmObservability EnableCsmObservability() {
|
|||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
auto observability = grpc::experimental::CsmObservabilityBuilder()
|
||||
auto observability = grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
assert(observability.ok());
|
||||
|
|
@ -553,7 +553,7 @@ int main(int argc, char** argv) {
|
|||
}
|
||||
|
||||
BuildRpcConfigsFromFlags(&rpc_config_queue);
|
||||
grpc::experimental::CsmObservability observability;
|
||||
grpc::CsmObservability observability;
|
||||
if (absl::GetFlag(FLAGS_enable_csm_observability)) {
|
||||
observability = EnableCsmObservability();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ ABSL_FLAG(bool, secure_mode, false,
|
|||
ABSL_FLAG(bool, enable_csm_observability, false,
|
||||
"Whether to enable CSM Observability");
|
||||
|
||||
grpc::experimental::CsmObservability EnableCsmObservability() {
|
||||
grpc::CsmObservability EnableCsmObservability() {
|
||||
gpr_log(GPR_DEBUG, "Registering Prometheus exporter");
|
||||
opentelemetry::exporter::metrics::PrometheusExporterOptions opts;
|
||||
// default was "localhost:9464" which causes connection issue across GKE
|
||||
|
|
@ -54,7 +54,7 @@ grpc::experimental::CsmObservability EnableCsmObservability() {
|
|||
auto meter_provider =
|
||||
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
|
||||
meter_provider->AddMetricReader(std::move(prometheus_exporter));
|
||||
auto observability = grpc::experimental::CsmObservabilityBuilder()
|
||||
auto observability = grpc::CsmObservabilityBuilder()
|
||||
.SetMeterProvider(std::move(meter_provider))
|
||||
.BuildAndRegister();
|
||||
assert(observability.ok());
|
||||
|
|
@ -81,7 +81,7 @@ int main(int argc, char** argv) {
|
|||
}
|
||||
grpc::EnableDefaultHealthCheckService(false);
|
||||
bool enable_csm_observability = absl::GetFlag(FLAGS_enable_csm_observability);
|
||||
grpc::experimental::CsmObservability observability;
|
||||
grpc::CsmObservability observability;
|
||||
if (enable_csm_observability) {
|
||||
observability = EnableCsmObservability();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue