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

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


The following commit(s) were added to refs/heads/feature/SOLR-17458 by this 
push:
     new efb0092aeff SOLR-17798: Integrate SDK OTLP metric exporter (#3413)
efb0092aeff is described below

commit efb0092aeffb45aba18b650a7c60ed37b7e15324
Author: Matthew Biscocho <[email protected]>
AuthorDate: Fri Sep 26 12:10:44 2025 -0400

    SOLR-17798: Integrate SDK OTLP metric exporter (#3413)
    
    * Create dynamic SDK Meter Providers and tests
    
    * Bad merge from feature branch
    
    * Wrap meter providers and metric readers
    
    * Test cleanup
    
    * Cleanup
    
    * Initialize a OTLP exporter
    
    * Add Noop metric expoter
    
    * Add test for exporter
    
    * Create exporter factory
    
    * Drop revert opentelemetry version upgrade
    
    * Add some java docs
    
    * Wrong merged conflicts
    
    * Tidy lines
    
    * Add trace based exemplars
    
    * Move to OpenMetricsTextFormatWriter
    
    * Change context type to open metrics
    
    * Revert "Change context type to open metrics"
    
    This reverts commit b594327aae48c813cf81e36c5e2dfbe3bcb76bc8.
    
    * Revert "Move to OpenMetricsTextFormatWriter"
    
    This reverts commit 96435ebe2ac15b7cc3781c031d1229a1504e1fdc.
    
    * Revert "Add trace based exemplars"
    
    This reverts commit d33a85df3ac5ddb4401f36d9ed3c34f7a02c43fc.
    
    * Move Otlp exporter into Open Telemetry module
    
    * Close meterProviders and readers
    
    * Retry instead of sleep
    
    ---------
    
    Co-authored-by: Matthew Biscocho <[email protected]>
---
 gradle/libs.versions.toml                          |  1 +
 .../wrapper/.gradle-wrapper2818896035930485786.tmp |  0
 solr/api/gradle.lockfile                           |  9 ++++
 solr/benchmark/gradle.lockfile                     |  9 ++++
 solr/core/build.gradle                             |  3 ++
 solr/core/gradle.lockfile                          | 12 ++++-
 .../java/org/apache/solr/core/CoreContainer.java   |  3 ++
 .../apache/solr/handler/RequestHandlerBase.java    |  8 +--
 .../apache/solr/metrics/SolrCoreMetricManager.java |  1 +
 .../org/apache/solr/metrics/SolrMetricManager.java | 62 +++++++++++++++++++---
 .../solr/metrics/otel/MetricExporterFactory.java   | 34 ++++++++++++
 .../solr/metrics/otel/NoopMetricExporter.java      | 46 ++++++++++++++++
 .../apache/solr/blockcache/BufferStoreTest.java    |  2 +-
 .../apache/solr/metrics/SolrMetricManagerTest.java | 46 +++++++++++++---
 .../solr/metrics/SolrMetricReporterTest.java       |  2 +-
 .../org/apache/solr/search/TestCaffeineCache.java  |  2 +-
 .../org/apache/solr/search/TestSolrCachePerf.java  |  4 +-
 .../test/org/apache/solr/search/TestThinCache.java |  2 +-
 .../stats/OtelInstrumentedExecutorServiceTest.java |  2 +-
 solr/cross-dc-manager/gradle.lockfile              |  9 ++++
 solr/modules/analysis-extras/gradle.lockfile       |  9 ++++
 solr/modules/clustering/gradle.lockfile            |  9 ++++
 solr/modules/cross-dc/gradle.lockfile              |  9 ++++
 .../handler/MirroringCollectionsHandlerTest.java   |  3 --
 solr/modules/extraction/gradle.lockfile            |  9 ++++
 solr/modules/gcs-repository/gradle.lockfile        |  9 ++++
 solr/modules/jwt-auth/gradle.lockfile              | 17 +++---
 solr/modules/langid/gradle.lockfile                |  9 ++++
 solr/modules/llm/gradle.lockfile                   | 17 +++---
 solr/modules/ltr/gradle.lockfile                   |  9 ++++
 solr/modules/opentelemetry/build.gradle            |  4 +-
 solr/modules/opentelemetry/gradle.lockfile         | 20 +++----
 .../solr/opentelemetry/OtlpExporterFactory.java    | 57 ++++++++++++++++++++
 solr/modules/s3-repository/gradle.lockfile         |  9 ++++
 solr/modules/scripting/gradle.lockfile             |  9 ++++
 solr/modules/sql/gradle.lockfile                   |  9 ++++
 solr/prometheus-exporter/gradle.lockfile           |  9 ++++
 solr/server/gradle.lockfile                        |  9 ++++
 solr/solr-ref-guide/gradle.lockfile                |  9 ++++
 solr/solrj-streaming/gradle.lockfile               |  9 ++++
 solr/solrj-zookeeper/gradle.lockfile               |  9 ++++
 solr/solrj/gradle.lockfile                         |  9 ++++
 solr/test-framework/gradle.lockfile                |  9 ++++
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |  3 +-
 solr/webapp/gradle.lockfile                        |  9 ++++
 45 files changed, 479 insertions(+), 61 deletions(-)

diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 45787482bcf..c22d70a4e5d 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -482,6 +482,7 @@ opentelemetry-bom = { module = 
"io.opentelemetry:opentelemetry-bom", version.ref
 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-exporter-sender-okhttp = { module = 
"io.opentelemetry:opentelemetry-exporter-sender-okhttp", version.ref = 
"opentelemetry" }
 opentelemetry-runtime-telemetry = { module = 
"io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17", 
version.ref = "opentelemetry-runtime-telemetry" }
 opentelemetry-sdk = { module = "io.opentelemetry:opentelemetry-sdk", 
version.ref = "opentelemetry" }
 opentelemetry-sdkextension-autoconfigure = { module = 
"io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", version.ref = 
"opentelemetry" }
diff --git a/gradle/wrapper/.gradle-wrapper2818896035930485786.tmp 
b/gradle/wrapper/.gradle-wrapper2818896035930485786.tmp
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile
index 5e631c80307..4701834e8f1 100644
--- a/solr/api/gradle.lockfile
+++ b/solr/api/gradle.lockfile
@@ -43,6 +43,9 @@ 
com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath
 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnnotationProcessor
 com.j256.simplemagic:simplemagic:1.17=jarValidation,testRuntimeClasspath
 com.jayway.jsonpath:json-path:2.9.0=jarValidation,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,testRuntimeClasspath
 com.sun.activation:jakarta.activation:2.0.1=swaggerBuild
 com.tdunning:t-digest:3.3=jarValidation,testRuntimeClasspath
 commons-cli:commons-cli:1.10.0=jarValidation,testRuntimeClasspath
@@ -79,6 +82,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,tes
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,testRuntimeClasspath
@@ -189,6 +193,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,testRuntimeClasspath
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,swaggerBuild,swaggerDeps,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile
index 23db10ebaa0..f90fb3da662 100644
--- a/solr/benchmark/gradle.lockfile
+++ b/solr/benchmark/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=jarValidation,runtimeClasspath,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,testRuntimeClasspath
@@ -65,6 +68,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath
@@ -161,6 +165,11 @@ 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtime
 
org.hamcrest:hamcrest:3.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.jctools:jctools-core:4.0.5=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 
org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,runtimeClasspath,testRuntimeClasspath
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index 8beb638d986..d44e22c705b 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -167,6 +167,7 @@ dependencies {
   implementation(libs.opentelemetry.sdk, {
     exclude group: "io.opentelemetry", module: "opentelemetry-sdk-logs"
   })
+  runtimeOnly libs.opentelemetry.exporter.sender.okhttp
 
   // JVM Runtime Telemetry metrics
   implementation libs.opentelemetry.runtime.telemetry
@@ -222,4 +223,6 @@ dependencies {
   testRuntimeOnly(libs.mockito.subclass, {
     exclude group: "net.bytebuddy", module: "byte-buddy-agent"
   })
+
+  testImplementation libs.opentelemetry.sdktesting
 }
diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile
index 0cfa46d7652..c210757cc2b 100644
--- a/solr/core/gradle.lockfile
+++ b/solr/core/gradle.lockfile
@@ -39,6 +39,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 com.ibm.icu:icu4j:77.1=jarValidation,testRuntimeClasspath
 
com.j256.simplemagic:simplemagic:1.17=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
@@ -73,10 +76,12 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidati
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-sdk-testing:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-trace:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.prometheus:prometheus-metrics-config:1.3.6=jarValidation,testRuntimeClasspath
@@ -195,6 +200,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=compileClasspath,jarValidation,perm
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 
org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,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 97ee8666184..7c64b94115e 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1453,6 +1453,9 @@ public class CoreContainer {
             SolrMetricManager.getRegistryName(SolrInfoBean.Group.jvm), 
metricTag);
         metricManager.unregisterGauges(
             SolrMetricManager.getRegistryName(SolrInfoBean.Group.jetty), 
metricTag);
+
+        // Close all OTEL meter providers and metrics
+        metricManager.closeAllRegistries();
       }
 
       if (isZooKeeperAware()) {
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 d34b482402a..4ac39cda833 100644
--- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
+++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
@@ -37,7 +37,6 @@ import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SuppressForbidden;
 import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.MetricsConfig;
 import org.apache.solr.core.PluginBag;
 import org.apache.solr.core.PluginInfo;
 import org.apache.solr.core.SolrCore;
@@ -193,11 +192,7 @@ public abstract class RequestHandlerBase
   public static class HandlerMetrics {
     public static final HandlerMetrics NO_OP =
         new HandlerMetrics(
-            new SolrMetricsContext(
-                new SolrMetricManager(
-                    null, new 
MetricsConfig.MetricsConfigBuilder().setEnabled(false).build()),
-                "NO_OP",
-                "NO_OP"),
+            new SolrMetricsContext(new SolrMetricManager(null), "NO_OP", 
"NO_OP"),
             Attributes.empty());
 
     public AttributedLongCounter requests;
@@ -207,7 +202,6 @@ public abstract class RequestHandlerBase
     public AttributedLongTimer requestTimes;
 
     public HandlerMetrics(SolrMetricsContext solrMetricsContext, Attributes 
attributes) {
-
       LongCounter requestMetric;
       LongCounter errorRequestMetric;
       LongCounter timeoutRequestMetric;
diff --git 
a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java 
b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
index 86c81c83bd8..aa64dcbacb1 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
@@ -190,6 +190,7 @@ public class SolrCoreMetricManager implements Closeable {
     metricManager.unregisterGauges(
         solrMetricsContext.getRegistryName(), solrMetricsContext.getTag());
 
+    metricManager.meterProvider(solrMetricsContext.getRegistryName()).close();
     registeredProducers.clear();
   }
 
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 b4e1e708d86..43da56a7f75 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
@@ -16,6 +16,9 @@
  */
 package org.apache.solr.metrics;
 
+import static 
org.apache.solr.metrics.otel.MetricExporterFactory.OTLP_EXPORTER_ENABLED;
+import static 
org.apache.solr.metrics.otel.MetricExporterFactory.OTLP_EXPORTER_INTERVAL;
+
 import com.codahale.metrics.Counter;
 import com.codahale.metrics.Gauge;
 import com.codahale.metrics.Histogram;
@@ -57,6 +60,8 @@ import io.opentelemetry.sdk.metrics.InstrumentSelector;
 import io.opentelemetry.sdk.metrics.InstrumentType;
 import io.opentelemetry.sdk.metrics.SdkMeterProvider;
 import io.opentelemetry.sdk.metrics.View;
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
+import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
 import io.opentelemetry.sdk.metrics.internal.SdkMeterProviderUtil;
 import io.opentelemetry.sdk.metrics.internal.exemplar.ExemplarFilter;
 import java.io.IOException;
@@ -81,6 +86,8 @@ import java.util.function.Consumer;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 import java.util.stream.Collectors;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.util.IOUtils;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.MetricsConfig;
@@ -90,6 +97,8 @@ import org.apache.solr.core.SolrInfoBean;
 import org.apache.solr.core.SolrResourceLoader;
 import org.apache.solr.logging.MDCLoggingContext;
 import org.apache.solr.metrics.otel.FilterablePrometheusMetricReader;
+import org.apache.solr.metrics.otel.MetricExporterFactory;
+import org.apache.solr.metrics.otel.NoopMetricExporter;
 import org.apache.solr.metrics.otel.OtelUnit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -161,6 +170,8 @@ public class SolrMetricManager {
   private final ConcurrentMap<String, MeterProviderAndReaders> 
meterProviderAndReaders =
       new ConcurrentHashMap<>();
 
+  private final MetricExporter metricExporter;
+
   private static final List<Double> SOLR_NANOSECOND_HISTOGRAM_BOUNDARIES =
       List.of(
           0.0,
@@ -178,8 +189,9 @@ public class SolrMetricManager {
           100_000_000.0,
           1_000_000_000.0);
 
-  public SolrMetricManager() {
+  public SolrMetricManager(MetricExporter exporter) {
     metricsConfig = new MetricsConfig.MetricsConfigBuilder().build();
+    metricExporter = exporter;
     counterSupplier = MetricSuppliers.counterSupplier(null, null);
     meterSupplier = MetricSuppliers.meterSupplier(null, null);
     timerSupplier = MetricSuppliers.timerSupplier(null, null);
@@ -188,6 +200,7 @@ public class SolrMetricManager {
 
   public SolrMetricManager(SolrResourceLoader loader, MetricsConfig 
metricsConfig) {
     this.metricsConfig = metricsConfig;
+    this.metricExporter = loadMetricExporter(loader);
     counterSupplier = MetricSuppliers.counterSupplier(loader, 
metricsConfig.getCounterSupplier());
     meterSupplier = MetricSuppliers.meterSupplier(loader, 
metricsConfig.getMeterSupplier());
     timerSupplier = MetricSuppliers.timerSupplier(loader, 
metricsConfig.getTimerSupplier());
@@ -827,9 +840,7 @@ public class SolrMetricManager {
             providerName,
             key -> {
               var reader = new FilterablePrometheusMetricReader(true, null);
-              // NOCOMMIT: We need to add a Periodic Metric Reader here if we 
want to push with OTLP
-              // with an exporter
-              var provider =
+              var builder =
                   SdkMeterProvider.builder()
                       .registerMetricReader(reader)
                       .registerView(
@@ -841,9 +852,14 @@ public class SolrMetricManager {
                               .setAggregation(
                                   Aggregation.explicitBucketHistogram(
                                       SOLR_NANOSECOND_HISTOGRAM_BOUNDARIES))
-                              .build()); // TODO: Make histogram bucket 
boundaries configurable
-              SdkMeterProviderUtil.setExemplarFilter(provider, 
ExemplarFilter.traceBased());
-              return new MeterProviderAndReaders(provider.build(), reader);
+                              .build()); // TODO: Make histogram bucket 
boundaries configurable;
+              if (metricExporter != null)
+                builder.registerMetricReader(
+                    PeriodicMetricReader.builder(metricExporter)
+                        .setInterval(OTLP_EXPORTER_INTERVAL, 
TimeUnit.MILLISECONDS)
+                        .build());
+              SdkMeterProviderUtil.setExemplarFilter(builder, 
ExemplarFilter.traceBased());
+              return new MeterProviderAndReaders(builder.build(), reader);
             })
         .sdkMeterProvider();
   }
@@ -871,15 +887,27 @@ public class SolrMetricManager {
    *
    * @param registry name of the registry to remove
    */
+  // NOCOMMIT: Remove this
   public void removeRegistry(String registry) {
     meterProviderAndReaders.computeIfPresent(
         enforcePrefix(registry),
         (key, meterAndReader) -> {
-          meterAndReader.sdkMeterProvider().close();
+          IOUtils.closeQuietly(meterAndReader.sdkMeterProvider());
           return null;
         });
   }
 
+  /** Close all meter providers and their associated metric readers. */
+  public void closeAllRegistries() {
+    meterProviderAndReaders
+        .values()
+        .forEach(
+            meterAndReader -> {
+              IOUtils.closeQuietly(meterAndReader.sdkMeterProvider);
+            });
+    meterProviderAndReaders.clear();
+  }
+
   /**
    * Potential conflict resolution strategies when attempting to register a 
new metric that already
    * exists
@@ -1736,6 +1764,24 @@ public class SolrMetricManager {
     return (mpr != null) ? mpr.prometheusMetricReader() : null;
   }
 
+  public MetricExporter getMetricExporter() {
+    return metricExporter;
+  }
+
+  private MetricExporter loadMetricExporter(SolrResourceLoader loader) {
+    if (!OTLP_EXPORTER_ENABLED) return new NoopMetricExporter();
+    try {
+      MetricExporterFactory exporterFactory =
+          loader.newInstance(
+              "org.apache.solr.opentelemetry.OtlpExporterFactory", 
MetricExporterFactory.class);
+      return exporterFactory.getExporter();
+    } catch (SolrException e) {
+      log.error(
+          "Could not load OTLP exporter. Check that the Open Telemetry module 
is enabled.", e);
+      return new NoopMetricExporter();
+    }
+  }
+
   private record MeterProviderAndReaders(
       SdkMeterProvider sdkMeterProvider, FilterablePrometheusMetricReader 
prometheusMetricReader) {}
 }
diff --git 
a/solr/core/src/java/org/apache/solr/metrics/otel/MetricExporterFactory.java 
b/solr/core/src/java/org/apache/solr/metrics/otel/MetricExporterFactory.java
new file mode 100644
index 00000000000..5d0ecc67427
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/metrics/otel/MetricExporterFactory.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.metrics.otel;
+
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
+import org.apache.solr.common.util.EnvUtils;
+
+public interface MetricExporterFactory {
+
+  public static final Boolean OTLP_EXPORTER_ENABLED =
+      
Boolean.parseBoolean(EnvUtils.getProperty("solr.metrics.otlpExporterEnabled", 
"false"));
+
+  public static final String OTLP_EXPORTER_PROTOCOL =
+      EnvUtils.getProperty("solr.metrics.otlpExporterProtocol", "grpc");
+
+  public static final int OTLP_EXPORTER_INTERVAL =
+      
Integer.parseInt(EnvUtils.getProperty("solr.metrics.otlpExporterInterval", 
"60000"));
+
+  MetricExporter getExporter();
+}
diff --git 
a/solr/core/src/java/org/apache/solr/metrics/otel/NoopMetricExporter.java 
b/solr/core/src/java/org/apache/solr/metrics/otel/NoopMetricExporter.java
new file mode 100644
index 00000000000..578a8f5a01c
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/metrics/otel/NoopMetricExporter.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.metrics.otel;
+
+import io.opentelemetry.sdk.common.CompletableResultCode;
+import io.opentelemetry.sdk.metrics.InstrumentType;
+import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
+import io.opentelemetry.sdk.metrics.data.MetricData;
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
+import java.util.Collection;
+
+public class NoopMetricExporter implements MetricExporter {
+  @Override
+  public CompletableResultCode export(Collection<MetricData> metrics) {
+    return CompletableResultCode.ofSuccess();
+  }
+
+  @Override
+  public CompletableResultCode flush() {
+    return CompletableResultCode.ofSuccess();
+  }
+
+  @Override
+  public CompletableResultCode shutdown() {
+    return CompletableResultCode.ofSuccess();
+  }
+
+  @Override
+  public AggregationTemporality getAggregationTemporality(InstrumentType 
instrumentType) {
+    return AggregationTemporality.CUMULATIVE;
+  }
+}
diff --git a/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java 
b/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java
index a628b9263a7..f42067715a0 100644
--- a/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java
+++ b/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java
@@ -39,7 +39,7 @@ public class BufferStoreTest extends SolrTestCase {
   @Before
   public void setup() {
     metrics = new Metrics();
-    metricManager = new SolrMetricManager();
+    metricManager = new SolrMetricManager(null);
     registry = TestUtil.randomSimpleString(random(), 2, 10);
     String scope = TestUtil.randomSimpleString(random(), 2, 10);
     SolrMetricsContext solrMetricsContext = new 
SolrMetricsContext(metricManager, registry, "foo");
diff --git 
a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java 
b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
index 683ed940733..4af0a5f3809 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
@@ -30,24 +30,30 @@ import io.opentelemetry.api.metrics.LongGauge;
 import io.opentelemetry.api.metrics.LongHistogram;
 import io.opentelemetry.api.metrics.LongUpDownCounter;
 import io.opentelemetry.exporter.prometheus.PrometheusMetricReader;
+import io.opentelemetry.sdk.metrics.data.MetricData;
+import io.opentelemetry.sdk.testing.exporter.InMemoryMetricExporter;
 import io.prometheus.metrics.model.snapshots.CounterSnapshot;
 import io.prometheus.metrics.model.snapshots.GaugeSnapshot;
 import io.prometheus.metrics.model.snapshots.HistogramSnapshot;
 import io.prometheus.metrics.model.snapshots.MetricSnapshot;
 import io.prometheus.metrics.model.snapshots.MetricSnapshots;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Random;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.DoubleAdder;
 import java.util.concurrent.atomic.LongAdder;
 import org.apache.lucene.tests.util.TestUtil;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.RetryUtil;
 import org.apache.solr.core.PluginInfo;
 import org.apache.solr.core.SolrInfoBean;
 import org.apache.solr.util.SolrMetricTestUtils;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -59,20 +65,24 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 {
   @Before
   public void setUp() throws Exception {
     super.setUp();
-    this.metricManager = new SolrMetricManager();
+    this.metricManager = new 
SolrMetricManager(InMemoryMetricExporter.create());
     // Initialize a metric reader for tests
     metricManager.meterProvider(METER_PROVIDER_NAME);
     this.reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME);
   }
 
+  @After
+  public void tearDown() throws Exception {
+    metricManager.closeAllRegistries();
+    super.tearDown();
+  }
+
   // NOCOMMIT: Migration of this to OTEL isn't possible. You can't register 
instruments to a
   // meterprovider that the provider itself didn't create
   @Test
   public void testRegisterAll() throws Exception {
     Random r = random();
 
-    SolrMetricManager metricManager = new SolrMetricManager();
-
     Map<String, Counter> metrics = SolrMetricTestUtils.getRandomMetrics(r, 
true);
     MetricRegistry mr = new MetricRegistry();
     for (Map.Entry<String, Counter> entry : metrics.entrySet()) {
@@ -101,8 +111,6 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 {
   public void testClearMetrics() {
     Random r = random();
 
-    SolrMetricManager metricManager = new SolrMetricManager();
-
     Map<String, Counter> metrics = SolrMetricTestUtils.getRandomMetrics(r, 
true);
     String registryName = TestUtil.randomSimpleString(r, 1, 10);
 
@@ -144,8 +152,6 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 {
   public void testSimpleMetrics() {
     Random r = random();
 
-    SolrMetricManager metricManager = new SolrMetricManager();
-
     String registryName = TestUtil.randomSimpleString(r, 1, 10);
 
     metricManager.counter(null, registryName, "simple_counter", "foo", "bar");
@@ -390,6 +396,32 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 {
     assertEquals(-10.1, actual.getDataPoints().getFirst().getValue(), 1e-6);
   }
 
+  @Test
+  public void testMetricExporter() throws Exception {
+    LongCounter counter =
+        metricManager.longCounter(METER_PROVIDER_NAME, "my_counter", "desc", 
null);
+    counter.add(5);
+    counter.add(3);
+    InMemoryMetricExporter exporter = (InMemoryMetricExporter) 
metricManager.getMetricExporter();
+
+    RetryUtil.retryUntil(
+        "my_counter metric not found from exporter within timeout",
+        50,
+        100L,
+        TimeUnit.MILLISECONDS,
+        () -> {
+          Collection<MetricData> metrics = exporter.getFinishedMetricItems();
+          return metrics.stream()
+              .filter(m -> "my_counter".equals(m.getName()))
+              .findFirst()
+              .map(
+                  actual ->
+                      actual.getLongSumData().getPoints().stream()
+                          .anyMatch(p -> p.getValue() == 8L))
+              .orElse(false);
+        });
+  }
+
   @Test
   public void testCloseMeterProviders() {
     LongCounter counter =
diff --git 
a/solr/core/src/test/org/apache/solr/metrics/SolrMetricReporterTest.java 
b/solr/core/src/test/org/apache/solr/metrics/SolrMetricReporterTest.java
index c0ff0827d57..b9dd45e467c 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricReporterTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricReporterTest.java
@@ -33,7 +33,7 @@ public class SolrMetricReporterTest extends SolrTestCaseJ4 {
   public void testInit() throws Exception {
     Random random = random();
 
-    SolrMetricManager metricManager = new SolrMetricManager();
+    SolrMetricManager metricManager = new SolrMetricManager(null);
 
     final String registryName = TestUtil.randomSimpleString(random);
     final MockMetricReporter reporter = new MockMetricReporter(metricManager, 
registryName);
diff --git a/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java 
b/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java
index 12d7813ec2d..d045a1d46de 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java
@@ -45,7 +45,7 @@ import org.junit.Test;
 /** Test for {@link CaffeineCache}. */
 public class TestCaffeineCache extends SolrTestCase {
 
-  SolrMetricManager metricManager = new SolrMetricManager();
+  SolrMetricManager metricManager = new SolrMetricManager(null);
   String registry = TestUtil.randomSimpleString(random(), 2, 10);
   String scope = TestUtil.randomSimpleString(random(), 2, 10);
 
diff --git a/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java 
b/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java
index 8e9e4717676..0675e43e752 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java
@@ -33,6 +33,7 @@ import 
org.apache.commons.math3.stat.descriptive.SummaryStatistics;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.metrics.SolrMetricManager;
 import org.apache.solr.metrics.SolrMetricsContext;
+import org.apache.solr.metrics.otel.NoopMetricExporter;
 import org.apache.solr.util.SolrMetricTestUtils;
 import org.junit.Before;
 import org.junit.Test;
@@ -102,7 +103,7 @@ public class TestSolrCachePerf extends SolrTestCaseJ4 {
       boolean useCompute)
       throws Exception {
     for (Class<? extends SolrCache> clazz : IMPLS) {
-      SolrMetricManager metricManager = new SolrMetricManager();
+      SolrMetricManager metricManager = new SolrMetricManager(new 
NoopMetricExporter());
       @SuppressWarnings({"unchecked"})
       SolrCache<String, String> cache = 
clazz.getDeclaredConstructor().newInstance();
       Map<String, String> params = new HashMap<>();
@@ -182,6 +183,7 @@ public class TestSolrCachePerf extends SolrTestCaseJ4 {
       perImplRatio.addValue(hitRatio);
       perImplTime.addValue((double) (stopTime - startTime));
       cache.close();
+      metricManager.closeAllRegistries();
     }
   }
 }
diff --git a/solr/core/src/test/org/apache/solr/search/TestThinCache.java 
b/solr/core/src/test/org/apache/solr/search/TestThinCache.java
index 00c7d7a02a1..ff174290d65 100644
--- a/solr/core/src/test/org/apache/solr/search/TestThinCache.java
+++ b/solr/core/src/test/org/apache/solr/search/TestThinCache.java
@@ -84,7 +84,7 @@ public class TestThinCache extends SolrTestCaseJ4 {
     lrf = h.getRequestFactory("/select", 0, 20);
   }
 
-  SolrMetricManager metricManager = new SolrMetricManager();
+  SolrMetricManager metricManager = new SolrMetricManager(null);
   String registry = TestUtil.randomSimpleString(random(), 2, 10);
   String scope = TestUtil.randomSimpleString(random(), 2, 10);
 
diff --git 
a/solr/core/src/test/org/apache/solr/util/stats/OtelInstrumentedExecutorServiceTest.java
 
b/solr/core/src/test/org/apache/solr/util/stats/OtelInstrumentedExecutorServiceTest.java
index 2d7ad162e4f..550477620e0 100644
--- 
a/solr/core/src/test/org/apache/solr/util/stats/OtelInstrumentedExecutorServiceTest.java
+++ 
b/solr/core/src/test/org/apache/solr/util/stats/OtelInstrumentedExecutorServiceTest.java
@@ -49,7 +49,7 @@ public class OtelInstrumentedExecutorServiceTest extends 
SolrTestCase {
 
   @Before
   public void setUpMetrics() {
-    metricsContext = new SolrMetricsContext(new SolrMetricManager(), 
REGISTRY_NAME, TAG_NAME);
+    metricsContext = new SolrMetricsContext(new SolrMetricManager(null), 
REGISTRY_NAME, TAG_NAME);
   }
 
   @Test
diff --git a/solr/cross-dc-manager/gradle.lockfile 
b/solr/cross-dc-manager/gradle.lockfile
index ebaab5f6e2d..0d9de5264ce 100644
--- a/solr/cross-dc-manager/gradle.lockfile
+++ b/solr/cross-dc-manager/gradle.lockfile
@@ -38,6 +38,9 @@ 
com.helger:profiler:1.1.1=compileClasspath,jarValidation,runtimeClasspath,runtim
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.lmax:disruptor:3.4.4=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.thoughtworks.paranamer:paranamer:2.8=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
com.typesafe.scala-logging:scala-logging_2.13:3.9.5=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
@@ -82,6 +85,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -205,6 +209,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/analysis-extras/gradle.lockfile 
b/solr/modules/analysis-extras/gradle.lockfile
index 16956cbd2d1..f4797b26d82 100644
--- a/solr/modules/analysis-extras/gradle.lockfile
+++ b/solr/modules/analysis-extras/gradle.lockfile
@@ -32,6 +32,9 @@ 
com.ibm.icu:icu4j:77.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLi
 
com.j256.simplemagic:simplemagic:1.17=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -66,6 +69,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidati
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -175,6 +179,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=apiHelper,jarValidation,runtimeClas
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/clustering/gradle.lockfile 
b/solr/modules/clustering/gradle.lockfile
index 28d2fddea50..269f8b768ed 100644
--- a/solr/modules/clustering/gradle.lockfile
+++ b/solr/modules/clustering/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -65,6 +68,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -165,6 +169,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/cross-dc/gradle.lockfile 
b/solr/modules/cross-dc/gradle.lockfile
index a82cfa3402b..69e6614a1f3 100644
--- a/solr/modules/cross-dc/gradle.lockfile
+++ b/solr/modules/cross-dc/gradle.lockfile
@@ -32,6 +32,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -66,6 +69,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidati
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -168,6 +172,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=apiHelper,jarValidation,runtimeClas
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git 
a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/handler/MirroringCollectionsHandlerTest.java
 
b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/handler/MirroringCollectionsHandlerTest.java
index ed914dfaeb1..a4cb9a97cc3 100644
--- 
a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/handler/MirroringCollectionsHandlerTest.java
+++ 
b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/handler/MirroringCollectionsHandlerTest.java
@@ -31,7 +31,6 @@ import org.apache.solr.common.cloud.Replica;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.OpenTelemetryConfigurator;
 import org.apache.solr.core.SolrXmlConfig;
 import org.apache.solr.crossdc.common.KafkaCrossDcConf;
 import org.apache.solr.crossdc.common.KafkaMirroringSink;
@@ -161,8 +160,6 @@ public class MirroringCollectionsHandlerTest extends 
SolrTestCaseJ4 {
 
   @Test
   public void testCoreContainerInit() throws Exception {
-    OpenTelemetryConfigurator.resetForTest();
-
     Path home = createTempDir();
     String solrXml = IOUtils.resourceToString("/mirroring-solr.xml", 
StandardCharsets.UTF_8);
     CoreContainer cores = new CoreContainer(SolrXmlConfig.fromString(home, 
solrXml));
diff --git a/solr/modules/extraction/gradle.lockfile 
b/solr/modules/extraction/gradle.lockfile
index 6b4aac0c9d8..5cd9119121e 100644
--- a/solr/modules/extraction/gradle.lockfile
+++ b/solr/modules/extraction/gradle.lockfile
@@ -49,6 +49,9 @@ 
com.mchange:mchange-commons-java:0.2.19=compileClasspath,jarValidation,runtimeCl
 
com.pff:java-libpst:0.9.3=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
com.rometools:rome-utils:1.18.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
com.rometools:rome:1.18.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.sun.activation:jakarta.activation:1.2.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
com.sun.istack:istack-commons-runtime:3.0.12=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -93,6 +96,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -237,6 +241,11 @@ 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspat
 
org.itadaki:bzip2:0.9.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jdom:jdom2:2.0.6.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/gcs-repository/gradle.lockfile 
b/solr/modules/gcs-repository/gradle.lockfile
index 56ff6aac99e..4c48812d2c1 100644
--- a/solr/modules/gcs-repository/gradle.lockfile
+++ b/solr/modules/gcs-repository/gradle.lockfile
@@ -59,6 +59,9 @@ 
com.google.re2j:re2j:1.7=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeC
 
com.j256.simplemagic:simplemagic:1.17=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
@@ -113,6 +116,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidati
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -214,6 +218,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=apiHelper,jarValidation,runtimeClas
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/jwt-auth/gradle.lockfile 
b/solr/modules/jwt-auth/gradle.lockfile
index b43c20edddb..1c7cf17acbd 100644
--- a/solr/modules/jwt-auth/gradle.lockfile
+++ b/solr/modules/jwt-auth/gradle.lockfile
@@ -38,9 +38,9 @@ 
com.nimbusds:lang-tag:1.7=jarValidation,testCompileClasspath,testRuntimeClasspat
 
com.nimbusds:nimbus-jose-jwt:9.48=jarValidation,testCompileClasspath,testRuntimeClasspath
 
com.nimbusds:oauth2-oidc-sdk:10.10.1=jarValidation,testCompileClasspath,testRuntimeClasspath
 
com.squareup.okhttp3:mockwebserver:4.11.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-com.squareup.okhttp3:okhttp:4.12.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-com.squareup.okio:okio-jvm:3.6.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-com.squareup.okio:okio:3.6.0=jarValidation,testCompileClasspath,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
@@ -79,6 +79,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -191,11 +192,11 @@ 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtime
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 org.jetbrains.kotlin:kotlin-reflect:1.8.22=jarValidation,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,testCompileClasspath,testRuntimeClasspath
-org.jetbrains:annotations:26.0.2=jarValidation,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/langid/gradle.lockfile 
b/solr/modules/langid/gradle.lockfile
index 1e0276b0f81..d833e97fb06 100644
--- a/solr/modules/langid/gradle.lockfile
+++ b/solr/modules/langid/gradle.lockfile
@@ -32,6 +32,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -66,6 +69,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -168,6 +172,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/llm/gradle.lockfile b/solr/modules/llm/gradle.lockfile
index a0f9e9ec2b2..73fd7c82869 100644
--- a/solr/modules/llm/gradle.lockfile
+++ b/solr/modules/llm/gradle.lockfile
@@ -35,9 +35,9 @@ 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,s
 
com.knuddels:jtokkit:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
 
com.squareup.okhttp3:okhttp-sse:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.squareup.retrofit2:converter-jackson:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
com.squareup.retrofit2:retrofit:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -80,6 +80,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -179,11 +180,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile
index 5ff872ffc7b..c6b689582b0 100644
--- a/solr/modules/ltr/gradle.lockfile
+++ b/solr/modules/ltr/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -65,6 +68,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -165,6 +169,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/opentelemetry/build.gradle 
b/solr/modules/opentelemetry/build.gradle
index 7ab50a32421..00a693d3fd6 100644
--- a/solr/modules/opentelemetry/build.gradle
+++ b/solr/modules/opentelemetry/build.gradle
@@ -17,7 +17,7 @@
 
 apply plugin: 'java-library'
 
-description = 'Open Telemetry (OTEL) tracer'
+description = 'Open Telemetry (OTEL) tracer and OTLP exporter'
 
 dependencies {
   implementation platform(project(':platform'))
@@ -31,7 +31,7 @@ dependencies {
 
   implementation libs.opentelemetry.api
   implementation libs.opentelemetry.sdkextension.autoconfigure
-  runtimeOnly libs.opentelemetry.exporter.otlp
+  implementation libs.opentelemetry.exporter.otlp
   // End users must recompile with jaeger exporter and/or zipkin exporter if 
they need these
 
   // NOTE: sdk-autoconfigure needs both opentelemetry-sdk-metrics and 
opentelemetry-sdk-logs even if we don't use them
diff --git a/solr/modules/opentelemetry/gradle.lockfile 
b/solr/modules/opentelemetry/gradle.lockfile
index e7d6d1f0fe6..e4c8a4bde6a 100644
--- a/solr/modules/opentelemetry/gradle.lockfile
+++ b/solr/modules/opentelemetry/gradle.lockfile
@@ -34,9 +34,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,jarValid
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
-com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -88,9 +88,9 @@ 
io.opentelemetry:opentelemetry-bom:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-otlp-common:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
@@ -194,11 +194,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
-org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git 
a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtlpExporterFactory.java
 
b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtlpExporterFactory.java
new file mode 100644
index 00000000000..879aecd99b8
--- /dev/null
+++ 
b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtlpExporterFactory.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.opentelemetry;
+
+import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
+import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
+import java.lang.invoke.MethodHandles;
+import org.apache.solr.metrics.otel.MetricExporterFactory;
+import org.apache.solr.metrics.otel.NoopMetricExporter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Factory class for creating OpenTelemetry OTLP metric exporters and its 
configuration properties.
+ *
+ * @see io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter
+ * @see io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter
+ * @see NoopMetricExporter
+ */
+public class OtlpExporterFactory implements MetricExporterFactory {
+
+  private static final Logger log = 
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+  public MetricExporter getExporter() {
+    if (!OTLP_EXPORTER_ENABLED) {
+      log.info("OTLP metric exporter is disabled.");
+      return new NoopMetricExporter();
+    }
+
+    return switch (OTLP_EXPORTER_PROTOCOL) {
+      case "grpc" -> OtlpGrpcMetricExporter.getDefault();
+      case "http" -> OtlpHttpMetricExporter.getDefault();
+      case "none" -> new NoopMetricExporter();
+      default -> {
+        log.warn(
+            "Unknown OTLP exporter type: {}. Defaulting to NO-OP exporter.",
+            OTLP_EXPORTER_PROTOCOL);
+        yield new NoopMetricExporter();
+      }
+    };
+  }
+}
diff --git a/solr/modules/s3-repository/gradle.lockfile 
b/solr/modules/s3-repository/gradle.lockfile
index 8a832f75084..ecad49d9e51 100644
--- a/solr/modules/s3-repository/gradle.lockfile
+++ b/solr/modules/s3-repository/gradle.lockfile
@@ -42,6 +42,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.sun.istack:istack-commons-runtime:4.1.2=jarValidation,testCompileClasspath,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -81,6 +84,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidati
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -212,6 +216,11 @@ 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=apiHelper,jarValidati
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 org.hdrhistogram:HdrHistogram:2.2.1=jarValidation,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/scripting/gradle.lockfile 
b/solr/modules/scripting/gradle.lockfile
index 4a1f27bf7c8..32910defbdc 100644
--- a/solr/modules/scripting/gradle.lockfile
+++ b/solr/modules/scripting/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -65,6 +68,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -164,6 +168,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,runt
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile
index 4bbc695f86c..481a9c32584 100644
--- a/solr/modules/sql/gradle.lockfile
+++ b/solr/modules/sql/gradle.lockfile
@@ -38,6 +38,9 @@ com.ibm.icu:icu4j:77.1=jarValidation,testRuntimeClasspath
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 com.lmax:disruptor:3.4.4=solrPlatformLibs
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -72,6 +75,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtime
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.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.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
@@ -191,6 +195,11 @@ 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtime
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.immutables:value-annotations:2.10.1=compileClasspath,compileOnlyHelper,jarValidation
 
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/prometheus-exporter/gradle.lockfile 
b/solr/prometheus-exporter/gradle.lockfile
index b5372e4c481..c7bac4fcb8f 100644
--- a/solr/prometheus-exporter/gradle.lockfile
+++ b/solr/prometheus-exporter/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 
com.j256.simplemagic:simplemagic:1.17=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
com.lmax:disruptor:3.4.4=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 com.tdunning:t-digest:3.3=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
@@ -65,6 +68,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,solrPlatformLibs,testCom
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
@@ -168,6 +172,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,solrPlatformLibs,test
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=jarValidation,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,solrPlatformLibs,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile
index 2409df0ff94..3238f9f84cc 100644
--- a/solr/server/gradle.lockfile
+++ b/solr/server/gradle.lockfile
@@ -28,6 +28,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,solrCore
 com.jayway.jsonpath:json-path:2.9.0=jarValidation,runtimeClasspath,solrCore
 com.lmax:disruptor:3.4.4=jarValidation,libExt,runtimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,runtimeClasspath,solrCore
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,runtimeClasspath,solrCore
+com.squareup.okio:okio:3.6.0=jarValidation,runtimeClasspath,solrCore
 com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,solrCore
 commons-cli:commons-cli:1.10.0=jarValidation,runtimeClasspath,solrCore
 commons-codec:commons-codec:1.17.2=jarValidation,runtimeClasspath,solrCore
@@ -62,6 +65,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,runtimeClasspath,solrCor
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,runtimeClasspath,solrCore
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,runtimeClasspath,solrCore
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,runtimeClasspath,solrCore
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,runtimeClasspath,solrCore
@@ -157,6 +161,11 @@ 
org.glassfish.jersey.ext:jersey-entity-filtering:3.1.9=jarValidation,runtimeClas
 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,runtimeClasspath,solrCore
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,runtimeClasspath,solrCore
 org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,solrCore
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,runtimeClasspath,solrCore
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,runtimeClasspath,solrCore
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,runtimeClasspath,solrCore
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,runtimeClasspath,solrCore
+org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,solrCore
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 
org.locationtech.spatial4j:spatial4j:0.8=jarValidation,runtimeClasspath,solrCore
 org.ow2.asm:asm-commons:9.7.1=jarValidation,runtimeClasspath,solrCore
diff --git a/solr/solr-ref-guide/gradle.lockfile 
b/solr/solr-ref-guide/gradle.lockfile
index 71b6abb8a61..6f25297258a 100644
--- a/solr/solr-ref-guide/gradle.lockfile
+++ b/solr/solr-ref-guide/gradle.lockfile
@@ -30,6 +30,9 @@ 
com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath
 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnnotationProcessor
 com.j256.simplemagic:simplemagic:1.17=testRuntimeClasspath
 com.jayway.jsonpath:json-path:2.9.0=testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=testRuntimeClasspath
 com.tdunning:t-digest:3.3=testRuntimeClasspath
 commons-cli:commons-cli:1.10.0=testRuntimeClasspath
 commons-codec:commons-codec:1.17.2=testRuntimeClasspath
@@ -64,6 +67,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=testCompileClasspath,testRuntimeClassp
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=testRuntimeClasspath
 io.opentelemetry:opentelemetry-sdk-common:1.50.0=testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=testRuntimeClasspath
 io.opentelemetry:opentelemetry-sdk-logs:1.50.0=testRuntimeClasspath
@@ -159,6 +163,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=testRuntimeClasspath
 org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=testRuntimeClasspath
 org.hamcrest:hamcrest:3.0=testCompileClasspath,testRuntimeClasspath
 org.javassist:javassist:3.30.2-GA=testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=testRuntimeClasspath
 org.junit.platform:junit-platform-commons:1.6.2=testRuntimeClasspath
diff --git a/solr/solrj-streaming/gradle.lockfile 
b/solr/solrj-streaming/gradle.lockfile
index e67a7e43c46..da730f92668 100644
--- a/solr/solrj-streaming/gradle.lockfile
+++ b/solr/solrj-streaming/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,jarValid
 com.googlecode.json-simple:json-simple:1.1.1=jarValidation,testRuntimeClasspath
 com.j256.simplemagic:simplemagic:1.17=jarValidation,testRuntimeClasspath
 com.jayway.jsonpath:json-path:2.9.0=jarValidation,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,testRuntimeClasspath
 com.tdunning:t-digest:3.3=jarValidation,testRuntimeClasspath
 commons-cli:commons-cli:1.10.0=jarValidation,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -74,6 +77,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,tes
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,testRuntimeClasspath
@@ -180,6 +184,11 @@ 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,testRun
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 org.hsqldb:hsqldb:2.7.4=jarValidation,testRuntimeClasspath
 org.javassist:javassist:3.30.2-GA=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/solrj-zookeeper/gradle.lockfile 
b/solr/solrj-zookeeper/gradle.lockfile
index 806e8a41804..9bbb9e347ff 100644
--- a/solr/solrj-zookeeper/gradle.lockfile
+++ b/solr/solrj-zookeeper/gradle.lockfile
@@ -35,6 +35,9 @@ 
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,testCompileClasspath
 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnnotationProcessor
 com.j256.simplemagic:simplemagic:1.17=jarValidation,testRuntimeClasspath
 com.jayway.jsonpath:json-path:2.9.0=jarValidation,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,testRuntimeClasspath
 com.tdunning:t-digest:3.3=jarValidation,testRuntimeClasspath
 commons-cli:commons-cli:1.10.0=jarValidation,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=jarValidation,permitTestUsedUndeclared,runtimeClasspath,testRuntimeClasspath
@@ -78,6 +81,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,tes
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,testRuntimeClasspath
@@ -173,6 +177,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,testRuntimeClasspath
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 org.javassist:javassist:3.30.2-GA=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile
index 968b58e2ff2..6b270299684 100644
--- a/solr/solrj/gradle.lockfile
+++ b/solr/solrj/gradle.lockfile
@@ -36,6 +36,9 @@ 
com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath
 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnnotationProcessor
 com.j256.simplemagic:simplemagic:1.17=jarValidation,testRuntimeClasspath
 com.jayway.jsonpath:json-path:2.9.0=jarValidation,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=jarValidation,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=jarValidation,testRuntimeClasspath
 com.tdunning:t-digest:3.3=jarValidation,testRuntimeClasspath
 commons-cli:commons-cli:1.10.0=jarValidation,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -79,6 +82,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,tes
 
io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=jarValidation,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=jarValidation,testRuntimeClasspath
@@ -179,6 +183,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=jarValidation,testRuntimeClasspath
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=jarValidation,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
 org.javassist:javassist:3.30.2-GA=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=jarValidation,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=jarValidation,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
diff --git a/solr/test-framework/gradle.lockfile 
b/solr/test-framework/gradle.lockfile
index ebf86e66cb3..5ffb86ba86c 100644
--- a/solr/test-framework/gradle.lockfile
+++ b/solr/test-framework/gradle.lockfile
@@ -31,6 +31,9 @@ 
com.google.j2objc:j2objc-annotations:3.0.0=compileClasspath,testCompileClasspath
 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnnotationProcessor
 
com.j256.simplemagic:simplemagic:1.17=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
com.jayway.jsonpath:json-path:2.9.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+com.squareup.okhttp3:okhttp:4.12.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+com.squareup.okio:okio-jvm:3.6.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+com.squareup.okio:okio:3.6.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
com.tdunning:t-digest:3.3=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
commons-cli:commons-cli:1.10.0=apiHelper,compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
commons-codec:commons-codec:1.17.2=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -65,6 +68,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidati
 
io.opentelemetry:opentelemetry-context:1.50.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,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-common:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
io.opentelemetry:opentelemetry-sdk-logs:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
@@ -161,6 +165,11 @@ 
org.glassfish.jersey.inject:jersey-hk2:3.1.9=apiHelper,jarValidation,runtimeClas
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.hamcrest:hamcrest:3.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.javassist:javassist:3.30.2-GA=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+org.jetbrains:annotations:26.0.2=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 
org.junit.jupiter:junit-jupiter-api:5.6.2=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
 
org.junit.platform:junit-platform-commons:1.6.2=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java 
b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
index 02f8f7049f2..98a760c39e4 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -250,7 +250,6 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
 
   @BeforeClass
   public static void setupTestCases() {
-    OpenTelemetryConfigurator.resetForTest();
     resetExceptionIgnores();
 
     testExecutor =
@@ -283,6 +282,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
     System.setProperty("solr.filterCache.async", 
String.valueOf(random().nextBoolean()));
     System.setProperty("solr.http.disableCookies", Boolean.toString(rarely()));
     System.setProperty("solr.metrics.jvm.enabled", "false");
+    System.setProperty("solr.metrics.otlpExporterInterval", "1000");
 
     startTrackingSearchers();
     ignoreException("ignore_exception");
@@ -299,6 +299,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
     }
 
     ExecutorUtil.resetThreadLocalProviders();
+    OpenTelemetryConfigurator.resetForTest();
   }
 
   @AfterClass
diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile
index 157ebb42ad1..0e2639579cb 100644
--- a/solr/webapp/gradle.lockfile
+++ b/solr/webapp/gradle.lockfile
@@ -29,6 +29,9 @@ 
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnno
 com.j256.simplemagic:simplemagic:1.17=permitUnusedDeclared,solrCore
 com.jayway.jsonpath:json-path:2.9.0=permitUnusedDeclared,solrCore
 com.lmax:disruptor:3.4.4=serverLib
+com.squareup.okhttp3:okhttp:4.12.0=permitUnusedDeclared,solrCore
+com.squareup.okio:okio-jvm:3.6.0=permitUnusedDeclared,solrCore
+com.squareup.okio:okio:3.6.0=permitUnusedDeclared,solrCore
 com.tdunning:t-digest:3.3=permitUnusedDeclared,solrCore
 commons-cli:commons-cli:1.10.0=permitUnusedDeclared,solrCore
 commons-codec:commons-codec:1.17.2=permitUnusedDeclared,solrCore
@@ -63,6 +66,7 @@ 
io.opentelemetry:opentelemetry-api:1.50.0=permitUnusedDeclared,solrCore
 io.opentelemetry:opentelemetry-context:1.50.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-exporter-sender-okhttp:1.50.0=permitUnusedDeclared,solrCore
 io.opentelemetry:opentelemetry-sdk-common:1.50.0=permitUnusedDeclared,solrCore
 
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=permitUnusedDeclared,solrCore
 io.opentelemetry:opentelemetry-sdk-logs:1.50.0=permitUnusedDeclared,solrCore
@@ -157,6 +161,11 @@ 
org.glassfish.jersey.ext:jersey-entity-filtering:3.1.9=permitUnusedDeclared,solr
 org.glassfish.jersey.inject:jersey-hk2:3.1.9=permitUnusedDeclared,solrCore
 
org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9=permitUnusedDeclared,solrCore
 org.javassist:javassist:3.30.2-GA=permitUnusedDeclared,solrCore
+org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=permitUnusedDeclared,solrCore
+org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0=permitUnusedDeclared,solrCore
+org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0=permitUnusedDeclared,solrCore
+org.jetbrains.kotlin:kotlin-stdlib:2.2.0=permitUnusedDeclared,solrCore
+org.jetbrains:annotations:26.0.2=permitUnusedDeclared,solrCore
 
org.jspecify:jspecify:1.0.0=annotationProcessor,errorprone,testAnnotationProcessor
 org.locationtech.spatial4j:spatial4j:0.8=permitUnusedDeclared,solrCore
 org.ow2.asm:asm-commons:9.7.1=permitUnusedDeclared,solrCore

Reply via email to