[OTel] De-experimentalize API (#35509)

Closes #35509

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35509 from yashykt:DeeexperimentalizeOTelPlugin f5edf94f2cc089ec584cb85c2e0d1473a6a300f4
PiperOrigin-RevId: 597613307
diff --git a/BUILD b/BUILD
index 4256b1f..ffd68ab 100644
--- a/BUILD
+++ b/BUILD
@@ -2384,6 +2384,7 @@
     language = "c++",
     tags = ["nofixdeps"],
     deps = [
+        ":grpcpp_otel_plugin",
         "//src/cpp/ext/csm:csm_observability",
     ],
 )
diff --git a/include/grpcpp/ext/csm_observability.h b/include/grpcpp/ext/csm_observability.h
index 58a9e96..104f81a 100644
--- a/include/grpcpp/ext/csm_observability.h
+++ b/include/grpcpp/ext/csm_observability.h
@@ -90,8 +90,6 @@
   std::unique_ptr<grpc::internal::OpenTelemetryPluginBuilderImpl> builder_;
 };
 
-class OpenTelemetryPluginOption;
-
 /// Creates an OpenTelemetryPluginOption that would add additional labels on
 /// gRPC metrics to enhance observability for CSM users.
 ///
@@ -100,7 +98,8 @@
 ///     .SetMeterProvider(provider)
 ///     .AddPluginOption(MakeCsmOpenTelemetryPluginOption())
 ///     .BuildAndRegisterGlobal();
-std::unique_ptr<OpenTelemetryPluginOption> MakeCsmOpenTelemetryPluginOption();
+std::unique_ptr<grpc::OpenTelemetryPluginOption>
+MakeCsmOpenTelemetryPluginOption();
 
 }  // namespace experimental
 }  // namespace grpc
diff --git a/include/grpcpp/ext/otel_plugin.h b/include/grpcpp/ext/otel_plugin.h
index acb3532..a815106 100644
--- a/include/grpcpp/ext/otel_plugin.h
+++ b/include/grpcpp/ext/otel_plugin.h
@@ -36,8 +36,6 @@
 class OpenTelemetryPluginBuilderImpl;
 }  // namespace internal
 
-namespace experimental {
-
 class OpenTelemetryPluginOption {
  public:
   virtual ~OpenTelemetryPluginOption() = default;
@@ -114,7 +112,15 @@
  private:
   std::unique_ptr<internal::OpenTelemetryPluginBuilderImpl> impl_;
 };
+
+namespace experimental {
+// TODO(yashykt): Delete this after the 1.62 release.
+GRPC_DEPRECATED(
+    "Use grpc::OpenTelemetryPluginBuilder instead. The experimental version "
+    "will be deleted after the 1.62 release.")
+typedef grpc::OpenTelemetryPluginBuilder OpenTelemetryPluginBuilder;
 }  // namespace experimental
+
 }  // namespace grpc
 
 #endif  // GRPCPP_EXT_OTEL_PLUGIN_H
diff --git a/src/cpp/ext/otel/otel_plugin.cc b/src/cpp/ext/otel/otel_plugin.cc
index 51b5061..7f7ba29 100644
--- a/src/cpp/ext/otel/otel_plugin.cc
+++ b/src/cpp/ext/otel/otel_plugin.cc
@@ -61,23 +61,23 @@
 namespace {
 absl::flat_hash_set<std::string> BaseMetrics() {
   return absl::flat_hash_set<std::string>{
-      std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+      std::string(grpc::OpenTelemetryPluginBuilder::
                       kClientAttemptStartedInstrumentName),
-      std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+      std::string(grpc::OpenTelemetryPluginBuilder::
                       kClientAttemptDurationInstrumentName),
       std::string(
-          grpc::experimental::OpenTelemetryPluginBuilder::
+          grpc::OpenTelemetryPluginBuilder::
               kClientAttemptSentTotalCompressedMessageSizeInstrumentName),
       std::string(
-          grpc::experimental::OpenTelemetryPluginBuilder::
+          grpc::OpenTelemetryPluginBuilder::
               kClientAttemptRcvdTotalCompressedMessageSizeInstrumentName),
-      std::string(grpc::experimental::OpenTelemetryPluginBuilder::
-                      kServerCallStartedInstrumentName),
-      std::string(grpc::experimental::OpenTelemetryPluginBuilder::
-                      kServerCallDurationInstrumentName),
-      std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+      std::string(
+          grpc::OpenTelemetryPluginBuilder::kServerCallStartedInstrumentName),
+      std::string(
+          grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName),
+      std::string(grpc::OpenTelemetryPluginBuilder::
                       kServerCallSentTotalCompressedMessageSizeInstrumentName),
-      std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+      std::string(grpc::OpenTelemetryPluginBuilder::
                       kServerCallRcvdTotalCompressedMessageSizeInstrumentName)};
 }
 }  // namespace
@@ -172,74 +172,74 @@
     return;
   }
   auto meter = meter_provider->GetMeter("grpc-c++", GRPC_CPP_VERSION_STRING);
-  if (metrics_.contains(grpc::experimental::OpenTelemetryPluginBuilder::
+  if (metrics_.contains(grpc::OpenTelemetryPluginBuilder::
                             kClientAttemptStartedInstrumentName)) {
     g_otel_plugin_state_->client.attempt.started = meter->CreateUInt64Counter(
-        std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+        std::string(grpc::OpenTelemetryPluginBuilder::
                         kClientAttemptStartedInstrumentName),
         "Number of client call attempts started", "{attempt}");
   }
-  if (metrics_.contains(grpc::experimental::OpenTelemetryPluginBuilder::
+  if (metrics_.contains(grpc::OpenTelemetryPluginBuilder::
                             kClientAttemptDurationInstrumentName)) {
     g_otel_plugin_state_->client.attempt.duration =
         meter->CreateDoubleHistogram(
-            std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+            std::string(grpc::OpenTelemetryPluginBuilder::
                             kClientAttemptDurationInstrumentName),
             "End-to-end time taken to complete a client call attempt", "s");
   }
   if (metrics_.contains(
-          grpc::experimental::OpenTelemetryPluginBuilder::
+          grpc::OpenTelemetryPluginBuilder::
               kClientAttemptSentTotalCompressedMessageSizeInstrumentName)) {
     g_otel_plugin_state_->client.attempt.sent_total_compressed_message_size =
         meter->CreateUInt64Histogram(
             std::string(
-                grpc::experimental::OpenTelemetryPluginBuilder::
+                grpc::OpenTelemetryPluginBuilder::
                     kClientAttemptSentTotalCompressedMessageSizeInstrumentName),
             "Compressed message bytes sent per client call attempt", "By");
   }
   if (metrics_.contains(
-          grpc::experimental::OpenTelemetryPluginBuilder::
+          grpc::OpenTelemetryPluginBuilder::
               kClientAttemptRcvdTotalCompressedMessageSizeInstrumentName)) {
     g_otel_plugin_state_->client.attempt.rcvd_total_compressed_message_size =
         meter->CreateUInt64Histogram(
             std::string(
-                grpc::experimental::OpenTelemetryPluginBuilder::
+                grpc::OpenTelemetryPluginBuilder::
                     kClientAttemptRcvdTotalCompressedMessageSizeInstrumentName),
             "Compressed message bytes received per call attempt", "By");
   }
-  if (metrics_.contains(grpc::experimental::OpenTelemetryPluginBuilder::
-                            kServerCallStartedInstrumentName)) {
+  if (metrics_.contains(
+          grpc::OpenTelemetryPluginBuilder::kServerCallStartedInstrumentName)) {
     g_otel_plugin_state_->server.call.started = meter->CreateUInt64Counter(
-        std::string(grpc::experimental::OpenTelemetryPluginBuilder::
-                        kServerCallStartedInstrumentName),
+        std::string(
+            grpc::OpenTelemetryPluginBuilder::kServerCallStartedInstrumentName),
         "Number of server calls started", "{call}");
   }
-  if (metrics_.contains(grpc::experimental::OpenTelemetryPluginBuilder::
+  if (metrics_.contains(grpc::OpenTelemetryPluginBuilder::
                             kServerCallDurationInstrumentName)) {
     g_otel_plugin_state_->server.call.duration = meter->CreateDoubleHistogram(
-        std::string(grpc::experimental::OpenTelemetryPluginBuilder::
+        std::string(grpc::OpenTelemetryPluginBuilder::
                         kServerCallDurationInstrumentName),
         "End-to-end time taken to complete a call from server transport's "
         "perspective",
         "s");
   }
   if (metrics_.contains(
-          grpc::experimental::OpenTelemetryPluginBuilder::
+          grpc::OpenTelemetryPluginBuilder::
               kServerCallSentTotalCompressedMessageSizeInstrumentName)) {
     g_otel_plugin_state_->server.call.sent_total_compressed_message_size =
         meter->CreateUInt64Histogram(
             std::string(
-                grpc::experimental::OpenTelemetryPluginBuilder::
+                grpc::OpenTelemetryPluginBuilder::
                     kServerCallSentTotalCompressedMessageSizeInstrumentName),
             "Compressed message bytes sent per server call", "By");
   }
   if (metrics_.contains(
-          grpc::experimental::OpenTelemetryPluginBuilder::
+          grpc::OpenTelemetryPluginBuilder::
               kServerCallRcvdTotalCompressedMessageSizeInstrumentName)) {
     g_otel_plugin_state_->server.call.rcvd_total_compressed_message_size =
         meter->CreateUInt64Histogram(
             std::string(
-                grpc::experimental::OpenTelemetryPluginBuilder::
+                grpc::OpenTelemetryPluginBuilder::
                     kServerCallRcvdTotalCompressedMessageSizeInstrumentName),
             "Compressed message bytes received per server call", "By");
   }
@@ -272,8 +272,6 @@
 
 }  // namespace internal
 
-namespace experimental {
-
 constexpr absl::string_view
     OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName;
 constexpr absl::string_view
@@ -336,5 +334,4 @@
   impl_->BuildAndRegisterGlobal();
 }
 
-}  // namespace experimental
 }  // namespace grpc
diff --git a/src/cpp/ext/otel/otel_plugin.h b/src/cpp/ext/otel/otel_plugin.h
index 0aa3177..76c4d0b 100644
--- a/src/cpp/ext/otel/otel_plugin.h
+++ b/src/cpp/ext/otel/otel_plugin.h
@@ -82,7 +82,7 @@
 };
 
 class InternalOpenTelemetryPluginOption
-    : public grpc::experimental::OpenTelemetryPluginOption {
+    : public grpc::OpenTelemetryPluginOption {
  public:
   ~InternalOpenTelemetryPluginOption() override = default;
   // Determines whether a plugin option is active on a given channel target
diff --git a/test/cpp/ext/csm/csm_observability_test.cc b/test/cpp/ext/csm/csm_observability_test.cc
index c6825c8..520c6f4 100644
--- a/test/cpp/ext/csm/csm_observability_test.cc
+++ b/test/cpp/ext/csm/csm_observability_test.cc
@@ -64,7 +64,7 @@
 }
 
 TEST(CsmPluginOptionTest, Basic) {
-  experimental::OpenTelemetryPluginBuilder()
+  OpenTelemetryPluginBuilder()
       .AddPluginOption(experimental::MakeCsmOpenTelemetryPluginOption())
       .BuildAndRegisterGlobal();
 }
diff --git a/test/cpp/ext/csm/metadata_exchange_test.cc b/test/cpp/ext/csm/metadata_exchange_test.cc
index 0f3eb6d..d5411dc 100644
--- a/test/cpp/ext/csm/metadata_exchange_test.cc
+++ b/test/cpp/ext/csm/metadata_exchange_test.cc
@@ -206,8 +206,8 @@
 
 // Verify that grpc.client.attempt.started does not get service mesh attributes
 TEST_P(MetadataExchangeTest, ClientAttemptStarted) {
-  Init(/*metric_names=*/{grpc::experimental::OpenTelemetryPluginBuilder::
-                             kClientAttemptStartedInstrumentName});
+  Init(/*metric_names=*/{
+      grpc::OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.client.attempt.started";
   auto data = ReadCurrentMetricsData(
@@ -230,8 +230,8 @@
 }
 
 TEST_P(MetadataExchangeTest, ClientAttemptDuration) {
-  Init(/*metric_names=*/{grpc::experimental::OpenTelemetryPluginBuilder::
-                             kClientAttemptDurationInstrumentName});
+  Init(/*metric_names=*/{
+      grpc::OpenTelemetryPluginBuilder::kClientAttemptDurationInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.client.attempt.duration";
   auto data = ReadCurrentMetricsData(
@@ -256,8 +256,8 @@
 // Verify that grpc.server.call.started does not get service mesh attributes
 TEST_P(MetadataExchangeTest, ServerCallStarted) {
   Init(
-      /*metric_names=*/{grpc::experimental::OpenTelemetryPluginBuilder::
-                            kServerCallStartedInstrumentName});
+      /*metric_names=*/{
+          grpc::OpenTelemetryPluginBuilder::kServerCallStartedInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.server.call.started";
   auto data = ReadCurrentMetricsData(
@@ -277,8 +277,8 @@
 
 TEST_P(MetadataExchangeTest, ServerCallDuration) {
   Init(
-      /*metric_names=*/{grpc::experimental::OpenTelemetryPluginBuilder::
-                            kServerCallDurationInstrumentName});
+      /*metric_names=*/{
+          grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.server.call.duration";
   auto data = ReadCurrentMetricsData(
@@ -301,7 +301,7 @@
 // Test that the server records unknown when the client does not send metadata
 TEST_P(MetadataExchangeTest, ClientDoesNotSendMetadata) {
   Init(
-      /*metric_names=*/{grpc::experimental::OpenTelemetryPluginBuilder::
+      /*metric_names=*/{grpc::OpenTelemetryPluginBuilder::
                             kServerCallDurationInstrumentName},
       /*enable_client_side_injector=*/false);
   SendRPC();
diff --git a/test/cpp/ext/otel/otel_plugin_test.cc b/test/cpp/ext/otel/otel_plugin_test.cc
index 994ed6c..124004a 100644
--- a/test/cpp/ext/otel/otel_plugin_test.cc
+++ b/test/cpp/ext/otel/otel_plugin_test.cc
@@ -47,12 +47,11 @@
 }
 
 TEST(OpenTelemetryPluginBuildTest, Basic) {
-  grpc::experimental::OpenTelemetryPluginBuilder builder;
+  grpc::OpenTelemetryPluginBuilder builder;
 }
 
 TEST_F(OpenTelemetryPluginEnd2EndTest, ClientAttemptStarted) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptStartedInstrumentName});
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.client.attempt.started";
   auto data = ReadCurrentMetricsData(
@@ -80,8 +79,8 @@
 }
 
 TEST_F(OpenTelemetryPluginEnd2EndTest, ClientAttemptDuration) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptDurationInstrumentName});
+  Init(
+      {grpc::OpenTelemetryPluginBuilder::kClientAttemptDurationInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.client.attempt.duration";
   auto data = ReadCurrentMetricsData(
@@ -113,7 +112,7 @@
 
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        ClientAttemptSentTotalCompressedMessageSize) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kClientAttemptSentTotalCompressedMessageSizeInstrumentName});
   SendRPC();
   const char* kMetricName =
@@ -148,7 +147,7 @@
 
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        ClientAttemptRcvdTotalCompressedMessageSize) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kClientAttemptRcvdTotalCompressedMessageSizeInstrumentName});
   SendRPC();
   const char* kMetricName =
@@ -182,8 +181,7 @@
 }
 
 TEST_F(OpenTelemetryPluginEnd2EndTest, ServerCallStarted) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallStartedInstrumentName});
+  Init({grpc::OpenTelemetryPluginBuilder::kServerCallStartedInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.server.call.started";
   auto data = ReadCurrentMetricsData(
@@ -207,8 +205,7 @@
 }
 
 TEST_F(OpenTelemetryPluginEnd2EndTest, ServerCallDuration) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName});
+  Init({grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName});
   SendRPC();
   const char* kMetricName = "grpc.server.call.duration";
   auto data = ReadCurrentMetricsData(
@@ -236,7 +233,7 @@
 
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        ServerCallSentTotalCompressedMessageSize) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kServerCallSentTotalCompressedMessageSizeInstrumentName});
   SendRPC();
   const char* kMetricName =
@@ -267,7 +264,7 @@
 
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        ServerCallRcvdTotalCompressedMessageSize) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kServerCallRcvdTotalCompressedMessageSizeInstrumentName});
   SendRPC();
   const char* kMetricName =
@@ -298,8 +295,7 @@
 
 // Make sure that no meter provider results in normal operations.
 TEST_F(OpenTelemetryPluginEnd2EndTest, NoMeterProviderRegistered) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptStartedInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/true);
@@ -308,7 +304,7 @@
 
 // Test that a channel selector returning true records metrics on the channel.
 TEST_F(OpenTelemetryPluginEnd2EndTest, TargetSelectorReturnsTrue) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kClientAttemptStartedInstrumentName}, /*resource=*/
        opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
@@ -344,7 +340,7 @@
 // Test that a target selector returning false does not record metrics on the
 // channel.
 TEST_F(OpenTelemetryPluginEnd2EndTest, TargetSelectorReturnsFalse) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kClientAttemptStartedInstrumentName}, /*resource=*/
        opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
@@ -363,7 +359,7 @@
 // Test that a target attribute filter returning true records metrics with the
 // target as is on the channel.
 TEST_F(OpenTelemetryPluginEnd2EndTest, TargetAttributeFilterReturnsTrue) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kClientAttemptStartedInstrumentName}, /*resource=*/
        opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
@@ -401,7 +397,7 @@
 // Test that a target attribute filter returning false records metrics with the
 // target as "other".
 TEST_F(OpenTelemetryPluginEnd2EndTest, TargetAttributeFilterReturnsFalse) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
+  Init({grpc::OpenTelemetryPluginBuilder::
             kClientAttemptStartedInstrumentName}, /*resource=*/
        opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
@@ -438,8 +434,7 @@
 
 // Test that generic method names are scrubbed properly on the client side.
 TEST_F(OpenTelemetryPluginEnd2EndTest, GenericClientRpc) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptStartedInstrumentName});
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName});
   SendGenericRPC();
   const char* kMetricName = "grpc.client.attempt.started";
   auto data = ReadCurrentMetricsData(
@@ -470,8 +465,7 @@
 // the method attribute filter is set and it returns false.
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        GenericClientRpcWithMethodAttributeFilterReturningFalse) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptStartedInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -510,8 +504,7 @@
 // the method attribute filter is set and it returns true.
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        GenericClientRpcWithMethodAttributeFilterReturningTrue) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptStartedInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptStartedInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -548,8 +541,7 @@
 
 // Test that generic method names are scrubbed properly on the server side.
 TEST_F(OpenTelemetryPluginEnd2EndTest, GenericServerRpc) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName});
+  Init({grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName});
   SendGenericRPC();
   const char* kMetricName = "grpc.server.call.duration";
   auto data = ReadCurrentMetricsData(
@@ -579,8 +571,7 @@
 // the method attribute filter is set and it returns false.
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        GenericServerRpcWithMethodAttributeFilterReturningFalse) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -618,8 +609,7 @@
 // the method attribute filter is set and it returns true.
 TEST_F(OpenTelemetryPluginEnd2EndTest,
        GenericServerRpcWithMethodAttributeFilterReturningTrue) {
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -736,10 +726,8 @@
   plugin_option_list.emplace_back(std::make_unique<CustomPluginOption>(
       /*enabled_on_client*/ true, /*enabled_on_server*/ true,
       std::make_pair("key", "value")));
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptDurationInstrumentName,
-        grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptDurationInstrumentName,
+        grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -779,10 +767,8 @@
   plugin_option_list.emplace_back(std::make_unique<CustomPluginOption>(
       /*enabled_on_client*/ true, /*enabled_on_server*/ false,
       std::make_pair("key", "value")));
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptDurationInstrumentName,
-        grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptDurationInstrumentName,
+        grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -823,10 +809,8 @@
   plugin_option_list.emplace_back(std::make_unique<CustomPluginOption>(
       /*enabled_on_client*/ false, /*enabled_on_server*/ true,
       std::make_pair("key", "value")));
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptDurationInstrumentName,
-        grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptDurationInstrumentName,
+        grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
@@ -881,10 +865,8 @@
   plugin_option_list.emplace_back(std::make_unique<CustomPluginOption>(
       /*enabled_on_client*/ false, /*enabled_on_server*/ true,
       std::make_pair("key5", "value5")));
-  Init({grpc::experimental::OpenTelemetryPluginBuilder::
-            kClientAttemptDurationInstrumentName,
-        grpc::experimental::OpenTelemetryPluginBuilder::
-            kServerCallDurationInstrumentName},
+  Init({grpc::OpenTelemetryPluginBuilder::kClientAttemptDurationInstrumentName,
+        grpc::OpenTelemetryPluginBuilder::kServerCallDurationInstrumentName},
        /*resource=*/opentelemetry::sdk::resource::Resource::Create({}),
        /*labels_injector=*/nullptr,
        /*test_no_meter_provider=*/false,
diff --git a/test/cpp/interop/observability_client.cc b/test/cpp/interop/observability_client.cc
index 259b47d..6d8e29e 100644
--- a/test/cpp/interop/observability_client.cc
+++ b/test/cpp/interop/observability_client.cc
@@ -236,7 +236,7 @@
     auto meter_provider =
         std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
     meter_provider->AddMetricReader(std::move(prometheus_exporter));
-    grpc::experimental::OpenTelemetryPluginBuilder otel_builder;
+    grpc::OpenTelemetryPluginBuilder otel_builder;
     otel_builder.SetMeterProvider(std::move(meter_provider));
     otel_builder.BuildAndRegisterGlobal();
   }
diff --git a/test/cpp/interop/xds_interop_client.cc b/test/cpp/interop/xds_interop_client.cc
index b46926e..a896e07 100644
--- a/test/cpp/interop/xds_interop_client.cc
+++ b/test/cpp/interop/xds_interop_client.cc
@@ -403,7 +403,7 @@
   auto meter_provider =
       std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
   meter_provider->AddMetricReader(std::move(prometheus_exporter));
-  grpc::experimental::OpenTelemetryPluginBuilder()
+  grpc::OpenTelemetryPluginBuilder()
       .AddPluginOption(grpc::experimental::MakeCsmOpenTelemetryPluginOption())
       .SetMeterProvider(std::move(meter_provider))
       .BuildAndRegisterGlobal();
diff --git a/test/cpp/interop/xds_interop_server.cc b/test/cpp/interop/xds_interop_server.cc
index 0cab752..cba9816 100644
--- a/test/cpp/interop/xds_interop_server.cc
+++ b/test/cpp/interop/xds_interop_server.cc
@@ -54,7 +54,7 @@
   auto meter_provider =
       std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
   meter_provider->AddMetricReader(std::move(prometheus_exporter));
-  grpc::experimental::OpenTelemetryPluginBuilder()
+  grpc::OpenTelemetryPluginBuilder()
       .AddPluginOption(grpc::experimental::MakeCsmOpenTelemetryPluginOption())
       .SetMeterProvider(std::move(meter_provider))
       .BuildAndRegisterGlobal();