This is an automated email from the ASF dual-hosted git repository.

mlbiscoc pushed a commit to branch feature/SOLR-17458-rebased
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 6a62ea4d31dc08d1cdc56b454da52472400b7b48
Author: Matthew Biscocho <[email protected]>
AuthorDate: Wed Jun 11 15:20:24 2025 -0400

    SOLR-17774: Refactor initialization of GlobalOpenTelemetry (#3379)
    
    * Refactor initialization of open telemetry
    
    * Use OpenTelemetryConfigurator.loadOpenTelemetrySdk
    
    * Remove dependencies
    
    * Typos
    
    * Changes from review comments
    
    * Fix TestTracerConfigurator
    
    * Create a non-recording tracerProvider as a noop
    
    * Move OTEL out of coreContainer
---
 gradle/libs.versions.toml                          |   2 +
 solr/api/gradle.lockfile                           |   8 ++
 solr/benchmark/gradle.lockfile                     |   8 ++
 solr/core/build.gradle                             |  11 ++-
 solr/core/gradle.lockfile                          |   8 ++
 .../java/org/apache/solr/core/CoreContainer.java   |  15 ++-
 ...gurator.java => OpenTelemetryConfigurator.java} | 103 +++++++++++++++------
 .../apache/solr/handler/RequestHandlerBase.java    |   2 +-
 .../org/apache/solr/metrics/SolrMetricManager.java |  15 ++-
 .../org/apache/solr/util/stats/MetricUtils.java    |   6 ++
 .../apache/solr/util/tracing/SimplePropagator.java |  17 ----
 .../org/apache/solr/util/tracing/TraceUtils.java   |   6 +-
 .../apache/solr/core/TestTracerConfigurator.java   |   6 +-
 .../org/apache/solr/metrics/MetricsConfigTest.java |  10 +-
 .../TestSimplePropagatorDistributedTracing.java    |  11 +--
 solr/cross-dc-manager/gradle.lockfile              |   8 ++
 solr/licenses/opentelemetry-api-1.50.0.jar.sha1    |   1 +
 .../licenses/opentelemetry-context-1.50.0.jar.sha1 |   1 +
 .../opentelemetry-exporter-common-1.50.0.jar.sha1  |   1 +
 .../opentelemetry-exporter-otlp-1.50.0.jar.sha1    |   1 +
 ...ntelemetry-exporter-otlp-common-1.50.0.jar.sha1 |   1 +
 ...metry-exporter-prometheus-1.50.0-alpha.jar.sha1 |   1 +
 ...elemetry-exporter-sender-okhttp-1.50.0.jar.sha1 |   1 +
 solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1    |   1 +
 .../opentelemetry-sdk-common-1.50.0.jar.sha1       |   1 +
 ...try-sdk-extension-autoconfigure-1.50.0.jar.sha1 |   1 +
 ...sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 |   1 +
 .../opentelemetry-sdk-logs-1.50.0.jar.sha1         |   1 +
 .../opentelemetry-sdk-metrics-1.50.0.jar.sha1      |   1 +
 .../opentelemetry-sdk-testing-1.50.0.jar.sha1      |   1 +
 .../opentelemetry-sdk-trace-1.50.0.jar.sha1        |   1 +
 solr/modules/analysis-extras/gradle.lockfile       |   8 ++
 solr/modules/clustering/gradle.lockfile            |   8 ++
 solr/modules/cross-dc/gradle.lockfile              |   8 ++
 solr/modules/extraction/gradle.lockfile            |   8 ++
 solr/modules/gcs-repository/gradle.lockfile        |   8 ++
 solr/modules/jwt-auth/gradle.lockfile              |   8 ++
 solr/modules/langid/gradle.lockfile                |   8 ++
 solr/modules/llm/gradle.lockfile                   |   8 ++
 solr/modules/ltr/gradle.lockfile                   |   8 ++
 solr/modules/opentelemetry/gradle.lockfile         |  13 ++-
 .../solr/opentelemetry/OtelTracerConfigurator.java |  14 ++-
 solr/modules/s3-repository/gradle.lockfile         |   8 ++
 solr/modules/scripting/gradle.lockfile             |   8 ++
 solr/modules/sql/gradle.lockfile                   |   8 ++
 solr/prometheus-exporter/gradle.lockfile           |   8 ++
 solr/server/gradle.lockfile                        |   8 ++
 solr/solr-ref-guide/gradle.lockfile                |   8 ++
 solr/solrj-streaming/gradle.lockfile               |   8 ++
 solr/solrj-zookeeper/gradle.lockfile               |   8 ++
 solr/solrj/gradle.lockfile                         |   8 ++
 solr/test-framework/gradle.lockfile                |   8 ++
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |   7 +-
 solr/webapp/gradle.lockfile                        |   8 ++
 54 files changed, 361 insertions(+), 84 deletions(-)

diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index a3783feaac1..7010e88aefb 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -175,6 +175,7 @@ onnx = "1.22.0"
 openapi = "7.14.0"
 openjdk-jmh = "1.37"
 opentelemetry = "1.53.0"
+opentelemetry-prometheus = "1.50.0-alpha"
 osgi-annotation = "8.1.0"
 oshai-logging = "7.0.13"
 # @keep for version alignment
@@ -482,6 +483,7 @@ opentelemetry-api = { module = 
"io.opentelemetry:opentelemetry-api", version.ref
 opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", 
version.ref = "opentelemetry" }
 opentelemetry-context = { module = "io.opentelemetry:opentelemetry-context", 
version.ref = "opentelemetry" }
 opentelemetry-exporter-otlp = { module = 
"io.opentelemetry:opentelemetry-exporter-otlp", version.ref = "opentelemetry" }
+opentelemetry-exporter-prometheus = { module = 
"io.opentelemetry:opentelemetry-exporter-prometheus", version.ref = 
"opentelemetry-prometheus" }
 opentelemetry-sdk = { module = "io.opentelemetry:opentelemetry-sdk", 
version.ref = "opentelemetry" }
 opentelemetry-sdkextension-autoconfigure = { module = 
"io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", version.ref = 
"opentelemetry" }
 opentelemetry-sdktesting = { module = 
"io.opentelemetry:opentelemetry-sdk-testing", version.ref = "opentelemetry" }
diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile
index e336621b4f6..69b2fdd9e91 100644
--- a/solr/api/gradle.lockfile
+++ b/solr/api/gradle.lockfile
@@ -61,6 +61,14 @@ 
io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRunt
 
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath
 io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath
 io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath
diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile
index 2b37c13583d..1e2a048bb5b 100644
--- a/solr/benchmark/gradle.lockfile
+++ b/solr/benchmark/gradle.lockfile
@@ -56,6 +56,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,testRuntimeClasspath
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index 24fd610fc68..75fe8b62f2e 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -154,9 +154,18 @@ dependencies {
   implementation libs.tdunning.tdigest
 
   // Distributed Tracing
-  api libs.opentelemetry.api // Tracer is exposed on some methods
+  api libs.opentelemetry.api
   implementation libs.opentelemetry.context
 
+  implementation(libs.opentelemetry.exporter.prometheus, {
+    exclude group: "io.prometheus", module: 
"prometheus-metrics-exporter-httpserver"
+    exclude group: "io.prometheus", module: "prometheus-metrics-model"
+  })
+
+  implementation(libs.opentelemetry.sdk, {
+    exclude group: "io.opentelemetry", module: "opentelemetry-sdk-logs"
+  })
+
   implementation libs.apache.commons.exec
 
   implementation libs.apache.log4j.api
diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile
index 24f951cdc09..5cb899ad1b5 100644
--- a/solr/core/gradle.lockfile
+++ b/solr/core/gradle.lockfile
@@ -61,6 +61,14 @@ 
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,ru
 
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java 
b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index f79148804b4..0c45e84dd6e 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -32,6 +32,7 @@ import static 
org.apache.solr.security.AuthenticationPlugin.AUTHENTICATION_PLUGI
 import com.github.benmanes.caffeine.cache.Interner;
 import com.google.common.annotations.VisibleForTesting;
 import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.exporter.prometheus.PrometheusMetricReader;
 import jakarta.inject.Singleton;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
@@ -150,6 +151,7 @@ import org.apache.solr.update.UpdateShardHandler;
 import org.apache.solr.util.OrderedExecutor;
 import org.apache.solr.util.StartupLoggingUtils;
 import org.apache.solr.util.stats.MetricUtils;
+import org.apache.solr.util.tracing.TraceUtils;
 import org.apache.zookeeper.KeeperException;
 import org.glassfish.hk2.utilities.binding.AbstractBinder;
 import org.glassfish.jersey.server.ApplicationHandler;
@@ -401,6 +403,11 @@ public class CoreContainer {
     this.solrHome = config.getSolrHome();
     this.solrCores = SolrCores.newSolrCores(this);
     this.nodeKeyPair = new SolrNodeKeyPair(cfg.getCloudConfig());
+    PrometheusMetricReader metricReader = new PrometheusMetricReader(true, 
null);
+    OpenTelemetryConfigurator.initializeOpenTelemetrySdk(cfg, loader, 
metricReader);
+    this.metricManager = new SolrMetricManager(loader, cfg.getMetricsConfig(), 
metricReader);
+    this.tracer = TraceUtils.getGlobalTracer();
+
     containerHandlers.put(PublicKeyHandler.PATH, new 
PublicKeyHandler(nodeKeyPair));
     if (null != this.cfg.getBooleanQueryMaxClauseCount()) {
       
IndexSearcher.setMaxClauseCount(this.cfg.getBooleanQueryMaxClauseCount());
@@ -762,11 +769,9 @@ public class CoreContainer {
     containerPluginsRegistry.registerListener(
         clusterEventProducerFactory.getPluginRegistryListener());
 
-    metricManager = new SolrMetricManager(loader, cfg.getMetricsConfig());
-    String registryName = 
SolrMetricManager.getRegistryName(SolrInfoBean.Group.node);
-    solrMetricsContext = new SolrMetricsContext(metricManager, registryName, 
metricTag);
-
-    tracer = TracerConfigurator.loadTracer(loader, 
cfg.getTracerConfiguratorPluginInfo());
+    solrMetricsContext =
+        new SolrMetricsContext(
+            metricManager, 
SolrMetricManager.getRegistryName(SolrInfoBean.Group.node), metricTag);
 
     shardHandlerFactory =
         
ShardHandlerFactory.newInstance(cfg.getShardHandlerFactoryPluginInfo(), loader);
diff --git a/solr/core/src/java/org/apache/solr/core/TracerConfigurator.java 
b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java
similarity index 58%
rename from solr/core/src/java/org/apache/solr/core/TracerConfigurator.java
rename to solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java
index 5d386701c6f..90170866dfe 100644
--- a/solr/core/src/java/org/apache/solr/core/TracerConfigurator.java
+++ b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java
@@ -17,9 +17,17 @@
 
 package org.apache.solr.core;
 
+import io.opentelemetry.api.GlobalOpenTelemetry;
 import io.opentelemetry.api.trace.Tracer;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
+import io.opentelemetry.context.propagation.ContextPropagators;
+import io.opentelemetry.exporter.prometheus.PrometheusMetricReader;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.sdk.OpenTelemetrySdkBuilder;
+import io.opentelemetry.sdk.metrics.SdkMeterProvider;
+import io.opentelemetry.sdk.trace.SdkTracerProvider;
+import io.opentelemetry.sdk.trace.samplers.Sampler;
 import java.lang.invoke.MethodHandles;
 import java.util.Locale;
 import java.util.Map;
@@ -30,12 +38,11 @@ import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.util.plugin.NamedListInitializedPlugin;
 import org.apache.solr.util.tracing.SimplePropagator;
-import org.apache.solr.util.tracing.TraceUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/** Produces a {@link Tracer} from configuration. */
-public abstract class TracerConfigurator implements NamedListInitializedPlugin 
{
+/** Configures and loads/sets {@link GlobalOpenTelemetry} from a {@link 
OpenTelemetrySdk}. */
+public abstract class OpenTelemetryConfigurator implements 
NamedListInitializedPlugin {
 
   public static final boolean TRACE_ID_GEN_ENABLED =
       EnvUtils.getPropertyAsBool("solr.tracing.always.on.enabled", true);
@@ -46,26 +53,78 @@ public abstract class TracerConfigurator implements 
NamedListInitializedPlugin {
 
   private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  public static Tracer loadTracer(SolrResourceLoader loader, PluginInfo info) {
+  private static volatile boolean loaded = false;
+
+  /**
+   * Initializes the {@link io.opentelemetry.api.GlobalOpenTelemetry} instance 
by configuring the
+   * {@link io.opentelemetry.sdk.OpenTelemetrySdk} through custom plugin, 
auto-configure or default
+   * SDK.
+   */
+  public static synchronized void initializeOpenTelemetrySdk(
+      NodeConfig cfg, SolrResourceLoader loader, PrometheusMetricReader 
prometheusMetricReader) {
+    PluginInfo info = (cfg != null) ? cfg.getTracerConfiguratorPluginInfo() : 
null;
+
     if (info != null && info.isEnabled()) {
-      TracerConfigurator configurator =
-          loader.newInstance(info.className, TracerConfigurator.class);
-      configurator.init(info.initArgs);
-      ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider());
-      return configurator.getTracer();
-    }
-    if (shouldAutoConfigOTEL()) {
-      return autoConfigOTEL(loader);
+      OpenTelemetryConfigurator.configureCustomOpenTelemetrySdk(
+          loader, cfg.getTracerConfiguratorPluginInfo());
+    } else if (OpenTelemetryConfigurator.shouldAutoConfigOTEL()) {
+      OpenTelemetryConfigurator.autoConfigureOpenTelemetrySdk(loader);
+    } else {
+      // Initializing sampler as always off to replicate no-op Tracer provider
+      OpenTelemetryConfigurator.configureOpenTelemetrySdk(
+          
SdkMeterProvider.builder().registerMetricReader(prometheusMetricReader).build(),
+          SdkTracerProvider.builder().setSampler(Sampler.alwaysOff()).build());
     }
+  }
+
+  private static void configureOpenTelemetrySdk(
+      SdkMeterProvider sdkMeterProvider, SdkTracerProvider sdkTracerProvider) {
+    if (loaded) return;
+
+    OpenTelemetrySdkBuilder builder = OpenTelemetrySdk.builder();
     if (TRACE_ID_GEN_ENABLED) {
+      log.info("OpenTelemetry tracer enabled with simple propagation only.");
       ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider());
-      return SimplePropagator.load();
+      
builder.setPropagators(ContextPropagators.create(SimplePropagator.getInstance()));
     }
-    return TraceUtils.getGlobalTracer();
+
+    if (sdkMeterProvider != null) builder.setMeterProvider(sdkMeterProvider);
+    if (sdkTracerProvider != null) 
builder.setTracerProvider(sdkTracerProvider);
+
+    GlobalOpenTelemetry.set(builder.build());
+    loaded = true;
+  }
+
+  private static void autoConfigureOpenTelemetrySdk(SolrResourceLoader loader) 
{
+    if (loaded) return;
+    try {
+      OpenTelemetryConfigurator configurator =
+          loader.newInstance(DEFAULT_CLASS_NAME, 
OpenTelemetryConfigurator.class);
+      configurator.init(new NamedList<>());
+      ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider());
+      loaded = true;
+    } catch (SolrException e) {
+      log.error(
+          "Unable to auto-config OpenTelemetry with class {}. Make sure you 
have enabled the 'opentelemetry' module",
+          DEFAULT_CLASS_NAME,
+          e);
+    }
+  }
+
+  private static void configureCustomOpenTelemetrySdk(SolrResourceLoader 
loader, PluginInfo info) {
+    if (loaded) return;
+
+    OpenTelemetryConfigurator configurator =
+        loader.newInstance(info.className, OpenTelemetryConfigurator.class);
+    configurator.init(info.initArgs);
+    ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider());
+    loaded = true;
   }
 
   protected abstract Tracer getTracer();
 
+  protected abstract OpenTelemetrySdk getOpenTelemetrySdk();
+
   private static class ContextThreadLocalProvider
       implements ExecutorUtil.InheritableThreadLocalProvider {
 
@@ -88,22 +147,6 @@ public abstract class TracerConfigurator implements 
NamedListInitializedPlugin {
     }
   }
 
-  private static Tracer autoConfigOTEL(SolrResourceLoader loader) {
-    try {
-      TracerConfigurator configurator =
-          loader.newInstance(DEFAULT_CLASS_NAME, TracerConfigurator.class);
-      configurator.init(new NamedList<>());
-      ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider());
-      return configurator.getTracer();
-    } catch (SolrException e) {
-      log.error(
-          "Unable to auto-config OpenTelemetry with class {}. Make sure you 
have enabled the 'opentelemetry' module",
-          DEFAULT_CLASS_NAME,
-          e);
-    }
-    return TraceUtils.getGlobalTracer();
-  }
-
   /**
    * Best effort way to determine if we should attempt to init OTEL from 
system properties.
    *
diff --git a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java 
b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
index 0f62f31aaab..bc5331ef556 100644
--- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
+++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
@@ -184,7 +184,7 @@ public abstract class RequestHandlerBase
         new HandlerMetrics(
             new SolrMetricsContext(
                 new SolrMetricManager(
-                    null, new 
MetricsConfig.MetricsConfigBuilder().setEnabled(false).build()),
+                    null, new 
MetricsConfig.MetricsConfigBuilder().setEnabled(false).build(), null),
                 "NO_OP",
                 "NO_OP"));
 
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java 
b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
index fa05c2797dc..b8700d3a412 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
@@ -26,6 +26,8 @@ import com.codahale.metrics.MetricRegistry;
 import com.codahale.metrics.MetricSet;
 import com.codahale.metrics.SharedMetricRegistries;
 import com.codahale.metrics.Timer;
+import io.opentelemetry.api.metrics.MeterProvider;
+import io.opentelemetry.exporter.prometheus.PrometheusMetricReader;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
@@ -55,6 +57,7 @@ import org.apache.solr.core.SolrCore;
 import org.apache.solr.core.SolrInfoBean;
 import org.apache.solr.core.SolrResourceLoader;
 import org.apache.solr.logging.MDCLoggingContext;
+import org.apache.solr.util.stats.MetricUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
@@ -120,16 +123,26 @@ public class SolrMetricManager {
   private final MetricRegistry.MetricSupplier<Timer> timerSupplier;
   private final MetricRegistry.MetricSupplier<Histogram> histogramSupplier;
 
+  private final MeterProvider meterProvider;
+  private final PrometheusMetricReader prometheusMetricReader;
+
   public SolrMetricManager() {
     metricsConfig = new MetricsConfig.MetricsConfigBuilder().build();
     counterSupplier = MetricSuppliers.counterSupplier(null, null);
     meterSupplier = MetricSuppliers.meterSupplier(null, null);
     timerSupplier = MetricSuppliers.timerSupplier(null, null);
     histogramSupplier = MetricSuppliers.histogramSupplier(null, null);
+    meterProvider = MetricUtils.getMeterProvider();
+    prometheusMetricReader = null;
   }
 
-  public SolrMetricManager(SolrResourceLoader loader, MetricsConfig 
metricsConfig) {
+  public SolrMetricManager(
+      SolrResourceLoader loader,
+      MetricsConfig metricsConfig,
+      PrometheusMetricReader prometheusMetricReader) {
     this.metricsConfig = metricsConfig;
+    this.prometheusMetricReader = prometheusMetricReader;
+    this.meterProvider = MetricUtils.getMeterProvider();
     counterSupplier = MetricSuppliers.counterSupplier(loader, 
metricsConfig.getCounterSupplier());
     meterSupplier = MetricSuppliers.meterSupplier(loader, 
metricsConfig.getMeterSupplier());
     timerSupplier = MetricSuppliers.timerSupplier(loader, 
metricsConfig.getTimerSupplier());
diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java 
b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
index 9cff065c06f..d0f37de403f 100644
--- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
@@ -26,6 +26,8 @@ import com.codahale.metrics.MetricFilter;
 import com.codahale.metrics.MetricRegistry;
 import com.codahale.metrics.Snapshot;
 import com.codahale.metrics.Timer;
+import io.opentelemetry.api.GlobalOpenTelemetry;
+import io.opentelemetry.api.metrics.MeterProvider;
 import java.beans.BeanInfo;
 import java.beans.IntrospectionException;
 import java.beans.Introspector;
@@ -852,4 +854,8 @@ public class MetricUtils {
       }
     }
   }
+
+  public static MeterProvider getMeterProvider() {
+    return GlobalOpenTelemetry.getMeterProvider();
+  }
 }
diff --git 
a/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java 
b/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java
index e81657ca2ae..51944b08703 100644
--- a/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java
+++ b/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java
@@ -16,12 +16,8 @@
  */
 package org.apache.solr.util.tracing;
 
-import io.opentelemetry.api.GlobalOpenTelemetry;
-import io.opentelemetry.api.OpenTelemetry;
-import io.opentelemetry.api.trace.Tracer;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.ContextKey;
-import io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.context.propagation.TextMapGetter;
 import io.opentelemetry.context.propagation.TextMapPropagator;
 import io.opentelemetry.context.propagation.TextMapSetter;
@@ -54,19 +50,6 @@ public class SimplePropagator implements TextMapPropagator {
 
   private static final AtomicLong traceCounter = new AtomicLong(0);
 
-  private static volatile boolean loaded = false;
-
-  public static synchronized Tracer load() {
-    if (!loaded) {
-      log.info("OpenTelemetry tracer enabled with simple propagation only.");
-      OpenTelemetry otel =
-          
OpenTelemetry.propagating(ContextPropagators.create(SimplePropagator.getInstance()));
-      GlobalOpenTelemetry.set(otel);
-      loaded = true;
-    }
-    return TraceUtils.getGlobalTracer();
-  }
-
   public static TextMapPropagator getInstance() {
     return INSTANCE;
   }
diff --git a/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java 
b/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java
index 11adf3f0eca..645a412f6c1 100644
--- a/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/tracing/TraceUtils.java
@@ -119,8 +119,10 @@ public class TraceUtils {
    * @param consumer consumer to be called
    */
   public static void ifValidTraceId(Span span, Consumer<Span> consumer) {
-    if (TraceId.isValid(span.getSpanContext().getTraceId())) {
-      consumer.accept(span);
+    if (span.isRecording()) {
+      if (TraceId.isValid(span.getSpanContext().getTraceId())) {
+        consumer.accept(span);
+      }
     }
   }
 
diff --git 
a/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java 
b/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java
index bb30a6e8f2d..ba453efc5d4 100644
--- a/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java
+++ b/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java
@@ -39,9 +39,9 @@ public class TestTracerConfigurator extends SolrTestCaseJ4 {
 
   @Test
   public void configuratorClassDoesNotExistTest() {
-    assertTrue(TracerConfigurator.shouldAutoConfigOTEL());
+    assertTrue(OpenTelemetryConfigurator.shouldAutoConfigOTEL());
     SolrResourceLoader loader = new 
SolrResourceLoader(TEST_PATH().resolve("collection1"));
-    TracerConfigurator.loadTracer(loader, null);
+    OpenTelemetryConfigurator.initializeOpenTelemetrySdk(null, loader, null);
     assertEquals(
         "Expecting noop otel after failure to auto-init",
         TracerProvider.noop().get(null),
@@ -52,7 +52,7 @@ public class TestTracerConfigurator extends SolrTestCaseJ4 {
   public void otelDisabledByProperty() {
     System.setProperty("otel.sdk.disabled", "true");
     try {
-      assertFalse(TracerConfigurator.shouldAutoConfigOTEL());
+      assertFalse(OpenTelemetryConfigurator.shouldAutoConfigOTEL());
     } finally {
       System.clearProperty("otel.sdk.disabled");
     }
diff --git a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java 
b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
index eff63f4db72..32245ffb4c6 100644
--- a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
@@ -35,7 +35,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
   public void testDefaults() {
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml");
     SolrMetricManager mgr =
-        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig());
+        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig(), null);
     assertTrue(mgr.getCounterSupplier() instanceof 
MetricSuppliers.DefaultCounterSupplier);
     assertTrue(mgr.getMeterSupplier() instanceof 
MetricSuppliers.DefaultMeterSupplier);
     assertTrue(mgr.getTimerSupplier() instanceof 
MetricSuppliers.DefaultTimerSupplier);
@@ -54,7 +54,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
     System.setProperty("histogram.reservoir", 
SlidingTimeWindowReservoir.class.getName());
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml");
     SolrMetricManager mgr =
-        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig());
+        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig(), null);
     assertTrue(mgr.getCounterSupplier() instanceof 
MetricSuppliers.DefaultCounterSupplier);
     assertTrue(mgr.getMeterSupplier() instanceof 
MetricSuppliers.DefaultMeterSupplier);
     assertTrue(mgr.getTimerSupplier() instanceof 
MetricSuppliers.DefaultTimerSupplier);
@@ -73,7 +73,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
     System.setProperty("histogram.class", 
MockHistogramSupplier.class.getName());
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml");
     SolrMetricManager mgr =
-        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig());
+        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig(), null);
     assertTrue(mgr.getCounterSupplier() instanceof MockCounterSupplier);
     assertTrue(mgr.getMeterSupplier() instanceof MockMeterSupplier);
     assertTrue(mgr.getTimerSupplier() instanceof MockTimerSupplier);
@@ -100,7 +100,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
     System.setProperty("metricsEnabled", "false");
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml");
     SolrMetricManager mgr =
-        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig());
+        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig(), null);
     assertTrue(mgr.getCounterSupplier() instanceof 
MetricSuppliers.NoOpCounterSupplier);
     assertTrue(mgr.getMeterSupplier() instanceof 
MetricSuppliers.NoOpMeterSupplier);
     assertTrue(mgr.getTimerSupplier() instanceof 
MetricSuppliers.NoOpTimerSupplier);
@@ -111,7 +111,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 {
   public void testMissingValuesConfig() {
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig1.xml");
     SolrMetricManager mgr =
-        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig());
+        new SolrMetricManager(cfg.getSolrResourceLoader(), 
cfg.getMetricsConfig(), null);
     assertNull("nullNumber", mgr.nullNumber());
     assertEquals("notANumber", -1, mgr.notANumber());
     assertEquals("nullNumber", "", mgr.nullString());
diff --git 
a/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java
 
b/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java
index 8b1af81c59e..270c53c0471 100644
--- 
a/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java
+++ 
b/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java
@@ -18,7 +18,8 @@
 package org.apache.solr.util.tracing;
 
 import io.opentelemetry.api.GlobalOpenTelemetry;
-import io.opentelemetry.api.trace.TracerProvider;
+import io.opentelemetry.api.trace.Span;
+import io.opentelemetry.api.trace.Tracer;
 import java.io.IOException;
 import java.util.List;
 import java.util.Optional;
@@ -51,11 +52,9 @@ public class TestSimplePropagatorDistributedTracing extends 
SolrCloudTestCase {
   public static void setupCluster() throws Exception {
     configureCluster(4).addConfig("conf", 
configset("cloud-minimal")).configure();
 
-    // tracer should be disabled
-    assertEquals(
-        "Expecting noop otel (propagating only)",
-        TracerProvider.noop(),
-        GlobalOpenTelemetry.get().getTracerProvider());
+    Tracer tracer = GlobalOpenTelemetry.get().getTracer("solr");
+    Span span = tracer.spanBuilder("testSpan").startSpan();
+    assertFalse("Expected a no-op/non-recording tracer (propagating-only)", 
span.isRecording());
 
     CollectionAdminRequest.createCollection(COLLECTION, "conf", 2, 2)
         .process(cluster.getSolrClient());
diff --git a/solr/cross-dc-manager/gradle.lockfile 
b/solr/cross-dc-manager/gradle.lockfile
index 4c08c73b9b9..ad7df219e1d 100644
--- a/solr/cross-dc-manager/gradle.lockfile
+++ b/solr/cross-dc-manager/gradle.lockfile
@@ -73,6 +73,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/licenses/opentelemetry-api-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-api-1.50.0.jar.sha1
new file mode 100644
index 00000000000..3c7f32b2643
--- /dev/null
+++ b/solr/licenses/opentelemetry-api-1.50.0.jar.sha1
@@ -0,0 +1 @@
+83a69114c56ff2664d21906c62431bceb1c294ed
diff --git a/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-context-1.50.0.jar.sha1
new file mode 100644
index 00000000000..e6d67b0652e
--- /dev/null
+++ b/solr/licenses/opentelemetry-context-1.50.0.jar.sha1
@@ -0,0 +1 @@
+dcdc20a193e82d66ecf5a1a978a799bc19e9b210
diff --git a/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1
new file mode 100644
index 00000000000..827f7773e3f
--- /dev/null
+++ b/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1
@@ -0,0 +1 @@
+73bc444d344995bfcd4705a0261662c27d58c9c9
diff --git a/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1
new file mode 100644
index 00000000000..e5cffae0071
--- /dev/null
+++ b/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1
@@ -0,0 +1 @@
+8eb4ce42340ae0443793e9fa41ba9e4f7743e66e
diff --git a/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1
new file mode 100644
index 00000000000..9f5ed208526
--- /dev/null
+++ b/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1
@@ -0,0 +1 @@
+3b5cf0eeffa6087324f7c57b5d9e48c62b8e2e8c
diff --git 
a/solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1 
b/solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1
new file mode 100644
index 00000000000..6fb5fa25db3
--- /dev/null
+++ b/solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1
@@ -0,0 +1 @@
+087b606101ac171a9d9ba927a2fd8718a0fcc819
diff --git a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1
new file mode 100644
index 00000000000..30283f96545
--- /dev/null
+++ b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1
@@ -0,0 +1 @@
+83ee66ff7ff5babc1884533a8c3a6a99fd64d643
diff --git a/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1
new file mode 100644
index 00000000000..ab4123d5478
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1
@@ -0,0 +1 @@
+1c6ffdd0bf5a3e42154912f0ab1b1bbd73499af1
diff --git a/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1
new file mode 100644
index 00000000000..6739b9258fc
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1
@@ -0,0 +1 @@
+928c43d75cd0675070d38d041973370823d6face
diff --git 
a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1
new file mode 100644
index 00000000000..4190d963d8f
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1
@@ -0,0 +1 @@
+ad69f784c48db4bdc216f90fddead6c7e26b0727
diff --git 
a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1
new file mode 100644
index 00000000000..3112fe841ec
--- /dev/null
+++ 
b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1
@@ -0,0 +1 @@
+47676b3c16db83a30b002d0e9cd9e6405236dd21
diff --git a/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1
new file mode 100644
index 00000000000..b2e86ef3a8e
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1
@@ -0,0 +1 @@
+fb7ace15eca8878a2c3cf86320ed1d2fd1c0f206
diff --git a/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1
new file mode 100644
index 00000000000..cbaa77257d3
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1
@@ -0,0 +1 @@
+49432de0171798f671bda82bf7eef6ae283b3b7d
diff --git a/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1
new file mode 100644
index 00000000000..2f3100622bb
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1
@@ -0,0 +1 @@
+2972ea619333a9c39f5e6104884278ab9d439f69
diff --git a/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 
b/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1
new file mode 100644
index 00000000000..3255b03451f
--- /dev/null
+++ b/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1
@@ -0,0 +1 @@
+19d60d3b72aa2d0d89a02361eedf7157ecc1fc7d
diff --git a/solr/modules/analysis-extras/gradle.lockfile 
b/solr/modules/analysis-extras/gradle.lockfile
index 1d7b0cb3705..0e367394f21 100644
--- a/solr/modules/analysis-extras/gradle.lockfile
+++ b/solr/modules/analysis-extras/gradle.lockfile
@@ -58,6 +58,14 @@ 
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,ru
 
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/clustering/gradle.lockfile 
b/solr/modules/clustering/gradle.lockfile
index 8755114aba2..373d5ebb9fa 100644
--- a/solr/modules/clustering/gradle.lockfile
+++ b/solr/modules/clustering/gradle.lockfile
@@ -56,6 +56,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/cross-dc/gradle.lockfile 
b/solr/modules/cross-dc/gradle.lockfile
index afeb2262a96..631a766e08e 100644
--- a/solr/modules/cross-dc/gradle.lockfile
+++ b/solr/modules/cross-dc/gradle.lockfile
@@ -57,6 +57,14 @@ 
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,ru
 
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/extraction/gradle.lockfile 
b/solr/modules/extraction/gradle.lockfile
index abff70b0d7c..27722aff9a7 100644
--- a/solr/modules/extraction/gradle.lockfile
+++ b/solr/modules/extraction/gradle.lockfile
@@ -84,6 +84,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/gcs-repository/gradle.lockfile 
b/solr/modules/gcs-repository/gradle.lockfile
index a342546f048..1ab934dabc1 100644
--- a/solr/modules/gcs-repository/gradle.lockfile
+++ b/solr/modules/gcs-repository/gradle.lockfile
@@ -106,6 +106,14 @@ 
io.opencensus:opencensus-proto:0.2.0=jarValidation,runtimeClasspath,runtimeLibs,
 
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/jwt-auth/gradle.lockfile 
b/solr/modules/jwt-auth/gradle.lockfile
index 0197986d4d9..dd6f9dc774e 100644
--- a/solr/modules/jwt-auth/gradle.lockfile
+++ b/solr/modules/jwt-auth/gradle.lockfile
@@ -70,6 +70,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/langid/gradle.lockfile 
b/solr/modules/langid/gradle.lockfile
index c5ef6c13c02..8144d8517fb 100644
--- a/solr/modules/langid/gradle.lockfile
+++ b/solr/modules/langid/gradle.lockfile
@@ -57,6 +57,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/llm/gradle.lockfile b/solr/modules/llm/gradle.lockfile
index f02cf3adf47..74861b226f9 100644
--- a/solr/modules/llm/gradle.lockfile
+++ b/solr/modules/llm/gradle.lockfile
@@ -71,6 +71,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile
index 96e07a47c84..6fa8ed49485 100644
--- a/solr/modules/ltr/gradle.lockfile
+++ b/solr/modules/ltr/gradle.lockfile
@@ -56,6 +56,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/opentelemetry/gradle.lockfile 
b/solr/modules/opentelemetry/gradle.lockfile
index e3bb85e3910..ca7e5eb6f9f 100644
--- a/solr/modules/opentelemetry/gradle.lockfile
+++ b/solr/modules/opentelemetry/gradle.lockfile
@@ -79,18 +79,21 @@ 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-bom:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=solrPlatformLibs
 
io.opentelemetry:opentelemetry-exporter-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-exporter-otlp-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-exporter-otlp:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-io.opentelemetry:opentelemetry-sdk-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=solrPlatformLibs
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
-io.opentelemetry:opentelemetry-sdk-logs:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
-io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-testing:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-io.opentelemetry:opentelemetry-sdk-trace:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
-io.opentelemetry:opentelemetry-sdk:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git 
a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java
 
b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java
index 0d2dd5df9de..c70acee63c2 100644
--- 
a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java
+++ 
b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java
@@ -17,6 +17,7 @@
 package org.apache.solr.opentelemetry;
 
 import io.opentelemetry.api.trace.Tracer;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
@@ -27,7 +28,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 import org.apache.solr.common.util.EnvUtils;
 import org.apache.solr.common.util.NamedList;
-import org.apache.solr.core.TracerConfigurator;
+import org.apache.solr.core.OpenTelemetryConfigurator;
 import org.apache.solr.util.tracing.TraceUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,11 +36,13 @@ import org.slf4j.LoggerFactory;
 /**
  * Tracing TracerConfigurator implementation which exports spans to 
OpenTelemetry in OTLP format.
  */
-public class OtelTracerConfigurator extends TracerConfigurator {
+public class OtelTracerConfigurator extends OpenTelemetryConfigurator {
   private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private final Map<String, String> currentEnv;
 
+  private OpenTelemetrySdk openTelemetrySdk;
+
   public OtelTracerConfigurator() {
     this(System.getenv());
   }
@@ -53,10 +56,15 @@ public class OtelTracerConfigurator extends 
TracerConfigurator {
     return TraceUtils.getGlobalTracer();
   }
 
+  @Override
+  public OpenTelemetrySdk getOpenTelemetrySdk() {
+    return this.openTelemetrySdk;
+  }
+
   @Override
   public void init(NamedList<?> args) {
     prepareConfiguration(args);
-    AutoConfiguredOpenTelemetrySdk.initialize();
+    this.openTelemetrySdk = 
AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
   }
 
   void prepareConfiguration(NamedList<?> args) {
diff --git a/solr/modules/s3-repository/gradle.lockfile 
b/solr/modules/s3-repository/gradle.lockfile
index eae8773a29b..714f2e35b96 100644
--- a/solr/modules/s3-repository/gradle.lockfile
+++ b/solr/modules/s3-repository/gradle.lockfile
@@ -73,6 +73,14 @@ 
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,ru
 
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/scripting/gradle.lockfile 
b/solr/modules/scripting/gradle.lockfile
index c6b9ec9b326..55897192931 100644
--- a/solr/modules/scripting/gradle.lockfile
+++ b/solr/modules/scripting/gradle.lockfile
@@ -56,6 +56,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile
index 3eaef7ee425..baf17e02dd0 100644
--- a/solr/modules/sql/gradle.lockfile
+++ b/solr/modules/sql/gradle.lockfile
@@ -59,6 +59,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
diff --git a/solr/prometheus-exporter/gradle.lockfile 
b/solr/prometheus-exporter/gradle.lockfile
index e2bc0266ba5..0fd347ff573 100644
--- a/solr/prometheus-exporter/gradle.lockfile
+++ b/solr/prometheus-exporter/gradle.lockfile
@@ -56,6 +56,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClass
 
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
io.prometheus:simpleclient:0.16.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile
index 30301aa9a88..64ba9349292 100644
--- a/solr/server/gradle.lockfile
+++ b/solr/server/gradle.lockfile
@@ -55,6 +55,14 @@ 
io.netty:netty-transport:4.2.6.Final=jarValidation,runtimeClasspath,solrCore
 
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,runtimeClasspath,solrCore
 
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,runtimeClasspath,solrCore
 
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,runtimeClasspath,solrCore
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,solrCore
 
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,solrCore
 io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,solrCore
diff --git a/solr/solr-ref-guide/gradle.lockfile 
b/solr/solr-ref-guide/gradle.lockfile
index da72ace20fd..633346d95ec 100644
--- a/solr/solr-ref-guide/gradle.lockfile
+++ b/solr/solr-ref-guide/gradle.lockfile
@@ -55,6 +55,14 @@ 
io.netty:netty-transport:4.2.6.Final=testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-api:1.53.0=testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=testRuntimeClasspath
 io.prometheus:prometheus-metrics-exposition-formats:1.1.0=testRuntimeClasspath
 io.prometheus:prometheus-metrics-model:1.1.0=testRuntimeClasspath
 io.sgr:s2-geometry-library-java:1.0.0=testRuntimeClasspath
diff --git a/solr/solrj-streaming/gradle.lockfile 
b/solr/solrj-streaming/gradle.lockfile
index f06a94b212f..4e558d1d9b8 100644
--- a/solr/solrj-streaming/gradle.lockfile
+++ b/solr/solrj-streaming/gradle.lockfile
@@ -65,6 +65,14 @@ 
io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRunt
 
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath
 io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath
 io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath
diff --git a/solr/solrj-zookeeper/gradle.lockfile 
b/solr/solrj-zookeeper/gradle.lockfile
index 8670d8252a7..1d8f75cde5a 100644
--- a/solr/solrj-zookeeper/gradle.lockfile
+++ b/solr/solrj-zookeeper/gradle.lockfile
@@ -70,6 +70,14 @@ 
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,permitTestUs
 
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath
 io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath
 io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath
diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile
index 55b9900e353..904c15c7034 100644
--- a/solr/solrj/gradle.lockfile
+++ b/solr/solrj/gradle.lockfile
@@ -65,6 +65,14 @@ 
io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRunt
 
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=jarValidation,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath
 io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath
 io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath
diff --git a/solr/test-framework/gradle.lockfile 
b/solr/test-framework/gradle.lockfile
index c665cd9707b..7c581367523 100644
--- a/solr/test-framework/gradle.lockfile
+++ b/solr/test-framework/gradle.lockfile
@@ -57,6 +57,14 @@ 
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,ru
 
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk:1.53.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
diff --git 
a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java 
b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
index c15e4245f0f..4a894521e24 100644
--- 
a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
+++ 
b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
@@ -78,11 +78,10 @@ import org.apache.solr.common.util.IOUtils;
 import org.apache.solr.common.util.SolrNamedThreadFactory;
 import org.apache.solr.common.util.TimeSource;
 import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.TracerConfigurator;
+import org.apache.solr.core.OpenTelemetryConfigurator;
 import org.apache.solr.embedded.JettyConfig;
 import org.apache.solr.embedded.JettySolrRunner;
 import org.apache.solr.util.TimeOut;
-import org.apache.solr.util.tracing.SimplePropagator;
 import org.apache.solr.util.tracing.TraceUtils;
 import org.apache.zookeeper.KeeperException;
 import org.eclipse.jetty.ee10.servlet.ServletHolder;
@@ -1169,9 +1168,7 @@ public class MiniSolrCloudCluster {
     public MiniSolrCloudCluster build() throws Exception {
       System.setProperty("solr.cloud.overseer.enabled", 
Boolean.toString(overseerEnabled));
 
-      // eager init to prevent OTEL init races caused by test setup
-      if (!disableTraceIdGeneration && 
TracerConfigurator.TRACE_ID_GEN_ENABLED) {
-        SimplePropagator.load();
+      if (!disableTraceIdGeneration && 
OpenTelemetryConfigurator.TRACE_ID_GEN_ENABLED) {
         injectRandomRecordingFlag();
       }
 
diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile
index 7fd09d19e3c..5c45b55f9c7 100644
--- a/solr/webapp/gradle.lockfile
+++ b/solr/webapp/gradle.lockfile
@@ -55,6 +55,14 @@ 
io.netty:netty-transport:4.2.6.Final=permitUnusedDeclared,solrCore
 io.opentelemetry:opentelemetry-api:1.53.0=permitUnusedDeclared,solrCore
 io.opentelemetry:opentelemetry-common:1.53.0=permitUnusedDeclared,solrCore
 io.opentelemetry:opentelemetry-context:1.53.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-exporter-common:1.50.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-sdk-common:1.53.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-sdk-logs:1.53.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-sdk-metrics:1.53.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-sdk-trace:1.53.0=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-sdk:1.53.0=permitUnusedDeclared,solrCore
 
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=permitUnusedDeclared,solrCore
 io.prometheus:prometheus-metrics-model:1.1.0=permitUnusedDeclared,solrCore
 io.sgr:s2-geometry-library-java:1.0.0=permitUnusedDeclared,solrCore


Reply via email to