You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ml...@apache.org on 2025/09/26 22:11:45 UTC
(solr) 18/33: SOLR-17806: OTEL Java 17 Runtime telemetry for JVM metrics (#3494)
This is an automated email from the ASF dual-hosted git repository.
mlbiscoc pushed a commit to branch feature/SOLR-17458-rebased
in repository https://gitbox.apache.org/repos/asf/solr.git
commit a6b687c8b044350e81ca0324a6f840c1495b70ac
Author: Matthew Biscocho <ml...@apache.org>
AuthorDate: Fri Aug 29 17:08:20 2025 -0400
SOLR-17806: OTEL Java 17 Runtime telemetry for JVM metrics (#3494)
* JVM Runtime metrics
* Cleanup
* Log to error
* Remove registry name
---------
Co-authored-by: Matthew Biscocho <mb...@bloomberg.net>
---
gradle/libs.versions.toml | 2 +
solr/api/gradle.lockfile | 6 ++
solr/benchmark/gradle.lockfile | 6 ++
solr/core/build.gradle | 3 +
solr/core/gradle.lockfile | 6 ++
.../solr/metrics/AltBufferPoolMetricSet.java | 46 --------
.../solr/metrics/OperatingSystemMetricSet.java | 49 ---------
.../apache/solr/metrics/OtelRuntimeJvmMetrics.java | 71 +++++++++++++
.../org/apache/solr/metrics/SolrMetricManager.java | 1 +
.../apache/solr/servlet/CoreContainerProvider.java | 99 +++---------------
.../org/apache/solr/metrics/JvmMetricsTest.java | 116 ++++++---------------
solr/cross-dc-manager/gradle.lockfile | 6 ++
solr/modules/analysis-extras/gradle.lockfile | 6 ++
solr/modules/clustering/gradle.lockfile | 6 ++
solr/modules/cross-dc/gradle.lockfile | 6 ++
solr/modules/extraction/gradle.lockfile | 6 ++
solr/modules/gcs-repository/gradle.lockfile | 6 ++
solr/modules/jwt-auth/gradle.lockfile | 6 ++
solr/modules/langid/gradle.lockfile | 6 ++
solr/modules/llm/gradle.lockfile | 6 ++
solr/modules/ltr/gradle.lockfile | 6 ++
solr/modules/opentelemetry/gradle.lockfile | 6 ++
solr/modules/s3-repository/gradle.lockfile | 6 ++
solr/modules/scripting/gradle.lockfile | 6 ++
solr/modules/sql/gradle.lockfile | 6 ++
solr/prometheus-exporter/gradle.lockfile | 6 ++
.../exporter/SolrExporterIntegrationTest.java | 10 --
.../prometheus/scraper/SolrCloudScraperTest.java | 19 ----
solr/server/gradle.lockfile | 6 ++
solr/solr-ref-guide/gradle.lockfile | 6 ++
solr/solrj-streaming/gradle.lockfile | 6 ++
solr/solrj-zookeeper/gradle.lockfile | 6 ++
solr/solrj/gradle.lockfile | 6 ++
.../solr/common/cloud/TestNodesSysPropsCacher.java | 3 +
solr/test-framework/gradle.lockfile | 6 ++
.../org/apache/solr/SolrIgnoredThreadsFilter.java | 5 +
.../src/java/org/apache/solr/SolrTestCaseJ4.java | 1 +
solr/webapp/gradle.lockfile | 6 ++
38 files changed, 280 insertions(+), 295 deletions(-)
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 7010e88aefb..9f7d5561da4 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -176,6 +176,7 @@ openapi = "7.14.0"
openjdk-jmh = "1.37"
opentelemetry = "1.53.0"
opentelemetry-prometheus = "1.50.0-alpha"
+opentelemetry-runtime-telemetry = "2.11.0-alpha"
osgi-annotation = "8.1.0"
oshai-logging = "7.0.13"
# @keep for version alignment
@@ -484,6 +485,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-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" }
opentelemetry-sdktesting = { module = "io.opentelemetry:opentelemetry-sdk-testing", version.ref = "opentelemetry" }
diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile
index 69b2fdd9e91..a106d8086a8 100644
--- a/solr/api/gradle.lockfile
+++ b/solr/api/gradle.lockfile
@@ -58,6 +58,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=jarValidation,testCompileClas
io.netty:netty-transport-native-epoll:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile
index 1e2a048bb5b..9f5ff8f297e 100644
--- a/solr/benchmark/gradle.lockfile
+++ b/solr/benchmark/gradle.lockfile
@@ -53,6 +53,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index 75fe8b62f2e..12502f94c16 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -166,6 +166,9 @@ dependencies {
exclude group: "io.opentelemetry", module: "opentelemetry-sdk-logs"
})
+ // JVM Runtime Telemetry metrics
+ implementation libs.opentelemetry.runtime.telemetry
+
implementation libs.apache.commons.exec
implementation libs.apache.log4j.api
diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile
index 5cb899ad1b5..199ca89b88f 100644
--- a/solr/core/gradle.lockfile
+++ b/solr/core/gradle.lockfile
@@ -58,6 +58,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=apiHelper,compileClasspath,ja
io.netty:netty-transport-native-epoll:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/core/src/java/org/apache/solr/metrics/AltBufferPoolMetricSet.java b/solr/core/src/java/org/apache/solr/metrics/AltBufferPoolMetricSet.java
deleted file mode 100644
index 50ed0646c52..00000000000
--- a/solr/core/src/java/org/apache/solr/metrics/AltBufferPoolMetricSet.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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;
-
-import com.codahale.metrics.Gauge;
-import com.codahale.metrics.Metric;
-import com.codahale.metrics.MetricSet;
-import java.lang.management.BufferPoolMXBean;
-import java.lang.management.ManagementFactory;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This is an alternative implementation of {@link com.codahale.metrics.jvm.BufferPoolMetricSet}
- * that doesn't need an MBean server.
- */
-public class AltBufferPoolMetricSet implements MetricSet {
-
- @Override
- public Map<String, Metric> getMetrics() {
- final Map<String, Metric> metrics = new HashMap<>();
- List<BufferPoolMXBean> pools = ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class);
- for (final BufferPoolMXBean pool : pools) {
- String name = pool.getName();
- metrics.put(name + ".Count", (Gauge<Long>) () -> pool.getCount());
- metrics.put(name + ".MemoryUsed", (Gauge<Long>) () -> pool.getMemoryUsed());
- metrics.put(name + ".TotalCapacity", (Gauge<Long>) () -> pool.getTotalCapacity());
- }
- return metrics;
- }
-}
diff --git a/solr/core/src/java/org/apache/solr/metrics/OperatingSystemMetricSet.java b/solr/core/src/java/org/apache/solr/metrics/OperatingSystemMetricSet.java
deleted file mode 100644
index 5024843fe4e..00000000000
--- a/solr/core/src/java/org/apache/solr/metrics/OperatingSystemMetricSet.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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;
-
-import com.codahale.metrics.Metric;
-import com.codahale.metrics.MetricSet;
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.solr.util.stats.MetricUtils;
-
-/**
- * This is an extended replacement for {@link com.codahale.metrics.jvm.FileDescriptorRatioGauge} -
- * that class uses reflection and doesn't work under Java 9. This implementation tries to retrieve
- * bean properties from known implementations of {@link java.lang.management.OperatingSystemMXBean}.
- */
-public class OperatingSystemMetricSet implements MetricSet {
-
- @Override
- public Map<String, Metric> getMetrics() {
- final Map<String, Metric> metrics = new HashMap<>();
- OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean();
- MetricUtils.addMXBeanMetrics(
- os,
- MetricUtils.OS_MXBEAN_CLASSES,
- null,
- (k, v) -> {
- if (!metrics.containsKey(k)) {
- metrics.put(k, v);
- }
- });
- return metrics;
- }
-}
diff --git a/solr/core/src/java/org/apache/solr/metrics/OtelRuntimeJvmMetrics.java b/solr/core/src/java/org/apache/solr/metrics/OtelRuntimeJvmMetrics.java
new file mode 100644
index 00000000000..1711142a447
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/metrics/OtelRuntimeJvmMetrics.java
@@ -0,0 +1,71 @@
+/*
+ * 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;
+
+import io.opentelemetry.instrumentation.runtimemetrics.java17.RuntimeMetrics;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import java.lang.invoke.MethodHandles;
+import org.apache.solr.common.util.EnvUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/** Manages JVM metrics collection using OpenTelemetry Runtime Metrics with JFR features */
+public class OtelRuntimeJvmMetrics {
+ private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+ // Main feature flag to enable/disable all JVM metrics
+ private static final String JVM_METRICS_ENABLED = "solr.metrics.jvm.enabled";
+
+ private RuntimeMetrics runtimeMetrics;
+ private boolean isInitialized = false;
+
+ public OtelRuntimeJvmMetrics initialize(
+ SolrMetricManager solrMetricManager, String registryName) {
+ if (!EnvUtils.getPropertyAsBool(JVM_METRICS_ENABLED, true)) {
+ log.info("JVM metrics collection is disabled");
+ return this;
+ }
+ this.runtimeMetrics =
+ RuntimeMetrics.builder(
+ OpenTelemetrySdk.builder()
+ .setMeterProvider(solrMetricManager.meterProvider(registryName))
+ .build())
+ // TODO: We should have this configurable to enable/disable specific JVM metrics
+ .enableAllFeatures()
+ .build();
+ isInitialized = true;
+ log.info("JVM metrics collection successfully initialized");
+ return this;
+ }
+
+ public void close() {
+ if (runtimeMetrics != null && isInitialized) {
+ try {
+ runtimeMetrics.close();
+ } catch (Exception e) {
+ log.error("Failed to close JVM metrics collection", e);
+ } finally {
+ runtimeMetrics = null;
+ isInitialized = false;
+ }
+ }
+ }
+
+ public boolean isInitialized() {
+ return isInitialized && runtimeMetrics != null;
+ }
+}
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 a950e1520fb..e2dd4f75158 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java
@@ -1080,6 +1080,7 @@ public class SolrMetricManager {
context, registry, new GaugeWrapper<>(gauge, tag), strategy, metricName, metricPath);
}
+ // NOCOMMIT: No longer need
public int unregisterGauges(String registryName, String tagSegment) {
if (tagSegment == null) {
return 0;
diff --git a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
index 6624363bf40..3097f2fcb35 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -23,11 +23,6 @@ import static org.apache.solr.servlet.SolrDispatchFilter.SOLR_INSTALL_DIR_ATTRIB
import static org.apache.solr.servlet.SolrDispatchFilter.SOLR_LOG_LEVEL;
import static org.apache.solr.servlet.SolrDispatchFilter.SOLR_LOG_MUTECONSOLE;
-import com.codahale.metrics.jvm.CachedThreadStatesGaugeSet;
-import com.codahale.metrics.jvm.ClassLoadingGaugeSet;
-import com.codahale.metrics.jvm.GarbageCollectorMetricSet;
-import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
-import com.codahale.metrics.jvm.ThreadStatesGaugeSet;
import com.google.common.annotations.VisibleForTesting;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletContextEvent;
@@ -42,7 +37,6 @@ import java.util.Arrays;
import java.util.Locale;
import java.util.Optional;
import java.util.Properties;
-import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
import javax.naming.Context;
import javax.naming.InitialContext;
@@ -57,16 +51,12 @@ import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.util.EnvUtils;
import org.apache.solr.core.CoreContainer;
-import org.apache.solr.core.MetricsConfig;
import org.apache.solr.core.NodeConfig;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrInfoBean.Group;
import org.apache.solr.core.SolrXmlConfig;
-import org.apache.solr.metrics.AltBufferPoolMetricSet;
-import org.apache.solr.metrics.MetricsMap;
-import org.apache.solr.metrics.OperatingSystemMetricSet;
+import org.apache.solr.metrics.OtelRuntimeJvmMetrics;
import org.apache.solr.metrics.SolrMetricManager;
-import org.apache.solr.metrics.SolrMetricManager.ResolutionStrategy;
import org.apache.solr.metrics.SolrMetricProducer;
import org.apache.solr.servlet.RateLimitManager.Builder;
import org.apache.solr.util.StartupLoggingUtils;
@@ -85,7 +75,7 @@ public class CoreContainerProvider implements ServletContextListener {
private Properties extraProperties;
private SolrMetricManager metricManager;
private RateLimitManager rateLimitManager;
- private String registryName;
+ private OtelRuntimeJvmMetrics otelRuntimeJvmMetrics;
/**
* Acquires an instance from the context. Never null.
@@ -152,23 +142,11 @@ public class CoreContainerProvider implements ServletContextListener {
// }
cores = null;
- try {
- if (metricManager != null) {
- try {
- metricManager.unregisterGauges(registryName, metricTag);
- } catch (NullPointerException e) {
- // okay
- } catch (Exception e) {
- log.warn("Exception closing FileCleaningTracker", e);
- } finally {
- metricManager = null;
- }
- }
- } finally {
- if (cc != null) {
- cc.shutdown();
- }
+ if (otelRuntimeJvmMetrics != null) otelRuntimeJvmMetrics.close();
+ if (cc != null) {
+ cc.shutdown();
}
+ metricManager = null;
}
private void init(ServletContext servletContext) {
@@ -217,7 +195,7 @@ public class CoreContainerProvider implements ServletContextListener {
});
coresInit = createCoreContainer(computeSolrHome(servletContext), extraProperties);
- setupJvmMetrics(coresInit, coresInit.getNodeConfig().getMetricsConfig());
+ setupJvmMetrics(coresInit);
SolrZkClient zkClient = null;
ZkController zkController = coresInit.getZkController();
@@ -397,64 +375,11 @@ public class CoreContainerProvider implements ServletContextListener {
return coreContainer;
}
- private void setupJvmMetrics(CoreContainer coresInit, MetricsConfig config) {
- metricManager = coresInit.getMetricManager();
- registryName = SolrMetricManager.getRegistryName(Group.jvm);
- final NodeConfig nodeConfig = coresInit.getConfig();
- try {
- metricManager.registerAll(
- registryName, new AltBufferPoolMetricSet(), ResolutionStrategy.IGNORE, "buffers");
- metricManager.registerAll(
- registryName, new ClassLoadingGaugeSet(), ResolutionStrategy.IGNORE, "classes");
- metricManager.registerAll(
- registryName, new OperatingSystemMetricSet(), ResolutionStrategy.IGNORE, "os");
- metricManager.registerAll(
- registryName, new GarbageCollectorMetricSet(), ResolutionStrategy.IGNORE, "gc");
- metricManager.registerAll(
- registryName, new MemoryUsageGaugeSet(), ResolutionStrategy.IGNORE, "memory");
-
- if (config.getCacheConfig() != null
- && config.getCacheConfig().threadsIntervalSeconds != null) {
- if (log.isInfoEnabled()) {
- log.info(
- "Threads metrics will be cached for {} seconds",
- config.getCacheConfig().threadsIntervalSeconds);
- }
- metricManager.registerAll(
- registryName,
- new CachedThreadStatesGaugeSet(
- config.getCacheConfig().threadsIntervalSeconds, TimeUnit.SECONDS),
- SolrMetricManager.ResolutionStrategy.IGNORE,
- "threads");
- } else {
- metricManager.registerAll(
- registryName,
- new ThreadStatesGaugeSet(),
- SolrMetricManager.ResolutionStrategy.IGNORE,
- "threads");
- }
-
- MetricsMap sysprops =
- new MetricsMap(
- map ->
- System.getProperties()
- .forEach(
- (k, v) -> {
- if (!nodeConfig.isSysPropHidden(String.valueOf(k))) {
- map.putNoEx(String.valueOf(k), v);
- }
- }));
- metricManager.registerGauge(
- null,
- registryName,
- sysprops,
- metricTag,
- ResolutionStrategy.IGNORE,
- "properties",
- "system");
- } catch (Exception e) {
- log.warn("Error registering JVM metrics", e);
- }
+ private void setupJvmMetrics(CoreContainer coresInit) {
+ this.metricManager = coresInit.getMetricManager();
+ this.otelRuntimeJvmMetrics =
+ new OtelRuntimeJvmMetrics()
+ .initialize(metricManager, SolrMetricManager.getRegistryName(Group.jvm));
}
public RateLimitManager getRateLimitManager() {
diff --git a/solr/core/src/test/org/apache/solr/metrics/JvmMetricsTest.java b/solr/core/src/test/org/apache/solr/metrics/JvmMetricsTest.java
index 014ea19e6f5..5bc20b0d09e 100644
--- a/solr/core/src/test/org/apache/solr/metrics/JvmMetricsTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/JvmMetricsTest.java
@@ -16,20 +16,20 @@
*/
package org.apache.solr.metrics;
-import com.codahale.metrics.Gauge;
-import com.codahale.metrics.Metric;
+import io.opentelemetry.exporter.prometheus.PrometheusMetricReader;
+import io.prometheus.metrics.model.snapshots.MetricSnapshots;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
-import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.solr.SolrJettyTestBase;
import org.apache.solr.core.NodeConfig;
import org.apache.solr.core.SolrXmlConfig;
import org.junit.BeforeClass;
import org.junit.Test;
-/** Test {@link OperatingSystemMetricSet} and proper JVM metrics registration. */
public class JvmMetricsTest extends SolrJettyTestBase {
static final String[] STRING_OS_METRICS = {"arch", "name", "version"};
static final String[] NUMERIC_OS_METRICS = {"availableProcessors", "systemLoadAverage"};
@@ -45,71 +45,10 @@ public class JvmMetricsTest extends SolrJettyTestBase {
@BeforeClass
public static void beforeTest() throws Exception {
+ System.setProperty("solr.metrics.jvm.enabled", "true");
createAndStartJetty(legacyExampleCollection1SolrHome());
}
- @Test
- public void testOperatingSystemMetricSet() {
- OperatingSystemMetricSet set = new OperatingSystemMetricSet();
- Map<String, Metric> metrics = set.getMetrics();
- assertTrue(metrics.size() > 0);
- for (String metric : NUMERIC_OS_METRICS) {
- Gauge<?> gauge = (Gauge<?>) metrics.get(metric);
- assertNotNull(metric, gauge);
- double value = ((Number) gauge.getValue()).doubleValue();
- // SystemLoadAverage on Windows may be -1.0
- assertTrue("unexpected value of " + metric + ": " + value, value >= 0 || value == -1.0);
- }
- for (String metric : STRING_OS_METRICS) {
- Gauge<?> gauge = (Gauge<?>) metrics.get(metric);
- assertNotNull(metric, gauge);
- String value = (String) gauge.getValue();
- assertNotNull(value);
- assertFalse(value.isEmpty());
- }
- }
-
- @Test
- public void testAltBufferPoolMetricSet() {
- AltBufferPoolMetricSet set = new AltBufferPoolMetricSet();
- Map<String, Metric> metrics = set.getMetrics();
- assertTrue(metrics.size() > 0);
- for (String name : BUFFER_METRICS) {
- assertNotNull(name, metrics.get(name));
- Object g = metrics.get(name);
- assertTrue(g instanceof Gauge);
- Object v = ((Gauge<?>) g).getValue();
- assertTrue(v instanceof Long);
- }
- }
-
- @Test
- public void testSystemProperties() {
- if (System.getProperty("solr.security.auth.basicauth.credentials") == null) {
- // make sure it's set
- System.setProperty("solr.security.auth.basicauth.credentials", "foo:bar");
- }
- SolrMetricManager metricManager = getJetty().getCoreContainer().getMetricManager();
- Map<String, Metric> metrics = metricManager.registry("solr.jvm").getMetrics();
- Metric metric = metrics.get("system.properties");
- assertNotNull(metrics.toString(), metric);
- MetricsMap map = (MetricsMap) ((SolrMetricManager.GaugeWrapper<?>) metric).getGauge();
- assertNotNull(metrics.toString(), map);
- Map<String, Object> values = map.getValue();
- System.getProperties()
- .forEach(
- (k, v) -> {
- if (NodeConfig.NodeConfigBuilder.DEFAULT_HIDDEN_SYS_PROPS.contains(k)) {
- assertNull("hidden property " + k + " present!", values.get(k));
- } else if (k == "solr.security.auth.basicauth.credentials") {
- // DEFAULT_HIDDEN_SYS_PROPS.contains doesn't match a partial pattern.
- assertNull("hidden property " + k + " present!", values.get(k));
- } else {
- assertEquals(v, values.get(String.valueOf(k)));
- }
- });
- }
-
@Test
public void testHiddenSysProps() throws Exception {
Path home = TEST_PATH();
@@ -128,29 +67,38 @@ public class JvmMetricsTest extends SolrJettyTestBase {
@Test
public void testSetupJvmMetrics() {
- SolrMetricManager metricManager = getJetty().getCoreContainer().getMetricManager();
- Map<String, Metric> metrics = metricManager.registry("solr.jvm").getMetrics();
- assertTrue(metrics.size() > 0);
- assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("buffers.")));
+ PrometheusMetricReader reader =
+ getJetty().getCoreContainer().getMetricManager().getPrometheusMetricReader("solr.jvm");
+ MetricSnapshots snapshots = reader.collect();
+ assertTrue("Should have metric snapshots", snapshots.size() > 0);
+
+ Set<String> metricNames =
+ snapshots.stream()
+ .map(metric -> metric.getMetadata().getPrometheusName())
+ .collect(Collectors.toSet());
+
assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("classes.")));
+ "Should have JVM memory metrics",
+ metricNames.stream().anyMatch(name -> name.startsWith("jvm_memory")));
+
assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("os.")));
+ "Should have JVM thread metrics",
+ metricNames.stream().anyMatch(name -> name.startsWith("jvm_thread")));
+
assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("gc.")));
+ "Should have JVM class metrics",
+ metricNames.stream().anyMatch(name -> name.startsWith("jvm_class")));
+
assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("memory.")));
+ "Should have JVM CPU metrics",
+ metricNames.stream().anyMatch(name -> name.startsWith("jvm_cpu")));
+
assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("threads.")));
+ "Should have JVM GC metrics",
+ metricNames.stream().anyMatch(name -> name.startsWith("jvm_gc")));
+
assertTrue(
- metrics.toString(),
- metrics.entrySet().stream().anyMatch(e -> e.getKey().startsWith("system.")));
+ "Should have JVM buffer metrics",
+ metricNames.stream().anyMatch(name -> name.startsWith("jvm_buffer")));
}
}
diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile
index ad7df219e1d..9f2a5c5cb62 100644
--- a/solr/cross-dc-manager/gradle.lockfile
+++ b/solr/cross-dc-manager/gradle.lockfile
@@ -70,6 +70,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile
index 0e367394f21..ddf54fa8334 100644
--- a/solr/modules/analysis-extras/gradle.lockfile
+++ b/solr/modules/analysis-extras/gradle.lockfile
@@ -55,6 +55,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=apiHelper,compileClasspath,ja
io.netty:netty-transport-native-epoll:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile
index 373d5ebb9fa..1cdd529ed37 100644
--- a/solr/modules/clustering/gradle.lockfile
+++ b/solr/modules/clustering/gradle.lockfile
@@ -53,6 +53,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/cross-dc/gradle.lockfile b/solr/modules/cross-dc/gradle.lockfile
index 631a766e08e..5388ff79f4f 100644
--- a/solr/modules/cross-dc/gradle.lockfile
+++ b/solr/modules/cross-dc/gradle.lockfile
@@ -54,6 +54,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=apiHelper,compileClasspath,ja
io.netty:netty-transport-native-epoll:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile
index 27722aff9a7..b8f5d733a27 100644
--- a/solr/modules/extraction/gradle.lockfile
+++ b/solr/modules/extraction/gradle.lockfile
@@ -81,6 +81,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile
index 1ab934dabc1..e22fe9840ac 100644
--- a/solr/modules/gcs-repository/gradle.lockfile
+++ b/solr/modules/gcs-repository/gradle.lockfile
@@ -103,6 +103,12 @@ io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,ru
io.opencensus:opencensus-api:0.31.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.opencensus:opencensus-contrib-http-util:0.31.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.opencensus:opencensus-proto:0.2.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/jwt-auth/gradle.lockfile b/solr/modules/jwt-auth/gradle.lockfile
index dd6f9dc774e..e44398aeeba 100644
--- a/solr/modules/jwt-auth/gradle.lockfile
+++ b/solr/modules/jwt-auth/gradle.lockfile
@@ -67,6 +67,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile
index 8144d8517fb..ec261f84302 100644
--- a/solr/modules/langid/gradle.lockfile
+++ b/solr/modules/langid/gradle.lockfile
@@ -54,6 +54,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/llm/gradle.lockfile b/solr/modules/llm/gradle.lockfile
index 74861b226f9..5f301fcb1d5 100644
--- a/solr/modules/llm/gradle.lockfile
+++ b/solr/modules/llm/gradle.lockfile
@@ -68,6 +68,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile
index 6fa8ed49485..1c05c0fdc00 100644
--- a/solr/modules/ltr/gradle.lockfile
+++ b/solr/modules/ltr/gradle.lockfile
@@ -53,6 +53,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile
index ca7e5eb6f9f..182700eea53 100644
--- a/solr/modules/opentelemetry/gradle.lockfile
+++ b/solr/modules/opentelemetry/gradle.lockfile
@@ -75,6 +75,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-bom:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile
index 714f2e35b96..2f0dbdb4b09 100644
--- a/solr/modules/s3-repository/gradle.lockfile
+++ b/solr/modules/s3-repository/gradle.lockfile
@@ -70,6 +70,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=apiHelper,compileClasspath,ja
io.netty:netty-transport-native-epoll:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile
index 55897192931..5ad8e1ed9af 100644
--- a/solr/modules/scripting/gradle.lockfile
+++ b/solr/modules/scripting/gradle.lockfile
@@ -53,6 +53,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile
index baf17e02dd0..f7d2ba572f6 100644
--- a/solr/modules/sql/gradle.lockfile
+++ b/solr/modules/sql/gradle.lockfile
@@ -56,6 +56,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/prometheus-exporter/gradle.lockfile b/solr/prometheus-exporter/gradle.lockfile
index 0fd347ff573..1549a84a17a 100644
--- a/solr/prometheus-exporter/gradle.lockfile
+++ b/solr/prometheus-exporter/gradle.lockfile
@@ -53,6 +53,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=compileClasspath,jarValidatio
io.netty:netty-transport-native-epoll:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,solrPlatformLibs,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/exporter/SolrExporterIntegrationTest.java b/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/exporter/SolrExporterIntegrationTest.java
index 4620a08eae1..08b9e62d144 100644
--- a/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/exporter/SolrExporterIntegrationTest.java
+++ b/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/exporter/SolrExporterIntegrationTest.java
@@ -61,16 +61,6 @@ public class SolrExporterIntegrationTest extends SolrExporterTestBase {
assertEquals(18, durationHistogram.size());
}
- @Test
- public void jvmMetrics() throws Exception {
- Map<String, Double> jvmMetrics = metricsWithName(getAllMetrics(), "solr_metrics_jvm_threads");
-
- // exact set of metrics can vary based on JVM impl (ie: windows)
- // but there should always be at least one per known thread state per node...
- assertTrue(
- jvmMetrics.toString(), (NUM_NODES * Thread.State.values().length) < jvmMetrics.size());
- }
-
@Test
public void jsonFacetMetrics() throws Exception {
Map<String, Double> facetMetrics = metricsWithName(getAllMetrics(), "solr_facets_category");
diff --git a/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java b/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
index 386b1252e04..1265314fb9e 100644
--- a/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
+++ b/solr/prometheus-exporter/src/test/org/apache/solr/prometheus/scraper/SolrCloudScraperTest.java
@@ -172,25 +172,6 @@ public class SolrCloudScraperTest extends PrometheusExporterTestBase {
}
}
- @Test
- public void metricsForEachHost() throws Exception {
- Map<String, MetricSamples> metricsByHost =
- solrCloudScraper.metricsForAllHosts(configuration.getMetricsConfiguration().get(0));
-
- List<Replica> replicas = getCollectionState().getReplicas();
- assertEquals(replicas.size(), metricsByHost.size());
-
- for (Replica replica : replicas) {
- List<Collector.MetricFamilySamples> replicaSamples =
- metricsByHost.get(replica.getBaseUrl()).asList();
- assertEquals(1, replicaSamples.size());
- assertEquals("solr_metrics_jvm_buffers", replicaSamples.get(0).name);
-
- assertEquals("cluster_id", replicaSamples.get(0).samples.get(0).labelNames.get(2));
- assertEquals("test", replicaSamples.get(0).samples.get(0).labelValues.get(2));
- }
- }
-
@Test
public void search() throws Exception {
List<Collector.MetricFamilySamples> samples =
diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile
index 64ba9349292..98f5c97cb24 100644
--- a/solr/server/gradle.lockfile
+++ b/solr/server/gradle.lockfile
@@ -52,6 +52,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=jarValidation,runtimeClasspat
io.netty:netty-transport-native-epoll:4.2.6.Final=jarValidation,runtimeClasspath,solrCore
io.netty:netty-transport-native-unix-common:4.2.6.Final=jarValidation,runtimeClasspath,solrCore
io.netty:netty-transport:4.2.6.Final=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,runtimeClasspath,solrCore
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,runtimeClasspath,solrCore
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,runtimeClasspath,solrCore
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,runtimeClasspath,solrCore
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,runtimeClasspath,solrCore
diff --git a/solr/solr-ref-guide/gradle.lockfile b/solr/solr-ref-guide/gradle.lockfile
index 633346d95ec..ea526d855d7 100644
--- a/solr/solr-ref-guide/gradle.lockfile
+++ b/solr/solr-ref-guide/gradle.lockfile
@@ -52,6 +52,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=testCompileClasspath,testRunt
io.netty:netty-transport-native-epoll:4.2.6.Final=testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=testCompileClasspath,testRuntimeClasspath
diff --git a/solr/solrj-streaming/gradle.lockfile b/solr/solrj-streaming/gradle.lockfile
index 4e558d1d9b8..51cd7f859cf 100644
--- a/solr/solrj-streaming/gradle.lockfile
+++ b/solr/solrj-streaming/gradle.lockfile
@@ -62,6 +62,12 @@ io.netty:netty-transport-native-unix-common:4.1.119.Final=permitTestUnusedDeclar
io.netty:netty-transport-native-unix-common:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.1.119.Final=permitTestUnusedDeclared
io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/solrj-zookeeper/gradle.lockfile b/solr/solrj-zookeeper/gradle.lockfile
index 1d8f75cde5a..e9d944d9340 100644
--- a/solr/solrj-zookeeper/gradle.lockfile
+++ b/solr/solrj-zookeeper/gradle.lockfile
@@ -67,6 +67,12 @@ io.netty:netty-transport-native-unix-common:4.1.119.Final=apiHelper
io.netty:netty-transport-native-unix-common:4.2.6.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.1.119.Final=apiHelper
io.netty:netty-transport:4.2.6.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile
index 904c15c7034..56efd7d9a9c 100644
--- a/solr/solrj/gradle.lockfile
+++ b/solr/solrj/gradle.lockfile
@@ -62,6 +62,12 @@ io.netty:netty-transport-native-unix-common:4.1.119.Final=permitTestUnusedDeclar
io.netty:netty-transport-native-unix-common:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.1.119.Final=permitTestUnusedDeclared
io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=jarValidation,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=jarValidation,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=jarValidation,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/solrj/src/test/org/apache/solr/common/cloud/TestNodesSysPropsCacher.java b/solr/solrj/src/test/org/apache/solr/common/cloud/TestNodesSysPropsCacher.java
index 489de336a89..fbdfe7c002b 100644
--- a/solr/solrj/src/test/org/apache/solr/common/cloud/TestNodesSysPropsCacher.java
+++ b/solr/solrj/src/test/org/apache/solr/common/cloud/TestNodesSysPropsCacher.java
@@ -28,6 +28,9 @@ import org.junit.Test;
public class TestNodesSysPropsCacher extends SolrCloudTestCase {
@Test
+ // NOCOMMIT: These metrics were system properties that must be retrieved somewhere else that isn't
+ // the /admin/metrics endpoint
+ @AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-17458")
public void testSysProps() throws Exception {
System.setProperty("metricsEnabled", "true");
MiniSolrCloudCluster cluster =
diff --git a/solr/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile
index 7c581367523..1c87cc8e6db 100644
--- a/solr/test-framework/gradle.lockfile
+++ b/solr/test-framework/gradle.lockfile
@@ -54,6 +54,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=apiHelper,compileClasspath,ja
io.netty:netty-transport-native-epoll:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport-native-unix-common:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.netty:netty-transport:4.2.6.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-common:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-context:1.53.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java b/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
index b9d31b8b604..153bacba9ac 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
@@ -83,6 +83,11 @@ public class SolrIgnoredThreadsFilter implements ThreadFilter {
return true;
}
+ // JVM JFR (Java Flight Recorder) periodic tasks thread
+ if (threadName.equals("JFR Periodic Tasks")) {
+ return true;
+ }
+
return threadName.startsWith("closeThreadPool");
}
}
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 53e1915f7c2..769c7d7bf13 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -282,6 +282,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
System.setProperty("solr.cloud.wait-for-updates-with-stale-state-pause", "500");
System.setProperty("solr.filterCache.async", String.valueOf(random().nextBoolean()));
System.setProperty("solr.http.disableCookies", Boolean.toString(rarely()));
+ System.setProperty("solr.metrics.jvm.enabled", "false");
startTrackingSearchers();
ignoreException("ignore_exception");
diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile
index 5c45b55f9c7..2358a1e548d 100644
--- a/solr/webapp/gradle.lockfile
+++ b/solr/webapp/gradle.lockfile
@@ -52,6 +52,12 @@ io.netty:netty-transport-classes-epoll:4.2.6.Final=permitUnusedDeclared,solrCore
io.netty:netty-transport-native-epoll:4.2.6.Final=permitUnusedDeclared,solrCore
io.netty:netty-transport-native-unix-common:4.2.6.Final=permitUnusedDeclared,solrCore
io.netty:netty-transport:4.2.6.Final=permitUnusedDeclared,solrCore
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.11.0-alpha=permitUnusedDeclared,solrCore
+io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.11.0=permitUnusedDeclared,solrCore
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.11.0-alpha=permitUnusedDeclared,solrCore
+io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.11.0-alpha=permitUnusedDeclared,solrCore
+io.opentelemetry.semconv:opentelemetry-semconv:1.29.0-alpha=permitUnusedDeclared,solrCore
+io.opentelemetry:opentelemetry-api-incubator:1.45.0-alpha=permitUnusedDeclared,solrCore
io.opentelemetry:opentelemetry-api:1.53.0=permitUnusedDeclared,solrCore
io.opentelemetry:opentelemetry-common:1.53.0=permitUnusedDeclared,solrCore
io.opentelemetry:opentelemetry-context:1.53.0=permitUnusedDeclared,solrCore