From e93f977a1a7c3b562867c94022ae6fe2dbff3950 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 23 Jun 2025 10:41:17 -0400 Subject: [PATCH 01/19] Create dynamic SDK Meter Providers and tests --- gradle/libs.versions.toml | 4 +- solr/CHANGES.txt | 6 +- solr/api/gradle.lockfile | 12 +- solr/benchmark/gradle.lockfile | 12 +- solr/bin/solr.cmd | 2 +- solr/core/build.gradle | 11 +- solr/core/gradle.lockfile | 12 +- .../org/apache/solr/blockcache/Metrics.java | 5 +- .../org/apache/solr/cli/RunExampleTool.java | 55 +- .../src/java/org/apache/solr/cli/SolrCLI.java | 2 +- .../org/apache/solr/core/CoreContainer.java | 57 ++- .../solr/core/HttpSolrClientProvider.java | 4 +- ...or.java => OpenTelemetryConfigurator.java} | 98 ++-- .../java/org/apache/solr/core/SolrCore.java | 14 +- .../org/apache/solr/core/ZkContainer.java | 5 +- .../apache/solr/handler/ExportHandler.java | 7 +- .../solr/handler/ReplicationHandler.java | 8 +- .../solr/handler/RequestHandlerBase.java | 70 ++- .../solr/handler/admin/CoreAdminHandler.java | 7 +- .../solr/handler/admin/MetricsHandler.java | 59 +-- .../component/HttpShardHandlerFactory.java | 7 +- .../handler/component/SearchComponent.java | 5 +- .../solr/handler/component/SearchHandler.java | 31 +- .../handler/component/SuggestComponent.java | 7 +- .../highlight/HighlightingPluginBase.java | 5 +- .../solr/jersey/RequestMetricHandling.java | 15 +- .../solr/metrics/SolrCoreMetricManager.java | 23 +- .../solr/metrics/SolrMetricManager.java | 294 +++++++++++ .../solr/metrics/SolrMetricProducer.java | 20 +- .../solr/metrics/SolrMetricsContext.java | 114 ++++- .../instruments/AttributedDoubleCounter.java} | 26 +- .../instruments/AttributedDoubleGauge.java} | 21 +- .../AttributedDoubleHistogram.java} | 22 +- .../AttributedDoubleUpDownCounter.java | 43 ++ .../instruments/AttributedLongCounter.java | 39 ++ .../instruments/AttributedLongGauge.java} | 22 +- .../instruments/AttributedLongHistogram.java | 36 ++ .../otel/instruments/AttributedLongTimer.java | 55 ++ .../AttributedLongUpDownCounter.java | 43 ++ .../instruments}/package-info.java | 7 +- .../jvm => otel}/package-info.java | 6 +- .../solr/metrics/prometheus/SolrMetric.java | 57 --- .../prometheus/SolrPrometheusFormatter.java | 225 --------- .../core/PrometheusCoreFormatterInfo.java | 33 -- .../prometheus/core/SolrCoreCacheMetric.java | 51 -- .../core/SolrCoreHandlerMetric.java | 77 --- .../core/SolrCoreHighlighterMetric.java | 49 -- .../prometheus/core/SolrCoreIndexMetric.java | 47 -- .../prometheus/core/SolrCoreMetric.java | 56 -- .../core/SolrCoreSearcherMetric.java | 64 --- .../prometheus/core/SolrCoreTlogMetric.java | 51 -- .../core/SolrPrometheusCoreFormatter.java | 70 --- .../metrics/prometheus/core/package-info.java | 22 - .../jetty/SolrJettyDispatchesMetric.java | 46 -- .../jetty/SolrJettyReqRespMetric.java | 65 --- .../jetty/SolrPrometheusJettyFormatter.java | 49 -- .../jvm/PrometheusJvmFormatterInfo.java | 30 -- .../prometheus/jvm/SolrJvmBuffersMetric.java | 56 -- .../prometheus/jvm/SolrJvmGcMetrics.java | 54 -- .../prometheus/jvm/SolrJvmMemoryMetric.java | 65 --- .../prometheus/jvm/SolrJvmOsMetric.java | 58 --- .../jvm/SolrPrometheusJvmFormatter.java | 61 --- .../node/PrometheusNodeFormatterInfo.java | 27 - .../node/SolrNodeContainerMetric.java | 57 --- .../node/SolrNodeHandlerMetric.java | 64 --- .../node/SolrPrometheusNodeFormatter.java | 104 ---- .../metrics/prometheus/node/package-info.java | 22 - .../solr/metrics/prometheus/package-info.java | 25 - .../response/PrometheusResponseWriter.java | 191 +++---- .../org/apache/solr/search/CaffeineCache.java | 5 +- .../org/apache/solr/search/QParserPlugin.java | 4 +- .../solr/search/SolrFieldCacheBean.java | 5 +- .../apache/solr/search/SolrIndexSearcher.java | 13 +- .../solr/security/AuditLoggerPlugin.java | 5 +- .../solr/security/AuthenticationPlugin.java | 5 +- .../apache/solr/security/MultiAuthPlugin.java | 8 +- .../security/MultiDestinationAuditLogger.java | 9 +- .../solr/update/DirectUpdateHandler2.java | 5 +- .../java/org/apache/solr/update/PeerSync.java | 5 +- .../solr/update/PeerSyncWithLeader.java | 5 +- .../org/apache/solr/update/UpdateLog.java | 5 +- .../solr/update/UpdateShardHandler.java | 11 +- .../InstrumentedHttpListenerFactory.java | 5 +- .../InstrumentedHttpRequestExecutor.java | 4 +- ...tedPoolingHttpClientConnectionManager.java | 5 +- .../apache/solr/util/stats/MetricUtils.java | 9 + .../solr/util/tracing/SimplePropagator.java | 17 - .../org/apache/solr/SolrInfoBeanTest.java | 4 +- .../solr/blockcache/BufferStoreTest.java | 4 +- .../solr/cli/TestSolrCLIRunExample.java | 137 +++-- .../solr/core/TestTracerConfigurator.java | 6 +- .../solr/handler/RequestHandlerBaseTest.java | 69 ++- .../solr/handler/admin/MBeansHandlerTest.java | 5 +- .../handler/admin/MetricsHandlerTest.java | 477 +----------------- .../solr/metrics/SolrCoreMetricTest.java | 82 --- .../solr/metrics/SolrMetricManagerTest.java | 413 +++++++++++++++ .../solr/metrics/SolrMetricTestUtils.java | 4 +- .../metrics/SolrPrometheusFormatterTest.java | 203 -------- .../TestPrometheusResponseWriter.java | 292 ++++++----- .../apache/solr/search/TestCaffeineCache.java | 7 +- .../apache/solr/search/TestSolrCachePerf.java | 5 +- .../solr/search/TestSolrFieldCacheBean.java | 5 +- .../org/apache/solr/search/TestThinCache.java | 7 +- .../org/apache/solr/search/ThinCache.java | 4 +- ...estSimplePropagatorDistributedTracing.java | 3 + solr/cross-dc-manager/gradle.lockfile | 12 +- .../opentelemetry-api-1.46.0.jar.sha1 | 1 - .../opentelemetry-api-1.50.0.jar.sha1 | 1 + ...emetry-api-incubator-1.46.0-alpha.jar.sha1 | 1 - .../opentelemetry-context-1.46.0.jar.sha1 | 1 - .../opentelemetry-context-1.50.0.jar.sha1 | 1 + ...ntelemetry-exporter-common-1.46.0.jar.sha1 | 1 - ...ntelemetry-exporter-common-1.50.0.jar.sha1 | 1 + ...pentelemetry-exporter-otlp-1.46.0.jar.sha1 | 1 - ...pentelemetry-exporter-otlp-1.50.0.jar.sha1 | 1 + ...metry-exporter-otlp-common-1.46.0.jar.sha1 | 1 - ...metry-exporter-otlp-common-1.50.0.jar.sha1 | 1 + ...-exporter-prometheus-1.50.0-alpha.jar.sha1 | 1 + ...try-exporter-sender-okhttp-1.46.0.jar.sha1 | 1 - ...try-exporter-sender-okhttp-1.50.0.jar.sha1 | 1 + .../opentelemetry-sdk-1.46.0.jar.sha1 | 1 - .../opentelemetry-sdk-1.50.0.jar.sha1 | 1 + .../opentelemetry-sdk-common-1.46.0.jar.sha1 | 1 - .../opentelemetry-sdk-common-1.50.0.jar.sha1 | 1 + ...dk-extension-autoconfigure-1.46.0.jar.sha1 | 1 - ...dk-extension-autoconfigure-1.50.0.jar.sha1 | 1 + ...xtension-autoconfigure-spi-1.46.0.jar.sha1 | 1 - ...xtension-autoconfigure-spi-1.50.0.jar.sha1 | 1 + .../opentelemetry-sdk-logs-1.46.0.jar.sha1 | 1 - .../opentelemetry-sdk-logs-1.50.0.jar.sha1 | 1 + .../opentelemetry-sdk-metrics-1.46.0.jar.sha1 | 1 - .../opentelemetry-sdk-metrics-1.50.0.jar.sha1 | 1 + .../opentelemetry-sdk-testing-1.46.0.jar.sha1 | 1 - .../opentelemetry-sdk-testing-1.50.0.jar.sha1 | 1 + .../opentelemetry-sdk-trace-1.46.0.jar.sha1 | 1 - .../opentelemetry-sdk-trace-1.50.0.jar.sha1 | 1 + solr/modules/analysis-extras/gradle.lockfile | 12 +- solr/modules/clustering/gradle.lockfile | 12 +- solr/modules/cross-dc/gradle.lockfile | 12 +- .../MirroringCollectionsHandlerTest.java | 3 + solr/modules/extraction/gradle.lockfile | 12 +- solr/modules/gcs-repository/gradle.lockfile | 12 +- solr/modules/jwt-auth/gradle.lockfile | 12 +- solr/modules/langid/gradle.lockfile | 12 +- solr/modules/llm/gradle.lockfile | 12 +- solr/modules/ltr/gradle.lockfile | 12 +- solr/modules/opentelemetry/gradle.lockfile | 32 +- .../opentelemetry/OtelTracerConfigurator.java | 14 +- .../CustomTestOtelTracerConfigurator.java | 2 - solr/modules/s3-repository/gradle.lockfile | 12 +- solr/modules/scripting/gradle.lockfile | 12 +- solr/modules/sql/gradle.lockfile | 12 +- solr/packaging/test/test_example.bats | 41 ++ solr/prometheus-exporter/gradle.lockfile | 12 +- solr/server/gradle.lockfile | 12 +- solr/solr-ref-guide/gradle.lockfile | 12 +- solr/solrj-streaming/gradle.lockfile | 12 +- solr/solrj-zookeeper/gradle.lockfile | 12 +- solr/solrj/gradle.lockfile | 12 +- solr/test-framework/gradle.lockfile | 12 +- .../java/org/apache/solr/SolrTestCaseJ4.java | 3 + .../solr/cloud/MiniSolrCloudCluster.java | 8 +- .../apache/solr/cloud/SolrCloudTestCase.java | 1 - .../MockQuerySenderListenerReqHandler.java | 6 +- solr/webapp/gradle.lockfile | 12 +- 165 files changed, 2302 insertions(+), 3009 deletions(-) rename solr/core/src/java/org/apache/solr/core/{TracerConfigurator.java => OpenTelemetryConfigurator.java} (63%) rename solr/core/src/java/org/apache/solr/metrics/{prometheus/jetty/SolrJettyMetric.java => otel/instruments/AttributedDoubleCounter.java} (60%) rename solr/core/src/java/org/apache/solr/metrics/{prometheus/jvm/SolrJvmMetric.java => otel/instruments/AttributedDoubleGauge.java} (63%) rename solr/core/src/java/org/apache/solr/metrics/{prometheus/node/SolrNodeMetric.java => otel/instruments/AttributedDoubleHistogram.java} (61%) create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleUpDownCounter.java create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongCounter.java rename solr/core/src/java/org/apache/solr/metrics/{prometheus/SolrNoOpMetric.java => otel/instruments/AttributedLongGauge.java} (64%) create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongHistogram.java create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongTimer.java create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongUpDownCounter.java rename solr/core/src/java/org/apache/solr/metrics/{prometheus/jetty => otel/instruments}/package-info.java (74%) rename solr/core/src/java/org/apache/solr/metrics/{prometheus/jvm => otel}/package-info.java (79%) delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/SolrMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusFormatter.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreCacheMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHandlerMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHighlighterMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreIndexMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreSearcherMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreTlogMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrPrometheusCoreFormatter.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/core/package-info.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyDispatchesMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyReqRespMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrPrometheusJettyFormatter.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/PrometheusJvmFormatterInfo.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmBuffersMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmGcMetrics.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMemoryMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmOsMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrPrometheusJvmFormatter.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/node/PrometheusNodeFormatterInfo.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeContainerMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeHandlerMetric.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrPrometheusNodeFormatter.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/node/package-info.java delete mode 100644 solr/core/src/java/org/apache/solr/metrics/prometheus/package-info.java delete mode 100644 solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricTest.java delete mode 100644 solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java delete mode 100644 solr/licenses/opentelemetry-api-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-api-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-api-incubator-1.46.0-alpha.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-context-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-context-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-common-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-otlp-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-otlp-common-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-sender-okhttp-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-common-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-logs-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-metrics-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-testing-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-trace-1.46.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 create mode 100644 solr/packaging/test/test_example.bats diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c0d4cb7239..a7f22d05ef1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -170,7 +170,8 @@ nodegradle-node = "7.0.1" nodejs = "16.20.2" openapi = "7.6.0" openjdk-jmh = "1.37" -opentelemetry = "1.46.0" +opentelemetry = "1.50.0" +opentelemetry-prometheus = "1.50.0-alpha" osgi-annotation = "8.1.0" oshai-logging = "7.0.3" # @keep for version alignment @@ -471,6 +472,7 @@ opentelemetry-api = { module = "io.opentelemetry:opentelemetry-api", version.ref opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", version.ref = "opentelemetry" } opentelemetry-context = { module = "io.opentelemetry:opentelemetry-context", version.ref = "opentelemetry" } opentelemetry-exporter-otlp = { module = "io.opentelemetry:opentelemetry-exporter-otlp", version.ref = "opentelemetry" } +opentelemetry-exporter-prometheus = { module = "io.opentelemetry:opentelemetry-exporter-prometheus", version.ref = "opentelemetry-prometheus" } opentelemetry-sdk = { module = "io.opentelemetry:opentelemetry-sdk", version.ref = "opentelemetry" } opentelemetry-sdkextension-autoconfigure = { module = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", version.ref = "opentelemetry" } opentelemetry-sdktesting = { module = "io.opentelemetry:opentelemetry-sdk-testing", version.ref = "opentelemetry" } diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 1f8ed585ce5..7cf56b84a49 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -56,7 +56,8 @@ Optimizations Bug Fixes --------------------- -(No changes) +* SOLR-17772: Tests for CLI examples were failing on Windows due to a legacy bug uncovered by fix in SOLR-7962. + Additionally achieves simplification of CLI tests (Rahul Goswami via Eric Pugh) Deprecation Removals ---------------------- @@ -293,6 +294,9 @@ Bug Fixes * SOLR-17758: The NumFieldLimitingUpdateRequestProcessor's "warnOnly" mode has been fixed, and now processes documents even when the limit has been exceeded. (Jason Gerlowski, Rahul Goswami) +* SOLR-7962: Passing additional arguments to solr.cmd using "--jvm-opts" (formerly "-a") in conjunction with "-e" (examples like 'techproducts') + wouldn't reflect on Windows (Rahul Goswami via Eric Pugh) + Dependency Upgrades --------------------- * SOLR-17471: Upgrade Lucene to 9.12.1. (Pierre Salagnac, Christine Poerschke) diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile index f6def777ba9..38c58e90571 100644 --- a/solr/api/gradle.lockfile +++ b/solr/api/gradle.lockfile @@ -69,8 +69,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=jarValidation,testCompileCl io.netty:netty-transport-native-epoll:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile index 9d2ee9ecd3f..62e08084f88 100644 --- a/solr/benchmark/gradle.lockfile +++ b/solr/benchmark/gradle.lockfile @@ -55,8 +55,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,testRuntimeClasspath diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd index bb2b3917a0e..817baa9d072 100755 --- a/solr/bin/solr.cmd +++ b/solr/bin/solr.cmd @@ -752,7 +752,7 @@ IF NOT "%EXAMPLE%"=="" ( -Dlog4j.configurationFile="file:///%DEFAULT_SERVER_DIR%\resources\log4j2-console.xml" ^ -Dsolr.install.symDir="%SOLR_TIP%" ^ -classpath "%DEFAULT_SERVER_DIR%\solr-webapp\webapp\WEB-INF\lib\*;%DEFAULT_SERVER_DIR%\lib\ext\*" ^ - org.apache.solr.cli.SolrCLI run_example --script "%SDIR%\solr.cmd" -e %EXAMPLE% --server-dir "%SOLR_SERVER_DIR%" ^ + org.apache.solr.cli.SolrCLI run_example --script "%SDIR%\solr.cmd" -e %EXAMPLE% --server-dir "%SOLR_SERVER_DIR%" --jvm-opts "%SOLR_ADDL_ARGS%" ^ --url-scheme !SOLR_URL_SCHEME! !PASS_TO_RUN_EXAMPLE! REM End of run_example diff --git a/solr/core/build.gradle b/solr/core/build.gradle index f6e3c3114a5..14119619820 100644 --- a/solr/core/build.gradle +++ b/solr/core/build.gradle @@ -154,9 +154,18 @@ dependencies { implementation libs.tdunning.tdigest // Distributed Tracing - api libs.opentelemetry.api // Tracer is exposed on some methods + api libs.opentelemetry.api implementation libs.opentelemetry.context + implementation(libs.opentelemetry.exporter.prometheus, { + exclude group: "io.prometheus", module: "prometheus-metrics-exporter-httpserver" + exclude group: "io.prometheus", module: "prometheus-metrics-model" + }) + + implementation(libs.opentelemetry.sdk, { + exclude group: "io.opentelemetry", module: "opentelemetry-sdk-logs" + }) + implementation libs.apache.commons.exec implementation libs.apache.log4j.api diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile index ebf566d7c7f..66793066e4b 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -63,8 +63,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +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-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-metrics:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,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-exposition-formats:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath diff --git a/solr/core/src/java/org/apache/solr/blockcache/Metrics.java b/solr/core/src/java/org/apache/solr/blockcache/Metrics.java index d7e13b9132f..dcdb4550d8c 100644 --- a/solr/core/src/java/org/apache/solr/blockcache/Metrics.java +++ b/solr/core/src/java/org/apache/solr/blockcache/Metrics.java @@ -16,6 +16,7 @@ */ package org.apache.solr.blockcache; +import io.opentelemetry.api.common.Attributes; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; @@ -54,8 +55,10 @@ public class Metrics extends SolrCacheBase implements SolrInfoBean { private SolrMetricsContext solrMetricsContext; private long previous = System.nanoTime(); + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); metricsMap = new MetricsMap( diff --git a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java index 3d3c93a9361..06547d4eb19 100644 --- a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java +++ b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java @@ -230,17 +230,15 @@ public void runImpl(CommandLine cli) throws Exception { throw new IllegalArgumentException( "Value of --script option is invalid! " + script + " not found"); } else { - Path scriptFile = serverDir.getParent().resolve("bin").resolve("solr"); + Path scriptFile = + serverDir.getParent().resolve("bin").resolve(CLIUtils.isWindows() ? "solr.cmd" : "solr"); if (Files.isRegularFile(scriptFile)) { script = scriptFile.toAbsolutePath().toString(); } else { - scriptFile = serverDir.getParent().resolve("bin").resolve("solr.cmd"); - if (Files.isRegularFile(scriptFile)) { - script = scriptFile.toAbsolutePath().toString(); - } else { - throw new IllegalArgumentException( - "Cannot locate the bin/solr script! Please pass --script to this application."); - } + throw new IllegalArgumentException( + "Cannot locate the bin/" + + scriptFile.getFileName().toString() + + " script! Please pass --script to this application."); } } @@ -688,7 +686,8 @@ protected Map startSolr( String verboseArg = isVerbose() ? "--verbose" : ""; String jvmOpts = cli.getOptionValue(JVM_OPTS_OPTION); - String jvmOptsArg = (jvmOpts != null) ? " --jvm-opts \"" + jvmOpts + "\"" : ""; + String jvmOptsArg = + (jvmOpts != null && !jvmOpts.isEmpty()) ? " --jvm-opts \"" + jvmOpts + "\"" : ""; Path cwd = Path.of(System.getProperty("user.dir")); Path binDir = Path.of(script).getParent(); @@ -708,10 +707,10 @@ protected Map startSolr( ? "-Dsolr.modules=clustering,extraction,langid,ltr,scripting -Dsolr.ltr.enabled=true -Dsolr.clustering.enabled=true" : ""; - String startCmd = + String startCmdStr = String.format( Locale.ROOT, - "\"%s\" start %s -p %d --solr-home \"%s\" --server-dir \"%s\" %s %s %s %s %s %s %s %s", + "\"%s\" start %s -p %d --solr-home \"%s\" --server-dir \"%s\" %s %s %s %s %s %s %s", callScript, cloudModeArg, port, @@ -723,12 +722,11 @@ protected Map startSolr( forceArg, verboseArg, extraArgs, - jvmOptsArg, syspropArg); - startCmd = startCmd.replaceAll("\\s+", " ").trim(); // for pretty printing + startCmdStr = startCmdStr.replaceAll("\\s+", " ").trim(); // for pretty printing echo("\nStarting up Solr on port " + port + " using command:"); - echo(startCmd + "\n"); + echo(startCmdStr + jvmOptsArg + "\n"); String solrUrl = String.format( @@ -757,8 +755,21 @@ protected Map startSolr( } } DefaultExecuteResultHandler handler = new DefaultExecuteResultHandler(); - executor.execute(org.apache.commons.exec.CommandLine.parse(startCmd), startEnv, handler); - + org.apache.commons.exec.CommandLine startCmd = + org.apache.commons.exec.CommandLine.parse(startCmdStr); + + if (!jvmOptsArg.isEmpty()) { + startCmd.addArgument("--jvm-opts"); + + /* CommandLine.parse() tends to strip off the quotes by default before sending to cmd.exe. + This may cause cmd to break up the argument value on certain characters in unintended ways + thereby passing incorrect value to start.cmd + (eg: for "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:18983", it + breaks apart the value at "-agentlib:jdwp" passing incorrect args to start.cmd ). + The 'false' here tells Exec: “don’t touch my quotes—this is one atomic argument” */ + startCmd.addArgument("\"" + jvmOpts + "\"", false); + } + executor.execute(startCmd, startEnv, handler); // wait for execution. try { handler.waitFor(3000); @@ -767,21 +778,25 @@ protected Map startSolr( Thread.interrupted(); } if (handler.hasResult() && handler.getExitValue() != 0) { + startCmdStr += jvmOptsArg; throw new Exception( "Failed to start Solr using command: " - + startCmd + + startCmdStr + " Exception : " + handler.getException()); } } else { + // Unlike Windows, special handling of jvmOpts is not required on linux. We can simply + // concatenate to form the complete command + startCmdStr += jvmOptsArg; try { - code = executor.execute(org.apache.commons.exec.CommandLine.parse(startCmd)); + code = executor.execute(org.apache.commons.exec.CommandLine.parse(startCmdStr)); } catch (ExecuteException e) { throw new Exception( - "Failed to start Solr using command: " + startCmd + " Exception : " + e); + "Failed to start Solr using command: " + startCmdStr + " Exception : " + e); } + if (code != 0) throw new Exception("Failed to start Solr using command: " + startCmdStr); } - if (code != 0) throw new Exception("Failed to start Solr using command: " + startCmd); return getNodeStatus( solrUrl, cli.getOptionValue(CommonCLIOptions.CREDENTIALS_OPTION), maxWaitSecs); diff --git a/solr/core/src/java/org/apache/solr/cli/SolrCLI.java b/solr/core/src/java/org/apache/solr/cli/SolrCLI.java index 0b8648bbf22..e6a16b3a6e9 100755 --- a/solr/core/src/java/org/apache/solr/cli/SolrCLI.java +++ b/solr/core/src/java/org/apache/solr/cli/SolrCLI.java @@ -124,7 +124,7 @@ public static CommandLine parseCmdLine(Tool tool, String[] args) { List dashDList = new ArrayList<>(); for (int a = 1; a < args.length; a++) { String arg = args[a]; - if (arg.startsWith("-D")) { + if (!args[a - 1].equals("--jvm-opts") && arg.startsWith("-D")) { dashDList.add(arg); } else { toolArgList.add(arg); 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 35881ec9121..60ed6155d7c 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -31,6 +31,7 @@ import com.github.benmanes.caffeine.cache.Interner; import com.google.common.annotations.VisibleForTesting; +import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.trace.Tracer; import jakarta.inject.Singleton; import java.io.IOException; @@ -162,6 +163,7 @@ import org.apache.solr.util.OrderedExecutor; import org.apache.solr.util.StartupLoggingUtils; import org.apache.solr.util.stats.MetricUtils; +import org.apache.solr.util.tracing.TraceUtils; import org.apache.zookeeper.KeeperException; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ApplicationHandler; @@ -423,6 +425,10 @@ public CoreContainer(NodeConfig config, CoresLocator locator, boolean asyncSolrC this.solrHome = config.getSolrHome(); this.solrCores = SolrCores.newSolrCores(this); this.nodeKeyPair = new SolrNodeKeyPair(cfg.getCloudConfig()); + OpenTelemetryConfigurator.initializeOpenTelemetrySdk(cfg, loader); + this.metricManager = new SolrMetricManager(loader, cfg.getMetricsConfig()); + this.tracer = TraceUtils.getGlobalTracer(); + containerHandlers.put(PublicKeyHandler.PATH, new PublicKeyHandler(nodeKeyPair)); if (null != this.cfg.getBooleanQueryMaxClauseCount()) { IndexSearcher.setMaxClauseCount(this.cfg.getBooleanQueryMaxClauseCount()); @@ -531,7 +537,9 @@ private void initializeAuditloggerPlugin(Map auditConf) { newVersion, getResourceLoader().newInstance(klas, AuditLoggerPlugin.class)); newAuditloggerPlugin.plugin.init(auditConf); - newAuditloggerPlugin.plugin.initializeMetrics(solrMetricsContext, "/auditlogging"); + // TODO SOLR-17458: Add Otel + newAuditloggerPlugin.plugin.initializeMetrics( + solrMetricsContext, Attributes.empty(), "/auditlogging"); } else { log.debug("Security conf doesn't exist. Skipping setup for audit logging module."); } @@ -596,7 +604,9 @@ private synchronized void initializeAuthenticationPlugin( if (authenticationPlugin != null) { authenticationPlugin.plugin.init(authenticationConfig); setupHttpClientForAuthPlugin(authenticationPlugin.plugin); - authenticationPlugin.plugin.initializeMetrics(solrMetricsContext, "/authentication"); + // TODO SOLR-17458: Add Otel + authenticationPlugin.plugin.initializeMetrics( + solrMetricsContext, Attributes.empty(), "/authentication"); } this.authenticationPlugin = authenticationPlugin; try { @@ -833,12 +843,11 @@ private void loadInternal() { containerPluginsRegistry.registerListener( clusterEventProducerFactory.getPluginRegistryListener()); - metricManager = new SolrMetricManager(loader, cfg.getMetricsConfig()); - String registryName = SolrMetricManager.getRegistryName(SolrInfoBean.Group.node); - solrMetricsContext = new SolrMetricsContext(metricManager, registryName, metricTag); - - tracer = TracerConfigurator.loadTracer(loader, cfg.getTracerConfiguratorPluginInfo()); + solrMetricsContext = + new SolrMetricsContext( + metricManager, SolrMetricManager.getRegistryName(SolrInfoBean.Group.node), metricTag); + // NOCOMMIT: Do we need this for OTEL or is this specific for reporters? coreContainerWorkExecutor = MetricUtils.instrumentedExecutorService( coreContainerWorkExecutor, @@ -852,13 +861,16 @@ private void loadInternal() { shardHandlerFactory = ShardHandlerFactory.newInstance(cfg.getShardHandlerFactoryPluginInfo(), loader); if (shardHandlerFactory instanceof SolrMetricProducer metricProducer) { - metricProducer.initializeMetrics(solrMetricsContext, "httpShardHandler"); + // TODO SOLR-17458: Add Otel + metricProducer.initializeMetrics(solrMetricsContext, Attributes.empty(), "httpShardHandler"); } updateShardHandler = new UpdateShardHandler(cfg.getUpdateShardHandlerConfig()); solrClientProvider = new HttpSolrClientProvider(cfg.getUpdateShardHandlerConfig(), solrMetricsContext); - updateShardHandler.initializeMetrics(solrMetricsContext, "updateShardHandler"); + // TODO SOLR-17458: Add Otel + updateShardHandler.initializeMetrics( + solrMetricsContext, Attributes.empty(), "updateShardHandler"); solrClientCache = new SolrClientCache(solrClientProvider.getSolrClient()); Map cachesConfig = cfg.getCachesConfig(); @@ -869,7 +881,8 @@ private void loadInternal() { for (Map.Entry e : cachesConfig.entrySet()) { SolrCache c = e.getValue().newInstance(); String cacheName = e.getKey(); - c.initializeMetrics(solrMetricsContext, "nodeLevelCache/" + cacheName); + // TODO SOLR-17458: Add Otel + c.initializeMetrics(solrMetricsContext, Attributes.empty(), "nodeLevelCache/" + cacheName); m.put(cacheName, c); } this.caches = Collections.unmodifiableMap(m); @@ -883,13 +896,18 @@ private void loadInternal() { if (isZooKeeperAware()) { solrClientCache.setDefaultZKHost(getZkController().getZkServerAddress()); // initialize ZkClient metrics - zkSys.getZkMetricsProducer().initializeMetrics(solrMetricsContext, "zkClient"); + // TODO SOLR-17458: Add Otel + zkSys + .getZkMetricsProducer() + .initializeMetrics(solrMetricsContext, Attributes.empty(), "zkClient"); pkiAuthenticationSecurityBuilder = new PKIAuthenticationPlugin( this, zkSys.getZkController().getNodeName(), (PublicKeyHandler) containerHandlers.get(PublicKeyHandler.PATH)); - pkiAuthenticationSecurityBuilder.initializeMetrics(solrMetricsContext, "/authentication/pki"); + // TODO SOLR-17458: Add Otel + pkiAuthenticationSecurityBuilder.initializeMetrics( + solrMetricsContext, Attributes.empty(), "/authentication/pki"); fileStore = new DistribFileStore(this); registerV2ApiIfEnabled(ClusterFileStore.class); @@ -966,10 +984,12 @@ private void loadInternal() { metricsHandler = new MetricsHandler(this); containerHandlers.put(METRICS_PATH, metricsHandler); - metricsHandler.initializeMetrics(solrMetricsContext, METRICS_PATH); + // TODO SOLR-17458: Add Otel + metricsHandler.initializeMetrics(solrMetricsContext, Attributes.empty(), METRICS_PATH); containerHandlers.put(AUTHZ_PATH, securityConfHandler); - securityConfHandler.initializeMetrics(solrMetricsContext, AUTHZ_PATH); + // TODO SOLR-17458: Add Otel + securityConfHandler.initializeMetrics(solrMetricsContext, Attributes.empty(), AUTHZ_PATH); containerHandlers.put(AUTHC_PATH, securityConfHandler); PluginInfo[] metricReporters = cfg.getMetricsConfig().getMetricReporters(); @@ -1091,7 +1111,8 @@ private void loadInternal() { "version"); SolrFieldCacheBean fieldCacheBean = new SolrFieldCacheBean(); - fieldCacheBean.initializeMetrics(solrMetricsContext, null); + // TODO SOLR-17458: Otel migration + fieldCacheBean.initializeMetrics(solrMetricsContext, Attributes.empty(), ""); if (isZooKeeperAware()) { metricManager.loadClusterReporters(metricReporters, this); @@ -2259,7 +2280,9 @@ private void unloadWithoutCoreOp( } // delete metrics specific to this core + // NOCOMMIT: Remove this metricManager.removeRegistry(core.getCoreMetricManager().getRegistryName()); + metricManager.closeMeterProvider(core.getCoreMetricManager().getRegistryName()); if (zkSys.getZkController() != null) { // cancel recovery in cloud mode @@ -2427,7 +2450,9 @@ protected T createHandler(String path, String handlerClass, Class clazz) containerHandlers.put(path, (SolrRequestHandler) handler); } if (handler instanceof SolrMetricProducer) { - ((SolrMetricProducer) handler).initializeMetrics(solrMetricsContext, path); + ((SolrMetricProducer) handler) + // TODO SOLR-17458: Add Otel + .initializeMetrics(solrMetricsContext, Attributes.empty(), path); } return handler; } diff --git a/solr/core/src/java/org/apache/solr/core/HttpSolrClientProvider.java b/solr/core/src/java/org/apache/solr/core/HttpSolrClientProvider.java index 2bf25a896f6..68207965e48 100644 --- a/solr/core/src/java/org/apache/solr/core/HttpSolrClientProvider.java +++ b/solr/core/src/java/org/apache/solr/core/HttpSolrClientProvider.java @@ -16,6 +16,7 @@ */ package org.apache.solr.core; +import io.opentelemetry.api.common.Attributes; import java.util.List; import java.util.concurrent.TimeUnit; import org.apache.solr.client.solrj.impl.Http2SolrClient; @@ -68,7 +69,8 @@ private void initializeMetrics(SolrMetricsContext parentContext) { var solrMetricsContext = parentContext.getChildContext(this); String expandedScope = SolrMetricManager.mkName(METRIC_SCOPE_NAME, SolrInfoBean.Category.HTTP.name()); - trackHttpSolrMetrics.initializeMetrics(solrMetricsContext, expandedScope); + // TODO SOLR-17458: Add Otel + trackHttpSolrMetrics.initializeMetrics(solrMetricsContext, Attributes.empty(), expandedScope); } Http2SolrClient getSolrClient() { diff --git a/solr/core/src/java/org/apache/solr/core/TracerConfigurator.java b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java similarity index 63% rename from solr/core/src/java/org/apache/solr/core/TracerConfigurator.java rename to solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java index bf4c13f7198..0b5f156f48f 100644 --- a/solr/core/src/java/org/apache/solr/core/TracerConfigurator.java +++ b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java @@ -17,9 +17,14 @@ package org.apache.solr.core; +import com.google.common.annotations.VisibleForTesting; +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; +import io.opentelemetry.context.propagation.ContextPropagators; +import io.opentelemetry.sdk.OpenTelemetrySdk; import java.lang.invoke.MethodHandles; import java.util.Locale; import java.util.Map; @@ -30,12 +35,11 @@ import org.apache.solr.common.util.NamedList; import org.apache.solr.util.plugin.NamedListInitializedPlugin; import org.apache.solr.util.tracing.SimplePropagator; -import org.apache.solr.util.tracing.TraceUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Produces a {@link Tracer} from configuration. */ -public abstract class TracerConfigurator implements NamedListInitializedPlugin { +/** Configures and loads/sets {@link GlobalOpenTelemetry} from a {@link OpenTelemetrySdk}. */ +public abstract class OpenTelemetryConfigurator implements NamedListInitializedPlugin { public static final boolean TRACE_ID_GEN_ENABLED = Boolean.parseBoolean(EnvUtils.getProperty("solr.alwaysOnTraceId", "true")); @@ -46,26 +50,68 @@ public abstract class TracerConfigurator implements NamedListInitializedPlugin { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - public static Tracer loadTracer(SolrResourceLoader loader, PluginInfo info) { + private static volatile boolean loaded = false; + + /** + * Initializes the {@link io.opentelemetry.api.GlobalOpenTelemetry} instance by configuring the + * {@link io.opentelemetry.sdk.OpenTelemetrySdk} through custom plugin, auto-configure or default + * SDK. + */ + public static synchronized void initializeOpenTelemetrySdk( + NodeConfig cfg, SolrResourceLoader loader) { + PluginInfo info = (cfg != null) ? cfg.getTracerConfiguratorPluginInfo() : null; + if (info != null && info.isEnabled()) { - TracerConfigurator configurator = - loader.newInstance(info.className, TracerConfigurator.class); - configurator.init(info.initArgs); - ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); - return configurator.getTracer(); + OpenTelemetryConfigurator.configureCustomOpenTelemetrySdk( + loader, cfg.getTracerConfiguratorPluginInfo()); + } else if (OpenTelemetryConfigurator.shouldAutoConfigOTEL()) { + OpenTelemetryConfigurator.autoConfigureOpenTelemetrySdk(loader); + } else { + OpenTelemetryConfigurator.configureOpenTelemetrySdk(); } - if (shouldAutoConfigOTEL()) { - return autoConfigOTEL(loader); - } - if (TRACE_ID_GEN_ENABLED) { + } + + private static void configureOpenTelemetrySdk() { + if (loaded) return; + + if (TRACE_ID_GEN_ENABLED) ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); + + OpenTelemetry otel = + OpenTelemetry.propagating(ContextPropagators.create(SimplePropagator.getInstance())); + GlobalOpenTelemetry.set(otel); + loaded = true; + } + + private static void autoConfigureOpenTelemetrySdk(SolrResourceLoader loader) { + if (loaded) return; + try { + OpenTelemetryConfigurator configurator = + loader.newInstance(DEFAULT_CLASS_NAME, OpenTelemetryConfigurator.class); + configurator.init(new NamedList<>()); ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); - return SimplePropagator.load(); + loaded = true; + } catch (SolrException e) { + log.error( + "Unable to auto-config OpenTelemetry with class {}. Make sure you have enabled the 'opentelemetry' module", + DEFAULT_CLASS_NAME, + e); } - return TraceUtils.getGlobalTracer(); + } + + private static void configureCustomOpenTelemetrySdk(SolrResourceLoader loader, PluginInfo info) { + if (loaded) return; + + OpenTelemetryConfigurator configurator = + loader.newInstance(info.className, OpenTelemetryConfigurator.class); + configurator.init(info.initArgs); + ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); + loaded = true; } protected abstract Tracer getTracer(); + protected abstract OpenTelemetrySdk getOpenTelemetrySdk(); + private static class ContextThreadLocalProvider implements ExecutorUtil.InheritableThreadLocalProvider { @@ -88,22 +134,6 @@ public void clean(AtomicReference ctx) { } } - private static Tracer autoConfigOTEL(SolrResourceLoader loader) { - try { - TracerConfigurator configurator = - loader.newInstance(DEFAULT_CLASS_NAME, TracerConfigurator.class); - configurator.init(new NamedList<>()); - ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); - return configurator.getTracer(); - } catch (SolrException e) { - log.error( - "Unable to auto-config OpenTelemetry with class {}. Make sure you have enabled the 'opentelemetry' module", - DEFAULT_CLASS_NAME, - e); - } - return TraceUtils.getGlobalTracer(); - } - /** * Best effort way to determine if we should attempt to init OTEL from system properties. * @@ -142,4 +172,10 @@ protected static String getConfig(String envName, Map env) { protected static String envNameToSyspropName(String envName) { return envName.toLowerCase(Locale.ROOT).replace("_", "."); } + + @VisibleForTesting + public static void resetForTest() { + loaded = false; + GlobalOpenTelemetry.resetForTest(); + } } diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java index b8ad0c5c18f..a429bc2e7a3 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCore.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java @@ -21,6 +21,7 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.Attributes; import java.io.Closeable; import java.io.FileNotFoundException; import java.io.IOException; @@ -1104,7 +1105,8 @@ protected SolrCore( setLatestSchema(schema); // initialize core metrics - initializeMetrics(solrMetricsContext, null); + // TODO SOLR-17458: Add Otel + initializeMetrics(solrMetricsContext, Attributes.empty(), ""); // init pluggable circuit breakers, after metrics because some circuit breakers use metrics initPlugins(null, CircuitBreaker.class); @@ -1112,7 +1114,8 @@ protected SolrCore( SolrFieldCacheBean solrFieldCacheBean = new SolrFieldCacheBean(); // this is registered at the CONTAINER level because it's not core-specific - for now we // also register it here for back-compat - solrFieldCacheBean.initializeMetrics(solrMetricsContext, "core"); + // TODO SOLR-17458: Add Otel + solrFieldCacheBean.initializeMetrics(solrMetricsContext, Attributes.empty(), "core"); infoRegistry.put("fieldCache", solrFieldCacheBean); this.maxWarmingSearchers = solrConfig.maxWarmingSearchers; @@ -1189,7 +1192,8 @@ protected SolrCore( // Allow the directory factory to report metrics if (directoryFactory instanceof SolrMetricProducer) { ((SolrMetricProducer) directoryFactory) - .initializeMetrics(solrMetricsContext, "directoryFactory"); + // TODO SOLR-17458: Add Otel + .initializeMetrics(solrMetricsContext, Attributes.empty(), "directoryFactory"); } bufferUpdatesIfConstructing(coreDescriptor); @@ -1301,8 +1305,10 @@ private SolrCoreMetricManager initCoreMetricManager(SolrConfig config) { return coreMetricManager; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { newSearcherCounter = parentContext.counter("new", Category.SEARCHER.toString()); newSearcherTimer = parentContext.timer("time", Category.SEARCHER.toString(), "new"); newSearcherWarmupTimer = parentContext.timer("warmup", Category.SEARCHER.toString(), "new"); diff --git a/solr/core/src/java/org/apache/solr/core/ZkContainer.java b/solr/core/src/java/org/apache/solr/core/ZkContainer.java index f6e27ffdaf5..6cd48e10120 100644 --- a/solr/core/src/java/org/apache/solr/core/ZkContainer.java +++ b/solr/core/src/java/org/apache/solr/core/ZkContainer.java @@ -19,6 +19,7 @@ import static org.apache.solr.common.cloud.ZkStateReader.HTTPS; import static org.apache.solr.common.cloud.ZkStateReader.HTTPS_PORT_PROP; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.nio.file.Path; @@ -145,8 +146,10 @@ public void initZooKeeper(final CoreContainer cc, CloudConfig config) { new SolrMetricProducer() { SolrMetricsContext ctx; + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { ctx = parentContext.getChildContext(this); ctx.gauge( metricsMap, true, scope, null, SolrInfoBean.Category.CONTAINER.toString()); diff --git a/solr/core/src/java/org/apache/solr/handler/ExportHandler.java b/solr/core/src/java/org/apache/solr/handler/ExportHandler.java index 8fa1ba64e38..6a83eb78783 100644 --- a/solr/core/src/java/org/apache/solr/handler/ExportHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/ExportHandler.java @@ -19,6 +19,7 @@ import static org.apache.solr.common.params.CommonParams.JSON; +import io.opentelemetry.api.common.Attributes; import java.lang.invoke.MethodHandles; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -84,9 +85,11 @@ public ExportHandlerStreamFactory() { } } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); this.writerMetricsPath = SolrMetricManager.mkName("writer", getCategory().toString(), scope); } diff --git a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java index 8367e9166f9..d3aa17b7b12 100644 --- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java @@ -30,6 +30,7 @@ import static org.apache.solr.handler.admin.api.ReplicationAPIBase.STATUS; import static org.apache.solr.handler.admin.api.ReplicationAPIBase.TLOG_FILE; +import io.opentelemetry.api.common.Attributes; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -836,10 +837,11 @@ private CommitVersionInfo getIndexVersion() { } } - // TODO: Handle compatibility in 8.x + // NOCOMMIT SOLR-17458: Update with OTEL @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); solrMetricsContext.gauge( () -> (core != null && !core.isClosed() 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 43559d170cf..9ac85a27802 100644 --- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java @@ -22,6 +22,8 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Meter; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; import java.lang.invoke.MethodHandles; import java.util.Collection; import java.util.Collections; @@ -42,6 +44,8 @@ import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricProducer; import org.apache.solr.metrics.SolrMetricsContext; +import org.apache.solr.metrics.otel.instruments.AttributedLongCounter; +import org.apache.solr.metrics.otel.instruments.AttributedLongTimer; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.request.SolrRequestHandler; import org.apache.solr.response.SolrQueryResponse; @@ -159,7 +163,8 @@ public SolrMetricsContext getSolrMetricsContext() { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { if (aggregateNodeLevelMetricsEnabled) { this.solrMetricsContext = new SolrDelegateRegistryMetricsContext( @@ -170,7 +175,10 @@ public void initializeMetrics(SolrMetricsContext parentContext, String scope) { } else { this.solrMetricsContext = parentContext.getChildContext(this); } - metrics = new HandlerMetrics(solrMetricsContext, getCategory().toString(), scope); + + metrics = new HandlerMetrics(solrMetricsContext, attributes, getCategory().toString(), scope); + + // NOCOMMIT: I don't see value in this metric solrMetricsContext.gauge( () -> handlerStart, true, "handlerStart", getCategory().toString(), scope); } @@ -183,7 +191,8 @@ public static class HandlerMetrics { new SolrMetricManager( null, new MetricsConfig.MetricsConfigBuilder().setEnabled(false).build()), "NO_OP", - "NO_OP")); + "NO_OP"), + Attributes.empty()); public final Meter numErrors; public final Meter numServerErrors; @@ -193,7 +202,16 @@ public static class HandlerMetrics { public final Timer requestTimes; public final Counter totalTime; - public HandlerMetrics(SolrMetricsContext solrMetricsContext, String... metricPath) { + public AttributedLongCounter otelRequests; + public AttributedLongCounter otelNumServerErrors; + public AttributedLongCounter otelNumClientErrors; + public AttributedLongCounter otelNumTimeouts; + public AttributedLongTimer otelRequestTimes; + + public HandlerMetrics( + SolrMetricsContext solrMetricsContext, Attributes attributes, String... metricPath) { + + // NOCOMMIT SOLR-17458: To be removed numErrors = solrMetricsContext.meter("errors", metricPath); numServerErrors = solrMetricsContext.meter("serverErrors", metricPath); numClientErrors = solrMetricsContext.meter("clientErrors", metricPath); @@ -201,6 +219,43 @@ public HandlerMetrics(SolrMetricsContext solrMetricsContext, String... metricPat requests = solrMetricsContext.counter("requests", metricPath); requestTimes = solrMetricsContext.timer("requestTimes", metricPath); totalTime = solrMetricsContext.counter("totalTime", metricPath); + + var baseRequestMetric = + solrMetricsContext.longCounter("solr_metrics_core_requests", "HTTP Solr request counts"); + + var baseRequestTimeMetric = + solrMetricsContext.longHistogram( + "solr_metrics_core_requests_times", "HTTP Solr request times", "ms"); + + otelRequests = + new AttributedLongCounter( + baseRequestMetric, + Attributes.builder().putAll(attributes).put(TYPE_ATTR, "requests").build()); + + otelNumServerErrors = + new AttributedLongCounter( + baseRequestMetric, + Attributes.builder() + .putAll(attributes) + .put(AttributeKey.stringKey("source"), "server") + .put(TYPE_ATTR, "errors") + .build()); + + otelNumClientErrors = + new AttributedLongCounter( + baseRequestMetric, + Attributes.builder() + .putAll(attributes) + .put(AttributeKey.stringKey("source"), "client") + .put(TYPE_ATTR, "errors") + .build()); + + otelNumTimeouts = + new AttributedLongCounter( + baseRequestMetric, + Attributes.builder().putAll(attributes).put(TYPE_ATTR, "timeouts").build()); + + otelRequestTimes = new AttributedLongTimer(baseRequestTimeMetric, attributes); } } @@ -224,10 +279,13 @@ public void handleRequest(SolrQueryRequest req, SolrQueryResponse rsp) { if (publishCpuTime) { ThreadCpuTimer.beginContext(REQUEST_CPU_TIMER_CONTEXT); } + HandlerMetrics metrics = getMetricsForThisRequest(req); metrics.requests.inc(); + metrics.otelRequests.inc(); Timer.Context timer = metrics.requestTimes.time(); + AttributedLongTimer.MetricTimer otelTimer = metrics.otelRequestTimes.start(); try { TestInjection.injectLeaderTragedy(req.getCore()); if (pluginInfo != null && pluginInfo.attributes.containsKey(USEPARAM)) @@ -240,6 +298,7 @@ public void handleRequest(SolrQueryRequest req, SolrQueryResponse rsp) { if (!haveCompleteResults(rsp.getResponseHeader())) { metrics.numTimeouts.mark(); + metrics.otelNumTimeouts.inc(); rsp.setHttpCaching(false); } } catch (QueryLimitsExceededException e) { @@ -252,6 +311,7 @@ public void handleRequest(SolrQueryRequest req, SolrQueryResponse rsp) { try { long elapsed = timer.stop(); metrics.totalTime.inc(elapsed); + otelTimer.stop(); if (publishCpuTime) { Optional cpuTime = ThreadCpuTimer.readMSandReset(REQUEST_CPU_TIMER_CONTEXT); @@ -297,9 +357,11 @@ public static void processErrorMetricsOnException(Exception e, HandlerMetrics me if (isClientError) { log.error("Client exception", e); metrics.numClientErrors.mark(); + metrics.otelNumClientErrors.inc(); } else { log.error("Server exception", e); metrics.numServerErrors.mark(); + metrics.otelNumServerErrors.inc(); } } diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java index b073bc1bf5f..d80b0162d29 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java @@ -25,6 +25,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.Expiry; import com.github.benmanes.caffeine.cache.Ticker; +import io.opentelemetry.api.common.Attributes; import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collection; @@ -128,9 +129,11 @@ public final void init(NamedList args) { + "it is a special Handler configured directly by the RequestDispatcher"); } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); coreAdminAsyncTracker.standardExecutor = MetricUtils.instrumentedExecutorService( coreAdminAsyncTracker.standardExecutor, diff --git a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java index 4bba3414be9..ba7f6bba34b 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java @@ -51,7 +51,6 @@ import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.request.SolrRequestInfo; -import org.apache.solr.response.PrometheusResponseWriter; import org.apache.solr.response.SolrQueryResponse; import org.apache.solr.security.AuthorizationContext; import org.apache.solr.security.PermissionNameProvider; @@ -127,11 +126,12 @@ private void handleRequest(SolrParams params, BiConsumer consume return; } + // TODO SOLR-17458: Make this the default option after dropwizard removal if (PROMETHEUS_METRICS_WT.equals(params.get(CommonParams.WT))) { - response = handlePrometheusExport(params); - consumer.accept("metrics", response); + consumer.accept("metrics", metricManager.getPrometheusMetricReaders()); return; } + String[] keys = params.getParams(KEY_PARAM); if (keys != null && keys.length > 0) { handleKeyRequest(keys, consumer); @@ -179,59 +179,6 @@ private NamedList handleDropwizardRegistry(SolrParams params) { return response; } - private NamedList handlePrometheusExport(SolrParams params) { - NamedList response = new SimpleOrderedMap<>(); - MetricFilter mustMatchFilter = parseMustMatchFilter(params); - Predicate propertyFilter = parsePropertyFilter(params); - List metricTypes = parseMetricTypes(params); - List metricFilters = - metricTypes.stream().map(MetricType::asMetricFilter).collect(Collectors.toList()); - - Set requestedRegistries = parseRegistries(params); - MetricRegistry mergedCoreRegistries = new MetricRegistry(); - - for (String registryName : requestedRegistries) { - MetricRegistry dropwizardRegistry = metricManager.registry(registryName); - - // Merge all core registries into a single registry and - // append the core name to the metric to avoid duplicate metrics name - if (registryName.startsWith("solr.core")) { - mergedCoreRegistries.registerAll(getCoreNameFromRegistry(registryName), dropwizardRegistry); - continue; - } - - PrometheusResponseWriter.toPrometheus( - dropwizardRegistry, - registryName, - metricFilters, - mustMatchFilter, - propertyFilter, - false, - false, - true, - (registry) -> { - response.add(registryName, registry); - }); - } - - if (!mergedCoreRegistries.getMetrics().isEmpty()) { - PrometheusResponseWriter.toPrometheus( - mergedCoreRegistries, - "solr.core", - metricFilters, - mustMatchFilter, - propertyFilter, - false, - false, - true, - (registry) -> { - response.add("solr.core", registry); - }); - } - - return response; - } - private static class MetricsExpr { Pattern registryRegex; MetricFilter metricFilter; diff --git a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java index ac7dc0cf8e0..f9769387589 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java +++ b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java @@ -18,6 +18,7 @@ import static org.apache.solr.util.stats.InstrumentedHttpListenerFactory.KNOWN_METRIC_NAME_STRATEGIES; +import io.opentelemetry.api.common.Attributes; import java.lang.invoke.MethodHandles; import java.util.Iterator; import java.util.List; @@ -437,10 +438,12 @@ private String buildUrl(String url) { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); String expandedScope = SolrMetricManager.mkName(scope, SolrInfoBean.Category.QUERY.name()); - httpListenerFactory.initializeMetrics(solrMetricsContext, expandedScope); + // TODO SOLR-17458: Add Otel + httpListenerFactory.initializeMetrics(solrMetricsContext, Attributes.empty(), expandedScope); commExecutor = MetricUtils.instrumentedExecutorService( commExecutor, diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchComponent.java b/solr/core/src/java/org/apache/solr/handler/component/SearchComponent.java index 913078c27ee..de041a7220e 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SearchComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SearchComponent.java @@ -16,6 +16,7 @@ */ package org.apache.solr.handler.component; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.util.Map; import org.apache.solr.core.SolrInfoBean; @@ -103,8 +104,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Update with Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { // By default don't register any metrics - but prepare a child context this.solrMetricsContext = parentContext.getChildContext(this); } diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java index 45a8c1d7a19..b53109853fb 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java @@ -28,6 +28,8 @@ import static org.apache.solr.response.SolrQueryResponse.RESPONSE_HEADER_PARTIAL_RESULTS_DETAILS_KEY; import com.codahale.metrics.Counter; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; @@ -62,7 +64,6 @@ import org.apache.solr.core.SolrCore; import org.apache.solr.handler.RequestHandlerBase; import org.apache.solr.logging.MDCLoggingContext; -import org.apache.solr.metrics.MetricsMap; import org.apache.solr.metrics.SolrMetricsContext; import org.apache.solr.pkg.PackageAPI; import org.apache.solr.pkg.PackageListeners; @@ -152,18 +153,28 @@ public void init(PluginInfo info) { } } + // TODO SOLR-17458: Fix metric Attributes @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics( + parentContext, + Attributes.builder() + .putAll(attributes) + .put(AttributeKey.stringKey("category"), getCategory().toString()) + .put(AttributeKey.stringKey("internal"), "false") + .build(), + scope); metricsShard = new HandlerMetrics( // will register various metrics in the context - solrMetricsContext, getCategory().toString(), scope + SHARD_HANDLER_SUFFIX); - solrMetricsContext.gauge( - new MetricsMap(map -> shardPurposes.forEach((k, v) -> map.putNoEx(k, v.getCount()))), - true, - "purposes", - getCategory().toString(), - scope + SHARD_HANDLER_SUFFIX); + solrMetricsContext, + Attributes.builder() + .putAll(attributes) + .put(AttributeKey.stringKey("category"), getCategory().toString()) + .put(AttributeKey.stringKey("internal"), "true") + .build(), + getCategory().toString(), + scope + SHARD_HANDLER_SUFFIX); } @Override diff --git a/solr/core/src/java/org/apache/solr/handler/component/SuggestComponent.java b/solr/core/src/java/org/apache/solr/handler/component/SuggestComponent.java index 4a306af3022..6bca075fe2c 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SuggestComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SuggestComponent.java @@ -16,6 +16,7 @@ */ package org.apache.solr.handler.component; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.nio.file.Files; @@ -380,9 +381,11 @@ public String getDescription() { return "Suggester component"; } + // TODO SOLR-17458: Migrate to OTEL @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); this.solrMetricsContext.gauge( () -> ramBytesUsed(), true, "totalSizeInBytes", getCategory().toString()); diff --git a/solr/core/src/java/org/apache/solr/highlight/HighlightingPluginBase.java b/solr/core/src/java/org/apache/solr/highlight/HighlightingPluginBase.java index 7028c8c8e8e..c0e45ef582f 100644 --- a/solr/core/src/java/org/apache/solr/highlight/HighlightingPluginBase.java +++ b/solr/core/src/java/org/apache/solr/highlight/HighlightingPluginBase.java @@ -17,6 +17,7 @@ package org.apache.solr.highlight; import com.codahale.metrics.Counter; +import io.opentelemetry.api.common.Attributes; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import org.apache.solr.common.params.SolrParams; @@ -62,8 +63,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to OTEL @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); numRequests = solrMetricsContext.counter("requests", getCategory().toString(), scope); } diff --git a/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java b/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java index 830c78d38b0..6cea50d03d2 100644 --- a/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java +++ b/solr/core/src/java/org/apache/solr/jersey/RequestMetricHandling.java @@ -33,6 +33,7 @@ import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.core.PluginBag; import org.apache.solr.handler.RequestHandlerBase; +import org.apache.solr.metrics.otel.instruments.AttributedLongTimer; import org.apache.solr.request.SolrQueryRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,9 +90,12 @@ public void filter(ContainerRequestContext requestContext) throws IOException { final RequestHandlerBase.HandlerMetrics metrics = handlerBase.getMetricsForThisRequest(solrQueryRequest); - requestContext.setProperty(HANDLER_METRICS, metrics); - requestContext.setProperty(TIMER, metrics.requestTimes.time()); + // TODO SOLR-17458: Recording both Otel and dropwizard for now. Will remove Dropwizard after + // removal metrics.requests.inc(); + requestContext.setProperty(TIMER, metrics.otelRequestTimes.start()); + requestContext.setProperty("dropwizardTimer", metrics.requestTimes.time()); + requestContext.setProperty(HANDLER_METRICS, metrics); } } @@ -117,13 +121,16 @@ public void filter( final SolrJerseyResponse response = (SolrJerseyResponse) responseContext.getEntity(); if (Boolean.TRUE.equals(response.responseHeader.partialResults)) { metrics.numTimeouts.mark(); + metrics.otelNumTimeouts.inc(); } } else { log.debug("Skipping partialResults check because entity was not SolrJerseyResponse"); } + final var dropwizardTimer = (Timer.Context) requestContext.getProperty("dropwizardTimer"); + metrics.totalTime.inc(dropwizardTimer.stop()); - final Timer.Context timer = (Timer.Context) requestContext.getProperty(TIMER); - metrics.totalTime.inc(timer.stop()); + final var timer = (AttributedLongTimer.MetricTimer) requestContext.getProperty(TIMER); + timer.stop(); } } } 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 a1c5f92fd5f..9d79ada8a85 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java @@ -17,6 +17,8 @@ package org.apache.solr.metrics; import com.codahale.metrics.MetricRegistry; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; import java.io.Closeable; import java.io.IOException; import org.apache.solr.cloud.CloudDescriptor; @@ -33,6 +35,13 @@ */ public class SolrCoreMetricManager implements Closeable { + public static final AttributeKey COLLECTION_ATTR = AttributeKey.stringKey("collection"); + public static final AttributeKey CORE_ATTR = AttributeKey.stringKey("core"); + public static final AttributeKey SHARD_ATTR = AttributeKey.stringKey("shard"); + public static final AttributeKey REPLICA_ATTR = AttributeKey.stringKey("replica"); + public static final AttributeKey HANDLER_ATTR = AttributeKey.stringKey("handler"); + public static final AttributeKey SCOPE_ATTR = AttributeKey.stringKey("scope"); + private final SolrCore core; private SolrMetricsContext solrMetricsContext; private SolrMetricManager metricManager; @@ -99,6 +108,7 @@ public void loadReporters() { * and will be used under the new core name. This method also reloads reporters so that they use * the new core name. */ + // NOCOMMIT SOLR-17458: Update for core renaming public void afterCoreRename() { assert core.getCoreDescriptor().getCloudDescriptor() == null; String oldRegistryName = solrMetricsContext.getRegistryName(); @@ -135,8 +145,19 @@ public void registerMetricProducer(String scope, SolrMetricProducer producer) { + ", producer = " + producer); } + + // NOCOMMIT SOLR-17458: These attributes may not work for standalone mode // use deprecated method for back-compat, remove in 9.0 - producer.initializeMetrics(solrMetricsContext, scope); + producer.initializeMetrics( + solrMetricsContext, + Attributes.builder() + .put(CORE_ATTR, core.getCoreDescriptor().getName()) + .put(COLLECTION_ATTR, collectionName) + .put(SHARD_ATTR, shardName) + .put(REPLICA_ATTR, replicaName) + .put((scope.startsWith("/")) ? HANDLER_ATTR : SCOPE_ATTR, scope) + .build(), + scope); } /** Return the registry used by this SolrCore. */ 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 52c468445cb..2f420f2924d 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -26,6 +26,32 @@ import com.codahale.metrics.MetricSet; import com.codahale.metrics.SharedMetricRegistries; import com.codahale.metrics.Timer; +import io.opentelemetry.api.metrics.DoubleCounter; +import io.opentelemetry.api.metrics.DoubleCounterBuilder; +import io.opentelemetry.api.metrics.DoubleGauge; +import io.opentelemetry.api.metrics.DoubleGaugeBuilder; +import io.opentelemetry.api.metrics.DoubleHistogram; +import io.opentelemetry.api.metrics.DoubleHistogramBuilder; +import io.opentelemetry.api.metrics.DoubleUpDownCounter; +import io.opentelemetry.api.metrics.DoubleUpDownCounterBuilder; +import io.opentelemetry.api.metrics.LongCounter; +import io.opentelemetry.api.metrics.LongCounterBuilder; +import io.opentelemetry.api.metrics.LongGauge; +import io.opentelemetry.api.metrics.LongGaugeBuilder; +import io.opentelemetry.api.metrics.LongHistogram; +import io.opentelemetry.api.metrics.LongHistogramBuilder; +import io.opentelemetry.api.metrics.LongUpDownCounter; +import io.opentelemetry.api.metrics.LongUpDownCounterBuilder; +import io.opentelemetry.api.metrics.ObservableDoubleCounter; +import io.opentelemetry.api.metrics.ObservableDoubleGauge; +import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; +import io.opentelemetry.api.metrics.ObservableDoubleUpDownCounter; +import io.opentelemetry.api.metrics.ObservableLongCounter; +import io.opentelemetry.api.metrics.ObservableLongGauge; +import io.opentelemetry.api.metrics.ObservableLongMeasurement; +import io.opentelemetry.api.metrics.ObservableLongUpDownCounter; +import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; +import io.opentelemetry.sdk.metrics.SdkMeterProvider; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -44,6 +70,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import java.util.function.Consumer; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import java.util.stream.Collectors; @@ -88,6 +115,8 @@ public class SolrMetricManager { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + public static final String OTEL_SCOPE_NAME = "org.apache.solr"; + /** Common prefix for all registry names that Solr uses. */ public static final String REGISTRY_NAME_PREFIX = "solr."; @@ -120,6 +149,11 @@ public class SolrMetricManager { private final MetricRegistry.MetricSupplier timerSupplier; private final MetricRegistry.MetricSupplier histogramSupplier; + private final ConcurrentMap sdkMeterProviders = + new ConcurrentHashMap<>(); + private final ConcurrentMap prometheusMetricReaders = + new ConcurrentHashMap<>(); + public SolrMetricManager() { metricsConfig = new MetricsConfig.MetricsConfigBuilder().build(); counterSupplier = MetricSuppliers.counterSupplier(null, null); @@ -137,6 +171,207 @@ public SolrMetricManager(SolrResourceLoader loader, MetricsConfig metricsConfig) MetricSuppliers.histogramSupplier(loader, metricsConfig.getHistogramSupplier()); } + public LongCounter longCounter( + String providerName, String counterName, String description, String unit) { + LongCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .counterBuilder(counterName) + .setDescription(description); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public LongUpDownCounter longUpDownCounter( + String providerName, String counterName, String description, String unit) { + LongUpDownCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .upDownCounterBuilder(counterName) + .setDescription(description); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public DoubleUpDownCounter doubleUpDownCounter( + String providerName, String counterName, String description, String unit) { + DoubleUpDownCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .upDownCounterBuilder(counterName) + .setDescription(description) + .ofDoubles(); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public DoubleCounter doubleCounter( + String providerName, String counterName, String description, String unit) { + DoubleCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .counterBuilder(counterName) + .setDescription(description) + .ofDoubles(); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public DoubleHistogram doubleHistogram( + String providerName, String histogramName, String description, String unit) { + DoubleHistogramBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .histogramBuilder(histogramName) + .setDescription(description); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public LongHistogram longHistogram( + String providerName, String histogramName, String description, String unit) { + LongHistogramBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .histogramBuilder(histogramName) + .setDescription(description) + .ofLongs(); + + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public DoubleGauge doubleGauge( + String providerName, String gaugeName, String description, String unit) { + DoubleGaugeBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .gaugeBuilder(gaugeName) + .setDescription(description); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public LongGauge longGauge( + String providerName, String gaugeName, String description, String unit) { + LongGaugeBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .gaugeBuilder(gaugeName) + .setDescription(description) + .ofLongs(); + if (unit != null) builder.setUnit(unit); + + return builder.build(); + } + + public ObservableLongCounter observableLongCounter( + String providerName, + String counterName, + String description, + Consumer callback, + String unit) { + LongCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .counterBuilder(counterName) + .setDescription(description); + if (unit != null) builder.setUnit(unit); + + return builder.buildWithCallback(callback); + } + + public ObservableDoubleCounter observableDoubleCounter( + String providerName, + String counterName, + String description, + Consumer callback, + String unit) { + DoubleCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .counterBuilder(counterName) + .setDescription(description) + .ofDoubles(); + if (unit != null) builder.setUnit(unit); + + return builder.buildWithCallback(callback); + } + + public ObservableLongGauge observableLongGauge( + String providerName, + String gaugeName, + String description, + Consumer callback, + String unit) { + LongGaugeBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .gaugeBuilder(gaugeName) + .setDescription(description) + .ofLongs(); + if (unit != null) builder.setUnit(unit); + + return builder.buildWithCallback(callback); + } + + public ObservableDoubleGauge observableDoubleGauge( + String providerName, + String gaugeName, + String description, + Consumer callback, + String unit) { + DoubleGaugeBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .gaugeBuilder(gaugeName) + .setDescription(description); + + if (unit != null) builder.setUnit(unit); + + return builder.buildWithCallback(callback); + } + + public ObservableLongUpDownCounter observableLongUpDownCounter( + String providerName, + String counterName, + String description, + Consumer callback, + String unit) { + LongUpDownCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .upDownCounterBuilder(counterName) + .setDescription(description); + if (unit != null) builder.setUnit(unit); + + return builder.buildWithCallback(callback); + } + + public ObservableDoubleUpDownCounter observableDoubleUpDownCounter( + String providerName, + String counterName, + String description, + Consumer callback, + String unit) { + DoubleUpDownCounterBuilder builder = + sdkMeterProvider(providerName) + .get(OTEL_SCOPE_NAME) + .upDownCounterBuilder(counterName) + .setDescription(description) + .ofDoubles(); + if (unit != null) builder.setUnit(unit); + + return builder.buildWithCallback(callback); + } + // for unit tests public MetricRegistry.MetricSupplier getCounterSupplier() { return counterSupplier; @@ -381,6 +616,7 @@ public boolean matches(String s, Metric metric) { } /** Return a set of existing registry names. */ + // NOCOMMIT: Remove for OTEL public Set registryNames() { Set set = new HashSet<>(); set.addAll(registries.keySet()); @@ -388,18 +624,27 @@ public Set registryNames() { return set; } + public Set providerNames() { + return sdkMeterProviders.keySet(); + } + /** * Check whether a registry with a given name already exists. * * @param name registry name * @return true if this name points to a registry that already exists, false otherwise */ + // TODO SOLR-17458: We may not need public boolean hasRegistry(String name) { Set names = registryNames(); name = enforcePrefix(name); return names.contains(name); } + public boolean hasMeterProvider(String name) { + return sdkMeterProviders.containsKey(enforcePrefix(name)); + } + /** * Return set of existing registry names that match a regex pattern * @@ -407,6 +652,7 @@ public boolean hasRegistry(String name) { * with a wildcard use the full registry name starting with {@link #REGISTRY_NAME_PREFIX} * @return set of existing registry names where at least one pattern matched. */ + // TODO SOLR-17458: We may not need? Maybe make a custom OTEL metric reader instead public Set registryNames(String... patterns) throws PatternSyntaxException { if (patterns == null || patterns.length == 0) { return registryNames(); @@ -443,6 +689,7 @@ public Set registryNames(Pattern... patterns) { * @param registry already normalized name * @return true if the name matches one of shared registries */ + // TODO SOLR-17458: We may not need private static boolean isSharedRegistry(String registry) { return JETTY_REGISTRY.equals(registry) || JVM_REGISTRY.equals(registry); } @@ -453,6 +700,7 @@ private static boolean isSharedRegistry(String registry) { * @param registry name of the registry * @return existing or newly created registry */ + // NOCOMMIT SOLR-17458: We may not need public MetricRegistry registry(String registry) { registry = enforcePrefix(registry); if (isSharedRegistry(registry)) { @@ -467,6 +715,18 @@ public MetricRegistry registry(String registry) { } } + public SdkMeterProvider sdkMeterProvider(String providerName) { + providerName = enforcePrefix(providerName); + return sdkMeterProviders.computeIfAbsent( + providerName, + key -> { + PrometheusMetricReader reader = new PrometheusMetricReader(true, null); + prometheusMetricReaders.put(key, reader); + return SdkMeterProvider.builder().registerMetricReader(reader).build(); + }); + } + + // TODO SOLR-17458: We may not need private static MetricRegistry getOrCreateRegistry( ConcurrentMap map, String registry) { final MetricRegistry existing = map.get(registry); @@ -488,6 +748,7 @@ private static MetricRegistry getOrCreateRegistry( * * @param registry name of the registry to remove */ + // TODO SOLR-17458: You can't delete OTEL meters public void removeRegistry(String registry) { // close any reporters for this registry first closeReporters(registry, null); @@ -505,6 +766,16 @@ public void removeRegistry(String registry) { } } + public void closeMeterProvider(String registry) { + sdkMeterProviders.computeIfPresent( + enforcePrefix(registry), + (key, sdkMeterProvider) -> { + sdkMeterProvider.close(); + prometheusMetricReaders.remove(key); + return null; + }); + } + /** * Swap registries. This is useful eg. during {@link org.apache.solr.core.SolrCore} rename or swap * operations. NOTE: this operation is not supported for shared registries. @@ -514,6 +785,7 @@ public void removeRegistry(String registry) { * exist, so the swap operation will only rename the existing registry without creating an * empty one under the previous name. */ + // NOCOMMIT SOLR-17458: Don't think we need public void swapRegistries(String registry1, String registry2) { registry1 = enforcePrefix(registry1); registry2 = enforcePrefix(registry2); @@ -545,6 +817,7 @@ public void swapRegistries(String registry1, String registry2) { * Potential conflict resolution strategies when attempting to register a new metric that already * exists */ + // TODO SOLR-17458: Don't think we need public enum ResolutionStrategy { /** * The existing metric will be kept and the new metric will be ignored. If no metric exists, @@ -567,6 +840,7 @@ public enum ResolutionStrategy { * @param metricPath (optional) additional top-most metric name path elements * @throws Exception if a metric with this name already exists. */ + // I don't think we do something like this for OTEL? public void registerAll( String registry, MetricSet metrics, ResolutionStrategy strategy, String... metricPath) throws Exception { @@ -590,6 +864,7 @@ public void registerAll( * * @param registry registry name */ + // TODO SOLR-17458: Don't think we need public void clearRegistry(String registry) { registry(registry).removeMatching(MetricFilter.ALL); } @@ -604,6 +879,9 @@ public void clearRegistry(String registry) { * start with the prefix will be removed. * @return set of metrics names that have been removed. */ + // NOCOMMIT SOLR-17458: This is not supported in otel. Metrics are immutable. We can at best + // filter + // them or delete the meterProvider entirely public Set clearMetrics(String registry, String... metricPath) { PrefixFilter filter; if (metricPath == null || metricPath.length == 0) { @@ -623,6 +901,8 @@ public Set clearMetrics(String registry, String... metricPath) { * @param metricFilter filter (null is equivalent to {@link MetricFilter#ALL}). * @return map of matching names and metrics */ + // TODO SOLR-17458: We will create an OTEL metric reader for this instead. For tests, we can + // create an in-memory metric reader public Map getMetrics(String registry, MetricFilter metricFilter) { if (metricFilter == null || metricFilter == MetricFilter.ALL) { return registry(registry).getMetrics(); @@ -641,6 +921,7 @@ public Map getMetrics(String registry, MetricFilter metricFilter * @param metricPath (optional) additional top-most metric name path elements * @return existing or a newly created {@link Meter} */ + // TODO SOLR-17458: Don't need this public Meter meter( SolrMetricsContext context, String registry, String metricName, String... metricPath) { final String name = mkName(metricName, metricPath); @@ -659,6 +940,7 @@ public Meter meter( * @param metricPath (optional) additional top-most metric name path elements * @return existing or a newly created {@link Timer} */ + // TODO SOLR-17458: Don't need this public Timer timer( SolrMetricsContext context, String registry, String metricName, String... metricPath) { final String name = mkName(metricName, metricPath); @@ -677,6 +959,7 @@ public Timer timer( * @param metricPath (optional) additional top-most metric name path elements * @return existing or a newly created {@link Counter} */ + // TODO SOLR-17458: Don't need this public Counter counter( SolrMetricsContext context, String registry, String metricName, String... metricPath) { final String name = mkName(metricName, metricPath); @@ -695,6 +978,7 @@ public Counter counter( * @param metricPath (optional) additional top-most metric name path elements * @return existing or a newly created {@link Histogram} */ + // TODO SOLR-17458: Don't need this public Histogram histogram( SolrMetricsContext context, String registry, String metricName, String... metricPath) { final String name = mkName(metricName, metricPath); @@ -708,6 +992,7 @@ public Histogram histogram( * @deprecated use {@link #registerMetric(SolrMetricsContext, String, Metric, ResolutionStrategy, * String, String...)} */ + // TODO SOLR-17458: Don't need this @Deprecated public void registerMetric( SolrMetricsContext context, @@ -735,6 +1020,7 @@ public void registerMetric( * notation * @param metricPath (optional) additional top-most metric name path elements */ + // TODO SOLR-17458: Don't need this public void registerMetric( SolrMetricsContext context, String registry, @@ -1369,4 +1655,12 @@ public void loadClusterReporters(PluginInfo[] pluginInfos, CoreContainer cc) { public MetricsConfig getMetricsConfig() { return metricsConfig; } + + public Map getPrometheusMetricReaders() { + return Map.copyOf(prometheusMetricReaders); + } + + public PrometheusMetricReader getPrometheusMetricReader(String metricReaderName) { + return prometheusMetricReaders.get(enforcePrefix(metricReaderName)); + } } diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java index 335a76cb7b8..6e06f59c338 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricProducer.java @@ -16,11 +16,15 @@ */ package org.apache.solr.metrics; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; /** Used by objects that expose metrics through {@link SolrMetricManager}. */ public interface SolrMetricProducer extends AutoCloseable { + public static final AttributeKey TYPE_ATTR = AttributeKey.stringKey("type"); + /** * Unique metric tag identifies components with the same life-cycle, which should be registered / * unregistered together. It is in the format of A:B:C, where A is the parent of B is the parent @@ -40,20 +44,18 @@ static String getUniqueMetricTag(Object o, String parentName) { } /** - * Initialize metrics specific to this producer. + * NOCOMMIT SOLR-17458: The Scope parameter will be removed with Dropwizard * - * @param parentContext parent metrics context. If this component has the same life-cycle as the - * parent it can simply use the parent context, otherwise it should obtain a child context - * using {@link SolrMetricsContext#getChildContext(Object)} passing this as the - * child object. - * @param scope component scope + *

{@link Attributes} passed is the base or common set of attributes that should be attached to + * every metric that will be initialized */ - void initializeMetrics(SolrMetricsContext parentContext, String scope); + void initializeMetrics(SolrMetricsContext parentContext, Attributes attributes, String scope); /** * Implementations should return the context used in {@link #initializeMetrics(SolrMetricsContext, - * String)} to ensure proper cleanup of metrics at the end of the life-cycle of this component. - * This should be the child context if one was created, or null if the parent context was used. + * Attributes, String)} to ensure proper cleanup of metrics at the end of the life-cycle of this + * component. This should be the child context if one was created, or null if the parent context + * was used. */ SolrMetricsContext getSolrMetricsContext(); diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricsContext.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricsContext.java index f98d5c0ba80..222ce2e0e8a 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricsContext.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricsContext.java @@ -23,9 +23,21 @@ import com.codahale.metrics.Meter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; +import io.opentelemetry.api.metrics.DoubleCounter; +import io.opentelemetry.api.metrics.DoubleGauge; +import io.opentelemetry.api.metrics.DoubleHistogram; +import io.opentelemetry.api.metrics.LongCounter; +import io.opentelemetry.api.metrics.LongGauge; +import io.opentelemetry.api.metrics.LongHistogram; +import io.opentelemetry.api.metrics.LongUpDownCounter; +import io.opentelemetry.api.metrics.ObservableDoubleGauge; +import io.opentelemetry.api.metrics.ObservableDoubleMeasurement; +import io.opentelemetry.api.metrics.ObservableLongGauge; +import io.opentelemetry.api.metrics.ObservableLongMeasurement; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Consumer; import org.apache.solr.util.stats.MetricUtils; /** @@ -48,31 +60,37 @@ public SolrMetricsContext(SolrMetricManager metricManager, String registryName, } /** See {@link SolrMetricManager#nullNumber()}. */ + // TODO Remove public Object nullNumber() { return metricManager.nullNumber(); } /** See {@link SolrMetricManager#notANumber()}. */ + // TODO Remove public Object notANumber() { return metricManager.notANumber(); } /** See {@link SolrMetricManager#nullString()}. */ + // TODO Remove public Object nullString() { return metricManager.nullString(); } /** See {@link SolrMetricManager#nullObject()}. */ + // TODO Remove public Object nullObject() { return metricManager.nullObject(); } /** Metrics tag that represents objects with the same life-cycle. */ + // TODO Remove public String getTag() { return tag; } /** Return metric registry name used in this context. */ + // TODO Change this to OTEL Scope public String getRegistryName() { return registryName; } @@ -94,6 +112,7 @@ public Set getMetricNames() { * ) of components that register gauge metrics with references to the current object's * instance. Failure to do so may result in hard-to-debug memory leaks. */ + // TODO don't need this public void unregister() { metricManager.unregisterGauges(registryName, tag); } @@ -105,6 +124,7 @@ public void unregister() { * * @param child child object that produces metrics with a different life-cycle than the parent. */ + // TODO We shouldn't need child context anymore public SolrMetricsContext getChildContext(Object child) { SolrMetricsContext childContext = new SolrMetricsContext( @@ -116,21 +136,108 @@ public SolrMetricsContext getChildContext(Object child) { * Register a metric name that this component reports. This method is called by various metric * registration methods in {@link org.apache.solr.metrics.SolrMetricManager} in order to capture * what metric names are reported from this component (which in turn is called from {@link - * org.apache.solr.metrics.SolrMetricProducer#initializeMetrics(SolrMetricsContext, String)}). + * SolrMetricProducer#initializeMetrics(SolrMetricsContext, + * io.opentelemetry.api.common.Attributes, String)}). */ + // TODO We can continue to register metric names public void registerMetricName(String name) { metricNames.add(name); } /** Return a snapshot of metric values that this component reports. */ + // TODO Don't think this is needed anymore public Map getMetricsSnapshot() { return MetricUtils.convertMetrics(getMetricRegistry(), metricNames); } + public LongCounter longCounter(String metricName, String description) { + return longCounter(metricName, description, null); + } + + public LongCounter longCounter(String metricName, String description, String unit) { + return metricManager.longCounter(registryName, metricName, description, unit); + } + + public LongUpDownCounter longUpDownCounter(String metricName, String description) { + return longUpDownCounter(metricName, description, null); + } + + public LongUpDownCounter longUpDownCounter(String metricName, String description, String unit) { + return metricManager.longUpDownCounter(registryName, metricName, description, unit); + } + + public DoubleCounter doubleCounter(String metricName, String description) { + return doubleCounter(metricName, description, null); + } + + public DoubleCounter doubleCounter(String metricName, String description, String unit) { + return metricManager.doubleCounter(registryName, metricName, description, unit); + } + + public DoubleHistogram doubleHistogram(String metricName, String description) { + return metricManager.doubleHistogram(registryName, metricName, description, null); + } + + public DoubleHistogram doubleHistogram(String metricName, String description, String unit) { + return metricManager.doubleHistogram(registryName, metricName, description, unit); + } + + public LongHistogram longHistogram(String metricName, String description) { + return metricManager.longHistogram(registryName, metricName, description, null); + } + + public LongHistogram longHistogram(String metricName, String description, String unit) { + return metricManager.longHistogram(registryName, metricName, description, unit); + } + + public LongGauge longGauge(String metricName, String description) { + return metricManager.longGauge(registryName, metricName, description, null); + } + + public LongGauge longGauge(String metricName, String description, String unit) { + return metricManager.longGauge(registryName, metricName, description, unit); + } + + public DoubleGauge doubleGauge(String metricName, String description) { + return metricManager.doubleGauge(registryName, metricName, description, null); + } + + public DoubleGauge doubleGauge(String metricName, String description, String unit) { + return metricManager.doubleGauge(registryName, metricName, description, unit); + } + + public ObservableLongGauge observableLongGauge( + String metricName, String description, Consumer callback) { + return observableLongGauge(metricName, description, callback, null); + } + + public ObservableLongGauge observableLongGauge( + String metricName, + String description, + Consumer callback, + String unit) { + return metricManager.observableLongGauge(registryName, metricName, description, callback, unit); + } + + public ObservableDoubleGauge observableDoubleGauge( + String metricName, String description, Consumer callback) { + return observableDoubleGauge(metricName, description, callback, null); + } + + public ObservableDoubleGauge observableDoubleGauge( + String metricName, + String description, + Consumer callback, + String unit) { + return metricManager.observableDoubleGauge( + registryName, metricName, description, callback, unit); + } + /** * Convenience method for {@link SolrMetricManager#meter(SolrMetricsContext, String, String, * String...)}. */ + // TODO Remove public Meter meter(String metricName, String... metricPath) { return metricManager.meter(this, registryName, metricName, metricPath); } @@ -139,6 +246,7 @@ public Meter meter(String metricName, String... metricPath) { * Convenience method for {@link SolrMetricManager#counter(SolrMetricsContext, String, String, * String...)}. */ + // TODO Remove public Counter counter(String metricName, String... metricPath) { return metricManager.counter(this, registryName, metricName, metricPath); } @@ -147,6 +255,7 @@ public Counter counter(String metricName, String... metricPath) { * Convenience method for {@link SolrMetricManager#registerGauge(SolrMetricsContext, String, * Gauge, String, SolrMetricManager.ResolutionStrategy, String, String...)}. */ + // TODO Remove public void gauge(Gauge gauge, boolean force, String metricName, String... metricPath) { metricManager.registerGauge( this, @@ -164,6 +273,7 @@ public void gauge(Gauge gauge, boolean force, String metricName, String... me * Convenience method for {@link SolrMetricManager#meter(SolrMetricsContext, String, String, * String...)}. */ + // TODO Remove public Timer timer(String metricName, String... metricPath) { return metricManager.timer(this, registryName, metricName, metricPath); } @@ -172,6 +282,7 @@ public Timer timer(String metricName, String... metricPath) { * Convenience method for {@link SolrMetricManager#histogram(SolrMetricsContext, String, String, * String...)}. */ + // TODO Remove public Histogram histogram(String metricName, String... metricPath) { return metricManager.histogram(this, registryName, metricName, metricPath); } @@ -179,6 +290,7 @@ public Histogram histogram(String metricName, String... metricPath) { /** * Get the {@link MetricRegistry} instance that is used for registering metrics in this context. */ + // TODO Change this to OTEL Scope? public MetricRegistry getMetricRegistry() { return metricManager.registry(registryName); } diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyMetric.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleCounter.java similarity index 60% rename from solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyMetric.java rename to solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleCounter.java index 95211f6d9eb..43adf8ad087 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyMetric.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleCounter.java @@ -14,14 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.metrics.prometheus.jetty; +package org.apache.solr.metrics.otel.instruments; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.DoubleCounter; -/** Base class is a wrapper to export a solr.jetty {@link com.codahale.metrics.Metric} */ -public abstract class SolrJettyMetric extends SolrMetric { - public SolrJettyMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); +public class AttributedDoubleCounter { + + private final DoubleCounter counter; + private final Attributes attributes; + + public AttributedDoubleCounter(DoubleCounter counter, Attributes attributes) { + this.counter = counter; + this.attributes = attributes; + } + + public void inc() { + add(1.0); + } + + public void add(Double value) { + counter.add(value, attributes); } } diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMetric.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleGauge.java similarity index 63% rename from solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMetric.java rename to solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleGauge.java index 75541640488..ba809a0fd80 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMetric.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleGauge.java @@ -14,14 +14,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.metrics.prometheus.jvm; +package org.apache.solr.metrics.otel.instruments; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.DoubleGauge; -/** Base class is a wrapper to export a solr.jvm {@link com.codahale.metrics.Metric} */ -public abstract class SolrJvmMetric extends SolrMetric { - public SolrJvmMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); +public class AttributedDoubleGauge { + private final DoubleGauge gauge; + private final Attributes attributes; + + public AttributedDoubleGauge(DoubleGauge gauge, Attributes attributes) { + this.gauge = gauge; + this.attributes = attributes; + } + + public void set(Double value) { + gauge.set(value, attributes); } } diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeMetric.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleHistogram.java similarity index 61% rename from solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeMetric.java rename to solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleHistogram.java index 34795e240de..7f573a3022a 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeMetric.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleHistogram.java @@ -14,16 +14,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.metrics.prometheus.node; +package org.apache.solr.metrics.otel.instruments; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.DoubleHistogram; -/** Base class is a wrapper to export a solr.node {@link com.codahale.metrics.Metric} */ -public abstract class SolrNodeMetric extends SolrMetric { - public static final String NODE_THREAD_POOL = "solr_metrics_node_thread_pool"; +public class AttributedDoubleHistogram { - public SolrNodeMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); + private final DoubleHistogram histogram; + private final Attributes attributes; + + public AttributedDoubleHistogram(DoubleHistogram histogram, Attributes attributes) { + this.histogram = histogram; + this.attributes = attributes; + } + + public void record(Double value) { + histogram.record(value, attributes); } } diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleUpDownCounter.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleUpDownCounter.java new file mode 100644 index 00000000000..23c0d3b9a53 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedDoubleUpDownCounter.java @@ -0,0 +1,43 @@ +/* + * 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.instruments; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.DoubleUpDownCounter; + +public class AttributedDoubleUpDownCounter { + + private final DoubleUpDownCounter upDownCounter; + private final Attributes attributes; + + public AttributedDoubleUpDownCounter(DoubleUpDownCounter upDownCounter, Attributes attributes) { + this.upDownCounter = upDownCounter; + this.attributes = attributes; + } + + public void inc() { + add(1.0); + } + + public void dec() { + add(-1.0); + } + + public void add(Double value) { + upDownCounter.add(value, attributes); + } +} diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongCounter.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongCounter.java new file mode 100644 index 00000000000..f33b4784c53 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongCounter.java @@ -0,0 +1,39 @@ +/* + * 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.instruments; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.LongCounter; + +public class AttributedLongCounter { + + private final LongCounter baseCounter; + private final io.opentelemetry.api.common.Attributes attributes; + + public AttributedLongCounter(LongCounter baseCounter, Attributes attributes) { + this.baseCounter = baseCounter; + this.attributes = attributes; + } + + public void inc() { + add(1L); + } + + public void add(Long value) { + baseCounter.add(value, attributes); + } +} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrNoOpMetric.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongGauge.java similarity index 64% rename from solr/core/src/java/org/apache/solr/metrics/prometheus/SolrNoOpMetric.java rename to solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongGauge.java index 4d3dcbe87ab..5b34f0dc31a 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrNoOpMetric.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongGauge.java @@ -14,16 +14,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.solr.metrics.prometheus; +package org.apache.solr.metrics.otel.instruments; -public class SolrNoOpMetric extends SolrMetric { - public SolrNoOpMetric() {} +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.LongGauge; - @Override - public SolrMetric parseLabels() { - return this; +public class AttributedLongGauge { + + private final LongGauge gauge; + private final Attributes attributes; + + public AttributedLongGauge(LongGauge gauge, Attributes attributes) { + this.gauge = gauge; + this.attributes = attributes; } - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) {} + public void set(Long value) { + gauge.set(value, attributes); + } } diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongHistogram.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongHistogram.java new file mode 100644 index 00000000000..6984fadbfa5 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongHistogram.java @@ -0,0 +1,36 @@ +/* + * 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.instruments; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.LongHistogram; + +public class AttributedLongHistogram { + + protected final LongHistogram histogram; + protected final Attributes attributes; + + public AttributedLongHistogram( + LongHistogram histogram, io.opentelemetry.api.common.Attributes attributes) { + this.histogram = histogram; + this.attributes = attributes; + } + + public void record(Long value) { + histogram.record(value, attributes); + } +} diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongTimer.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongTimer.java new file mode 100644 index 00000000000..588a81507db --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongTimer.java @@ -0,0 +1,55 @@ +/* + * 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.instruments; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.LongHistogram; +import org.apache.solr.util.RTimer; + +/** + * This class records the elapsed time (in milliseconds) to a {@link LongHistogram} with the use of + * a {@link MetricTimer} + */ +public class AttributedLongTimer extends AttributedLongHistogram { + + public AttributedLongTimer(LongHistogram histogram, Attributes attributes) { + super(histogram, attributes); + } + + /** + * Return a {@link MetricTimer} and starts the timer. When the timer calls {@link + * MetricTimer#stop()}, the elapsed time is recorded + */ + public MetricTimer start() { + return new MetricTimer(this); + } + + public static class MetricTimer extends RTimer { + private final AttributedLongTimer bound; + + private MetricTimer(AttributedLongTimer bound) { + this.bound = bound; + } + + @Override + public double stop() { + double elapsedTime = super.stop(); + bound.record(Double.valueOf(elapsedTime).longValue()); + return elapsedTime; + } + } +} diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongUpDownCounter.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongUpDownCounter.java new file mode 100644 index 00000000000..91487c9e677 --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/AttributedLongUpDownCounter.java @@ -0,0 +1,43 @@ +/* + * 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.instruments; + +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.LongUpDownCounter; + +public class AttributedLongUpDownCounter { + + private final LongUpDownCounter upDownCounter; + private final Attributes attributes; + + public AttributedLongUpDownCounter(LongUpDownCounter upDownCounter, Attributes attributes) { + this.upDownCounter = upDownCounter; + this.attributes = attributes; + } + + public void inc() { + add(1L); + } + + public void dec() { + add(-1L); + } + + public void add(Long value) { + upDownCounter.add(value, attributes); + } +} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/package-info.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/package-info.java similarity index 74% rename from solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/package-info.java rename to solr/core/src/java/org/apache/solr/metrics/otel/instruments/package-info.java index c3c039c879e..fcbb9581d92 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/package-info.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/package-info.java @@ -16,7 +16,8 @@ */ /** - * The {@link org.apache.solr.metrics.prometheus.jetty.SolrPrometheusJettyFormatter} is responsible - * for exporting solr.jetty registry metrics to Prometheus. + * A collection of bound OTEL instruments which are reusable wrappers around OpenTelemetry metric + * instruments that are pre-bound to a fixed set of Attributes. This avoids repeated attribute + * allocation on every metric recording. */ -package org.apache.solr.metrics.prometheus.jetty; +package org.apache.solr.metrics.otel.instruments; diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/package-info.java b/solr/core/src/java/org/apache/solr/metrics/otel/package-info.java similarity index 79% rename from solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/package-info.java rename to solr/core/src/java/org/apache/solr/metrics/otel/package-info.java index 5150b3e2a19..91ec79ab3ff 100644 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/package-info.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/package-info.java @@ -16,7 +16,7 @@ */ /** - * The {@link org.apache.solr.metrics.prometheus.jvm.SolrPrometheusJvmFormatter} is responsible for - * exporting solr.jvm registry metrics to Prometheus. + * Interfaces for creating wrappers around Open Telemetry instruments created from {@link + * io.opentelemetry.api.metrics.MeterProvider} to record and measure metrics */ -package org.apache.solr.metrics.prometheus.jvm; +package org.apache.solr.metrics.otel; diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrMetric.java deleted file mode 100644 index e95316c0565..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrMetric.java +++ /dev/null @@ -1,57 +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.prometheus; - -import com.codahale.metrics.Metric; -import io.prometheus.metrics.model.snapshots.Labels; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -/** - * Base class is a wrapper to categorize and export {@link com.codahale.metrics.Metric} to {@link - * io.prometheus.metrics.model.snapshots.DataPointSnapshot} and register to a {@link - * SolrPrometheusFormatter}. {@link com.codahale.metrics.MetricRegistry} does not support tags - * unlike prometheus. Metrics registered to the registry need to be parsed out from the metric name - * to be exported to {@link io.prometheus.metrics.model.snapshots.DataPointSnapshot} - */ -public abstract class SolrMetric { - public Metric dropwizardMetric; - public String metricName; - public Map labels = new HashMap<>(); - - public SolrMetric() {} - - public SolrMetric(Metric dropwizardMetric, String metricName) { - this.dropwizardMetric = dropwizardMetric; - this.metricName = metricName; - } - - /* - * Parse labels from the Dropwizard Metric name to be exported - */ - public abstract SolrMetric parseLabels(); - - /* - * Export metric to Prometheus with labels - */ - public abstract void toPrometheus(SolrPrometheusFormatter formatter); - - public Labels getLabels() { - return Labels.of(new ArrayList<>(labels.keySet()), new ArrayList<>(labels.values())); - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusFormatter.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusFormatter.java deleted file mode 100644 index 5a8a2de4f04..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/SolrPrometheusFormatter.java +++ /dev/null @@ -1,225 +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.prometheus; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import com.codahale.metrics.Timer; -import io.prometheus.metrics.model.snapshots.CounterSnapshot; -import io.prometheus.metrics.model.snapshots.GaugeSnapshot; -import io.prometheus.metrics.model.snapshots.Labels; -import io.prometheus.metrics.model.snapshots.MetricMetadata; -import io.prometheus.metrics.model.snapshots.MetricSnapshot; -import io.prometheus.metrics.model.snapshots.MetricSnapshots; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Base class for all {@link SolrPrometheusFormatter} holding {@link MetricSnapshot}s. Can export - * {@link com.codahale.metrics.Metric} to {@link MetricSnapshot} to be outputted for {@link - * org.apache.solr.response.PrometheusResponseWriter} - */ -public abstract class SolrPrometheusFormatter { - protected final Map> metricCounters; - protected final Map> metricGauges; - - public SolrPrometheusFormatter() { - this.metricCounters = new HashMap<>(); - this.metricGauges = new HashMap<>(); - } - - /** - * Export {@link Metric} to {@link io.prometheus.metrics.model.snapshots.MetricSnapshot} and - * register the Snapshot - * - * @param dropwizardMetric the {@link Metric} to be exported - * @param metricName Dropwizard metric name - */ - public abstract void exportDropwizardMetric(Metric dropwizardMetric, String metricName); - - /** - * Categorize {@link Metric} based on the metric name - * - * @param dropwizardMetric the {@link Metric} to be exported - * @param metricName Dropwizard metric name - */ - public abstract SolrMetric categorizeMetric(Metric dropwizardMetric, String metricName); - - /** - * Export {@link Meter} to {@link - * io.prometheus.metrics.model.snapshots.CounterSnapshot.CounterDataPointSnapshot} and collect - * datapoint - * - * @param metricName name of metric after export - * @param dropwizardMetric the {@link Meter} to be exported - * @param labels label names and values to record - */ - public void exportMeter(String metricName, Meter dropwizardMetric, Labels labels) { - CounterSnapshot.CounterDataPointSnapshot dataPoint = - createCounterDatapoint((double) dropwizardMetric.getCount(), labels); - collectCounterDatapoint(metricName, dataPoint); - } - - /** - * Export {@link com.codahale.metrics.Counter} to {@link - * io.prometheus.metrics.model.snapshots.CounterSnapshot.CounterDataPointSnapshot} and collect - * datapoint - * - * @param metricName name of prometheus metric - * @param dropwizardMetric the {@link com.codahale.metrics.Counter} to be exported - * @param labels label names and values to record - */ - public void exportCounter( - String metricName, com.codahale.metrics.Counter dropwizardMetric, Labels labels) { - CounterSnapshot.CounterDataPointSnapshot dataPoint = - createCounterDatapoint((double) dropwizardMetric.getCount(), labels); - collectCounterDatapoint(metricName, dataPoint); - } - - /** - * Export {@link Timer} ands its mean rate to {@link - * io.prometheus.metrics.model.snapshots.GaugeSnapshot.GaugeDataPointSnapshot} and collect - * datapoint - * - * @param metricName name of prometheus metric - * @param dropwizardMetric the {@link Timer} to be exported - * @param labels label names and values to record - */ - public void exportTimer(String metricName, Timer dropwizardMetric, Labels labels) { - GaugeSnapshot.GaugeDataPointSnapshot dataPoint = - createGaugeDatapoint(dropwizardMetric.getSnapshot().getMean(), labels); - collectGaugeDatapoint(metricName, dataPoint); - } - - /** - * Export {@link Timer} ands its Count to {@link - * io.prometheus.metrics.model.snapshots.CounterSnapshot.CounterDataPointSnapshot} and collect - * datapoint - * - * @param metricName name of prometheus metric - * @param dropwizardMetric the {@link Timer} to be exported - * @param labels label names and values to record - */ - public void exportTimerCount(String metricName, Timer dropwizardMetric, Labels labels) { - CounterSnapshot.CounterDataPointSnapshot dataPoint = - createCounterDatapoint((double) dropwizardMetric.getCount(), labels); - collectCounterDatapoint(metricName, dataPoint); - } - - /** - * Export {@link com.codahale.metrics.Gauge} to {@link - * io.prometheus.metrics.model.snapshots.GaugeSnapshot.GaugeDataPointSnapshot} and collect to - * datapoint. Unlike other Dropwizard metric types, Gauges can have more complex types. In the - * case of a hashmap, collect each as an individual metric and have its key appended as a label to - * the metric called "item" - * - * @param metricName name of prometheus metric - * @param dropwizardMetricRaw the {@link com.codahale.metrics.Gauge} to be exported - * @param labels label names and values to record - */ - public void exportGauge( - String metricName, com.codahale.metrics.Gauge dropwizardMetricRaw, Labels labels) { - Object dropwizardMetric = (dropwizardMetricRaw).getValue(); - if (dropwizardMetric instanceof Number) { - GaugeSnapshot.GaugeDataPointSnapshot dataPoint = - createGaugeDatapoint(((Number) dropwizardMetric).doubleValue(), labels); - collectGaugeDatapoint(metricName, dataPoint); - } else if (dropwizardMetric instanceof HashMap itemsMap) { - for (Object item : itemsMap.keySet()) { - if (itemsMap.get(item) instanceof Number) { - GaugeSnapshot.GaugeDataPointSnapshot dataPoint = - createGaugeDatapoint( - ((Number) itemsMap.get(item)).doubleValue(), - labels.merge(Labels.of("item", (String) item))); - collectGaugeDatapoint(metricName, dataPoint); - } - } - } - } - - /** - * Create a {@link io.prometheus.metrics.model.snapshots.CounterSnapshot.CounterDataPointSnapshot} - * with labels - * - * @param value metric value - * @param labels set of name/values labels - */ - public CounterSnapshot.CounterDataPointSnapshot createCounterDatapoint( - double value, Labels labels) { - return CounterSnapshot.CounterDataPointSnapshot.builder().value(value).labels(labels).build(); - } - - /** - * Create a {@link io.prometheus.metrics.model.snapshots.GaugeSnapshot.GaugeDataPointSnapshot} - * with labels - * - * @param value metric value - * @param labels set of name/values labels - */ - public GaugeSnapshot.GaugeDataPointSnapshot createGaugeDatapoint(double value, Labels labels) { - return GaugeSnapshot.GaugeDataPointSnapshot.builder().value(value).labels(labels).build(); - } - - /** - * Collects {@link io.prometheus.metrics.model.snapshots.CounterSnapshot.CounterDataPointSnapshot} - * and appends to existing metric or create new metric if name does not exist - * - * @param metricName Name of metric - * @param dataPoint Counter datapoint to be collected - */ - public void collectCounterDatapoint( - String metricName, CounterSnapshot.CounterDataPointSnapshot dataPoint) { - if (!metricCounters.containsKey(metricName)) { - metricCounters.put(metricName, new ArrayList<>()); - } - metricCounters.get(metricName).add(dataPoint); - } - - /** - * Collects {@link io.prometheus.metrics.model.snapshots.GaugeSnapshot.GaugeDataPointSnapshot} and - * appends to existing metric or create new metric if name does not exist - * - * @param metricName Name of metric - * @param dataPoint Gauge datapoint to be collected - */ - public void collectGaugeDatapoint( - String metricName, GaugeSnapshot.GaugeDataPointSnapshot dataPoint) { - if (!metricGauges.containsKey(metricName)) { - metricGauges.put(metricName, new ArrayList<>()); - } - metricGauges.get(metricName).add(dataPoint); - } - - /** - * Returns an immutable {@link MetricSnapshots} from the {@link - * io.prometheus.metrics.model.snapshots.DataPointSnapshot}s collected from the registry - */ - public MetricSnapshots collect() { - ArrayList snapshots = new ArrayList<>(); - for (String metricName : metricCounters.keySet()) { - snapshots.add( - new CounterSnapshot(new MetricMetadata(metricName), metricCounters.get(metricName))); - } - for (String metricName : metricGauges.keySet()) { - snapshots.add( - new GaugeSnapshot(new MetricMetadata(metricName), metricGauges.get(metricName))); - } - return new MetricSnapshots(snapshots); - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java deleted file mode 100644 index b80b406d356..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/PrometheusCoreFormatterInfo.java +++ /dev/null @@ -1,33 +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.prometheus.core; - -public interface PrometheusCoreFormatterInfo { - /** Category of prefix Solr Core dropwizard handler metric names */ - enum CoreCategory { - ADMIN, - QUERY, - UPDATE, - REPLICATION, - TLOG, - CACHE, - SEARCHER, - HIGHLIGHTER, - INDEX, - CORE - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreCacheMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreCacheMetric.java deleted file mode 100644 index d4d9627c222..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreCacheMetric.java +++ /dev/null @@ -1,51 +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.prometheus.core; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** Dropwizard metrics of name CACHE.* */ -public class SolrCoreCacheMetric extends SolrCoreMetric { - public static final String CORE_CACHE_SEARCHER_METRICS = "solr_metrics_core_cache"; - - public SolrCoreCacheMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * CACHE.searcher.documentCache - */ - - @Override - public SolrCoreMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - if (dropwizardMetric instanceof Gauge) { - labels.put("cacheType", parsedMetric[2]); - } - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (dropwizardMetric instanceof Gauge) { - formatter.exportGauge(CORE_CACHE_SEARCHER_METRICS, (Gauge) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHandlerMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHandlerMetric.java deleted file mode 100644 index 9273e825759..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHandlerMetric.java +++ /dev/null @@ -1,77 +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.prometheus.core; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import com.codahale.metrics.Timer; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** Dropwizard metrics of name ADMIN/QUERY/UPDATE/REPLICATION.* */ -public class SolrCoreHandlerMetric extends SolrCoreMetric { - public static final String CORE_REQUESTS_TOTAL = "solr_metrics_core_requests"; - public static final String CORE_REQUESTS_UPDATE_HANDLER = "solr_metrics_core_update_handler"; - public static final String CORE_REQUESTS_TOTAL_TIME = "solr_metrics_core_requests_time"; - public static final String CORE_REQUEST_TIMES = "solr_metrics_core_average_request_time"; - - public SolrCoreHandlerMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * - * QUERY./select.totalTime - * UPDATE./update.requests - * UPDATE./update.totalTime - */ - - @Override - public SolrCoreMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("category", parsedMetric[0]); - labels.put("handler", parsedMetric[1]); - labels.put("type", parsedMetric[2]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (dropwizardMetric instanceof Meter) { - formatter.exportMeter(CORE_REQUESTS_TOTAL, (Meter) dropwizardMetric, getLabels()); - } else if (dropwizardMetric instanceof Counter) { - if (metricName.endsWith("requests")) { - formatter.exportCounter(CORE_REQUESTS_TOTAL, (Counter) dropwizardMetric, getLabels()); - } else if (metricName.endsWith("totalTime")) { - // Do not need type label for total time - labels.remove("type"); - formatter.exportCounter(CORE_REQUESTS_TOTAL_TIME, (Counter) dropwizardMetric, getLabels()); - } - } else if (dropwizardMetric instanceof Gauge) { - if (!metricName.endsWith("handlerStart")) { - formatter.exportGauge( - CORE_REQUESTS_UPDATE_HANDLER, (Gauge) dropwizardMetric, getLabels()); - } - } else if (dropwizardMetric instanceof Timer) { - // Do not need type label for request times - labels.remove("type"); - formatter.exportTimer(CORE_REQUEST_TIMES, (Timer) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHighlighterMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHighlighterMetric.java deleted file mode 100644 index d3da3d3426f..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreHighlighterMetric.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.prometheus.core; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** Dropwizard metrics of name HIGHLIGHTER.* */ -public class SolrCoreHighlighterMetric extends SolrCoreMetric { - public static final String CORE_HIGHLIGHER_METRICS = "solr_metrics_core_highlighter_requests"; - - public SolrCoreHighlighterMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * HIGHLIGHTER.SolrBoundaryScanner.default.requests - * HIGHLIGHTER.SolrFragmentsBuilder.colored.requests - */ - - @Override - public SolrCoreMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("type", parsedMetric[1]); - labels.put("item", parsedMetric[2]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - formatter.exportCounter(CORE_HIGHLIGHER_METRICS, (Counter) dropwizardMetric, getLabels()); - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreIndexMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreIndexMetric.java deleted file mode 100644 index e45e1e955bd..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreIndexMetric.java +++ /dev/null @@ -1,47 +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.prometheus.core; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** Dropwizard metrics of name INDEX.* */ -public class SolrCoreIndexMetric extends SolrCoreMetric { - public static final String CORE_INDEX_METRICS = "solr_metrics_core_index_size_bytes"; - - public SolrCoreIndexMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * INDEX.sizeInBytes - */ - - @Override - public SolrCoreMetric parseLabels() { - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (metricName.endsWith("sizeInBytes")) { - formatter.exportGauge(CORE_INDEX_METRICS, (Gauge) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreMetric.java deleted file mode 100644 index 59236b18629..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreMetric.java +++ /dev/null @@ -1,56 +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.prometheus.core; - -import com.codahale.metrics.Metric; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.apache.solr.common.SolrException; -import org.apache.solr.metrics.prometheus.SolrMetric; - -/** Base class is a wrapper to export a solr.core {@link com.codahale.metrics.Metric} */ -public abstract class SolrCoreMetric extends SolrMetric { - - public static Pattern CLOUD_CORE_PATTERN = - Pattern.compile( - "(?^core_(?.*)_(?shard[0-9]+)_(?replica_.[0-9]+)).(.*)$"); - public static Pattern STANDALONE_CORE_PATTERN = Pattern.compile("^core_(?.*?)\\.(.*)$"); - - public String coreName; - - public SolrCoreMetric(Metric dropwizardMetric, String metricName) { - // Remove Core Name prefix from metric as it is no longer needed for tag parsing from this point - super(dropwizardMetric, metricName.substring(metricName.indexOf(".") + 1)); - Matcher cloudPattern = CLOUD_CORE_PATTERN.matcher(metricName); - Matcher standalonePattern = STANDALONE_CORE_PATTERN.matcher(metricName); - if (cloudPattern.find()) { - coreName = cloudPattern.group("core"); - cloudPattern - .namedGroups() - .forEach((key, value) -> labels.put(key, cloudPattern.group(value))); - } else if (standalonePattern.find()) { - coreName = standalonePattern.group("core"); - standalonePattern - .namedGroups() - .forEach((key, value) -> labels.put(key, standalonePattern.group(value))); - } else { - throw new SolrException( - SolrException.ErrorCode.SERVER_ERROR, - "Core name does not match pattern for parsing in metric " + metricName); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreSearcherMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreSearcherMetric.java deleted file mode 100644 index 7ca694d311d..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreSearcherMetric.java +++ /dev/null @@ -1,64 +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.prometheus.core; - -import static org.apache.solr.metrics.prometheus.core.SolrCoreCacheMetric.CORE_CACHE_SEARCHER_METRICS; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import com.codahale.metrics.Timer; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** Dropwizard metrics of name SEARCHER.* */ -public class SolrCoreSearcherMetric extends SolrCoreMetric { - public static final String CORE_SEARCHER_METRICS = "solr_metrics_core_searcher_documents"; - public static final String CORE_SEARCHER_TIMES = "solr_metrics_core_average_searcher_warmup_time"; - - public SolrCoreSearcherMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * SEARCHER.searcher.deletedDocs - * SEARCHER.new.time - */ - - @Override - public SolrCoreMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - if (!(dropwizardMetric instanceof Counter)) { - labels.put("type", parsedMetric[2]); - } - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (dropwizardMetric instanceof Gauge) { - if (metricName.endsWith("liveDocsCache")) { - formatter.exportGauge( - CORE_CACHE_SEARCHER_METRICS, (Gauge) dropwizardMetric, getLabels()); - } else { - formatter.exportGauge(CORE_SEARCHER_METRICS, (Gauge) dropwizardMetric, getLabels()); - } - } else if (dropwizardMetric instanceof Timer) { - formatter.exportTimer(CORE_SEARCHER_TIMES, (Timer) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreTlogMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreTlogMetric.java deleted file mode 100644 index 7286c99d986..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrCoreTlogMetric.java +++ /dev/null @@ -1,51 +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.prometheus.core; - -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** Dropwizard metrics of name TLOG.* */ -public class SolrCoreTlogMetric extends SolrCoreMetric { - public static final String CORE_TLOG_METRICS = "solr_metrics_core_tlog"; - - public SolrCoreTlogMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * TLOG.buffered.ops - */ - - @Override - public SolrCoreMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - if (dropwizardMetric instanceof Meter) { - labels.put("item", parsedMetric[1]); - } - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (dropwizardMetric instanceof Meter) { - formatter.exportMeter(CORE_TLOG_METRICS, (Meter) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrPrometheusCoreFormatter.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrPrometheusCoreFormatter.java deleted file mode 100644 index dd3ed025ddf..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/SolrPrometheusCoreFormatter.java +++ /dev/null @@ -1,70 +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.prometheus.core; - -import com.codahale.metrics.Metric; -import com.google.common.base.Enums; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrNoOpMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** - * This class maintains a {@link io.prometheus.metrics.model.snapshots.MetricSnapshot}s exported - * from solr.core {@link com.codahale.metrics.MetricRegistry} - */ -public class SolrPrometheusCoreFormatter extends SolrPrometheusFormatter - implements PrometheusCoreFormatterInfo { - - public SolrPrometheusCoreFormatter() { - super(); - } - - @Override - public void exportDropwizardMetric(Metric dropwizardMetric, String metricName) { - SolrMetric solrCoreMetric = categorizeMetric(dropwizardMetric, metricName); - solrCoreMetric.parseLabels().toPrometheus(this); - } - - @Override - public SolrMetric categorizeMetric(Metric dropwizardMetric, String metricName) { - String metricCategory = metricName.split("\\.", 3)[1]; - if (!Enums.getIfPresent(PrometheusCoreFormatterInfo.CoreCategory.class, metricCategory) - .isPresent()) { - return new SolrNoOpMetric(); - } - switch (CoreCategory.valueOf(metricCategory)) { - case ADMIN: - case QUERY: - case UPDATE: - case REPLICATION: - return new SolrCoreHandlerMetric(dropwizardMetric, metricName); - case TLOG: - return new SolrCoreTlogMetric(dropwizardMetric, metricName); - case CACHE: - return new SolrCoreCacheMetric(dropwizardMetric, metricName); - case SEARCHER: - return new SolrCoreSearcherMetric(dropwizardMetric, metricName); - case HIGHLIGHTER: - return new SolrCoreHighlighterMetric(dropwizardMetric, metricName); - case INDEX: - return new SolrCoreIndexMetric(dropwizardMetric, metricName); - case CORE: - default: - return new SolrNoOpMetric(); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/package-info.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/core/package-info.java deleted file mode 100644 index acabe654867..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/core/package-info.java +++ /dev/null @@ -1,22 +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. - */ - -/** - * The {@link org.apache.solr.metrics.prometheus.core.SolrPrometheusCoreFormatter} is responsible - * for exporting solr.core registry metrics to Prometheus. - */ -package org.apache.solr.metrics.prometheus.core; diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyDispatchesMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyDispatchesMetric.java deleted file mode 100644 index cd057418845..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyDispatchesMetric.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.prometheus.jetty; - -import com.codahale.metrics.Metric; -import com.codahale.metrics.Timer; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name *.dispatches */ -public class SolrJettyDispatchesMetric extends SolrJettyMetric { - public static final String JETTY_DISPATCHES_TOTAL = "solr_metrics_jetty_dispatches"; - - public SolrJettyDispatchesMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * org.eclipse.jetty.server.handler.DefaultHandler.dispatches - */ - - @Override - public SolrMetric parseLabels() { - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - formatter.exportTimerCount(JETTY_DISPATCHES_TOTAL, (Timer) dropwizardMetric, getLabels()); - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyReqRespMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyReqRespMetric.java deleted file mode 100644 index 374f0bdfd59..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrJettyReqRespMetric.java +++ /dev/null @@ -1,65 +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.prometheus.jetty; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import com.codahale.metrics.Timer; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name *.xx-responses and *-requests */ -public class SolrJettyReqRespMetric extends SolrJettyMetric { - public static final String JETTY_RESPONSES_TOTAL = "solr_metrics_jetty_response"; - public static final String JETTY_REQUESTS_TOTAL = "solr_metrics_jetty_requests"; - - public SolrJettyReqRespMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * org.eclipse.jetty.server.handler.DefaultHandler.2xx-responses - * org.eclipse.jetty.server.handler.DefaultHandler.get-requests - */ - - @Override - public SolrMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - String label = parsedMetric[parsedMetric.length - 1].split("-")[0]; - if (metricName.endsWith("xx-responses")) { - labels.put("status", label); - } else { - labels.put("method", label); - } - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (metricName.endsWith("xx-responses")) { - formatter.exportMeter(JETTY_RESPONSES_TOTAL, (Meter) dropwizardMetric, getLabels()); - } else if (metricName.endsWith("-requests")) { - if (dropwizardMetric instanceof Counter) { - formatter.exportCounter(JETTY_REQUESTS_TOTAL, (Counter) dropwizardMetric, getLabels()); - } else if (dropwizardMetric instanceof Timer) { - formatter.exportTimerCount(JETTY_REQUESTS_TOTAL, (Timer) dropwizardMetric, getLabels()); - } - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrPrometheusJettyFormatter.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrPrometheusJettyFormatter.java deleted file mode 100644 index 88eae10d39f..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jetty/SolrPrometheusJettyFormatter.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.prometheus.jetty; - -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrNoOpMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** - * This class maintains a {@link io.prometheus.metrics.model.snapshots.MetricSnapshot}s exported - * from solr.jetty {@link com.codahale.metrics.MetricRegistry} - */ -public class SolrPrometheusJettyFormatter extends SolrPrometheusFormatter { - public SolrPrometheusJettyFormatter() { - super(); - } - - @Override - public void exportDropwizardMetric(Metric dropwizardMetric, String metricName) { - SolrMetric solrJettyMetric = categorizeMetric(dropwizardMetric, metricName); - solrJettyMetric.parseLabels().toPrometheus(this); - } - - @Override - public SolrMetric categorizeMetric(Metric dropwizardMetric, String metricName) { - if (metricName.endsWith("xx-responses") || metricName.endsWith("-requests")) { - return new SolrJettyReqRespMetric(dropwizardMetric, metricName); - } else if (metricName.endsWith(".dispatches")) { - return new SolrJettyDispatchesMetric(dropwizardMetric, metricName); - } else { - return new SolrNoOpMetric(); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/PrometheusJvmFormatterInfo.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/PrometheusJvmFormatterInfo.java deleted file mode 100644 index 660154ece4a..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/PrometheusJvmFormatterInfo.java +++ /dev/null @@ -1,30 +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.prometheus.jvm; - -public interface PrometheusJvmFormatterInfo { - /** Category of prefix Solr JVM dropwizard handler metric names */ - enum JvmCategory { - buffers, - gc, - memory, - os, - threads, - classes, - system - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmBuffersMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmBuffersMetric.java deleted file mode 100644 index 58f7ae697a5..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmBuffersMetric.java +++ /dev/null @@ -1,56 +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.prometheus.jvm; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name buffers.* */ -public class SolrJvmBuffersMetric extends SolrJvmMetric { - public static final String JVM_BUFFERS = "solr_metrics_jvm_buffers"; - public static final String JVM_BUFFERS_BYTES = "solr_metrics_jvm_buffers_bytes"; - - public SolrJvmBuffersMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * buffers.direct.MemoryUsed - * buffers.mapped.Count - */ - - @Override - public SolrJvmMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("pool", parsedMetric[1]); - labels.put("item", parsedMetric[2]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - String[] parsedMetric = metricName.split("\\."); - String metricType = parsedMetric[parsedMetric.length - 1]; - if (metricType.equals("Count")) { - formatter.exportGauge(JVM_BUFFERS, (Gauge) dropwizardMetric, getLabels()); - } else if (metricType.equals(("MemoryUsed")) || metricType.equals(("TotalCapacity"))) { - formatter.exportGauge(JVM_BUFFERS_BYTES, (Gauge) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmGcMetrics.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmGcMetrics.java deleted file mode 100644 index 7dbb8baa817..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmGcMetrics.java +++ /dev/null @@ -1,54 +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.prometheus.jvm; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name gc.* */ -public class SolrJvmGcMetrics extends SolrJvmMetric { - public static final String JVM_GC = "solr_metrics_jvm_gc"; - public static final String JVM_GC_SECONDS = "solr_metrics_jvm_gc_seconds"; - - public SolrJvmGcMetrics(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * gc.G1-Old-Generation.time - * gc.G1-Young-Generation.count - */ - - @Override - public SolrMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("item", parsedMetric[1]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (metricName.endsWith(".count")) { - formatter.exportGauge(JVM_GC, (Gauge) dropwizardMetric, getLabels()); - } else if (metricName.endsWith(".time")) { - formatter.exportGauge(JVM_GC_SECONDS, (Gauge) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMemoryMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMemoryMetric.java deleted file mode 100644 index 5ba1189c283..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmMemoryMetric.java +++ /dev/null @@ -1,65 +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.prometheus.jvm; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name memory.* */ -public class SolrJvmMemoryMetric extends SolrJvmMetric { - public static final String JVM_MEMORY_POOL_BYTES = "solr_metrics_jvm_memory_pools_bytes"; - public static final String JVM_MEMORY = "solr_metrics_jvm_heap"; - - public SolrJvmMemoryMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * memory.heap.usage - * memory.non-heap.committed - * memory.total.committed - * memory.pools.CodeHeap-'non-nmethods'.committed - */ - - @Override - public SolrMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("item", parsedMetric[parsedMetric.length - 1]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - String[] parsedMetric = metricName.split("\\."); - String metricType = parsedMetric[1]; - switch (metricType) { - case "heap": - case "non-heap": - case "total": - labels.put("memory", parsedMetric[1]); - formatter.exportGauge(JVM_MEMORY, (Gauge) dropwizardMetric, getLabels()); - break; - case "pools": - labels.put("space", parsedMetric[2]); - formatter.exportGauge(JVM_MEMORY_POOL_BYTES, (Gauge) dropwizardMetric, getLabels()); - break; - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmOsMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmOsMetric.java deleted file mode 100644 index 9b5d4ce1d69..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrJvmOsMetric.java +++ /dev/null @@ -1,58 +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.prometheus.jvm; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name os.* and threads.* */ -public class SolrJvmOsMetric extends SolrJvmMetric { - public static final String JVM_OS_THREADS = "solr_metrics_jvm_threads"; - public static final String JVM_OS = "solr_metrics_os"; - - public SolrJvmOsMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * os.availableProcessors - * threads.peak.count - */ - - @Override - public SolrMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - if (parsedMetric[0].equals("threads")) { - labels.put("item", parsedMetric[1]); - } else { - labels.put("item", parsedMetric[parsedMetric.length - 1]); - } - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (metricName.startsWith("threads.")) { - formatter.exportGauge(JVM_OS_THREADS, (Gauge) dropwizardMetric, getLabels()); - } else { - formatter.exportGauge(JVM_OS, (Gauge) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrPrometheusJvmFormatter.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrPrometheusJvmFormatter.java deleted file mode 100644 index 888a0cb9927..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/jvm/SolrPrometheusJvmFormatter.java +++ /dev/null @@ -1,61 +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.prometheus.jvm; - -import com.codahale.metrics.Metric; -import com.google.common.base.Enums; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrNoOpMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** - * This class maintains a {@link io.prometheus.metrics.model.snapshots.MetricSnapshot}s exported - * from solr.jvm {@link com.codahale.metrics.MetricRegistry} - */ -public class SolrPrometheusJvmFormatter extends SolrPrometheusFormatter - implements PrometheusJvmFormatterInfo { - public SolrPrometheusJvmFormatter() { - super(); - } - - @Override - public void exportDropwizardMetric(Metric dropwizardMetric, String metricName) { - SolrMetric solrJvmMetric = categorizeMetric(dropwizardMetric, metricName); - solrJvmMetric.parseLabels().toPrometheus(this); - } - - @Override - public SolrMetric categorizeMetric(Metric dropwizardMetric, String metricName) { - String metricCategory = metricName.split("\\.", 2)[0]; - if (!Enums.getIfPresent(JvmCategory.class, metricCategory).isPresent()) { - return new SolrNoOpMetric(); - } - switch (JvmCategory.valueOf(metricCategory)) { - case gc: - return new SolrJvmGcMetrics(dropwizardMetric, metricName); - case memory: - return new SolrJvmMemoryMetric(dropwizardMetric, metricName); - case os: - case threads: - return new SolrJvmOsMetric(dropwizardMetric, metricName); - case buffers: - return new SolrJvmBuffersMetric(dropwizardMetric, metricName); - default: - return new SolrNoOpMetric(); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/PrometheusNodeFormatterInfo.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/node/PrometheusNodeFormatterInfo.java deleted file mode 100644 index ab462751d60..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/PrometheusNodeFormatterInfo.java +++ /dev/null @@ -1,27 +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.prometheus.node; - -public interface PrometheusNodeFormatterInfo { - /** Category of prefix Solr Node dropwizard handler metric names */ - enum NodeCategory { - ADMIN, - UPDATE, - CONTAINER, - CACHE - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeContainerMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeContainerMetric.java deleted file mode 100644 index 2e3e16645c2..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeContainerMetric.java +++ /dev/null @@ -1,57 +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.prometheus.node; - -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name CONTAINER.* */ -public class SolrNodeContainerMetric extends SolrNodeMetric { - public static final String NODE_CORES = "solr_metrics_node_cores"; - public static final String NODE_CORE_FS_BYTES = "solr_metrics_node_core_root_fs_bytes"; - - public SolrNodeContainerMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * CONTAINER.fs.coreRoot.totalSpace - * CONTAINER.cores.loaded - */ - - @Override - public SolrMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("category", parsedMetric[0]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - String[] parsedMetric = metricName.split("\\."); - if (metricName.startsWith("CONTAINER.cores.")) { - labels.put("item", parsedMetric[2]); - formatter.exportGauge(NODE_CORES, (Gauge) dropwizardMetric, getLabels()); - } else if (metricName.startsWith("CONTAINER.fs.coreRoot.")) { - labels.put("item", parsedMetric[3]); - formatter.exportGauge(NODE_CORE_FS_BYTES, (Gauge) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeHandlerMetric.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeHandlerMetric.java deleted file mode 100644 index 25f014d677c..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrNodeHandlerMetric.java +++ /dev/null @@ -1,64 +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.prometheus.node; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/* Dropwizard metrics of name ADMIN.* and UPDATE.* */ -public class SolrNodeHandlerMetric extends SolrNodeMetric { - public static final String NODE_REQUESTS = "solr_metrics_node_requests"; - public static final String NODE_SECONDS_TOTAL = "solr_metrics_node_requests_time"; - public static final String NODE_CONNECTIONS = "solr_metrics_node_connections"; - - public SolrNodeHandlerMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - /* - * Metric examples being exported - * ADMIN./admin/collections.requests - * UPDATE.updateShardHandler.maxConnections - */ - - @Override - public SolrMetric parseLabels() { - String[] parsedMetric = metricName.split("\\."); - labels.put("category", parsedMetric[0]); - labels.put("handler", parsedMetric[1]); - labels.put("type", parsedMetric[2]); - return this; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) { - if (metricName.endsWith(".totalTime")) { - labels.remove("type"); - formatter.exportCounter(NODE_SECONDS_TOTAL, (Counter) dropwizardMetric, getLabels()); - } else if (metricName.endsWith("Connections")) { - formatter.exportGauge(NODE_CONNECTIONS, (Gauge) dropwizardMetric, getLabels()); - } else if (dropwizardMetric instanceof Meter) { - formatter.exportMeter(NODE_REQUESTS, (Meter) dropwizardMetric, getLabels()); - } else if (dropwizardMetric instanceof Counter) { - formatter.exportCounter(NODE_REQUESTS, (Counter) dropwizardMetric, getLabels()); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrPrometheusNodeFormatter.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrPrometheusNodeFormatter.java deleted file mode 100644 index eb542e05b77..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/SolrPrometheusNodeFormatter.java +++ /dev/null @@ -1,104 +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.prometheus.node; - -import static org.apache.solr.metrics.prometheus.node.SolrNodeMetric.NODE_THREAD_POOL; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import com.google.common.base.Enums; -import io.prometheus.metrics.model.snapshots.Labels; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrNoOpMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; - -/** - * This class maintains a {@link io.prometheus.metrics.model.snapshots.MetricSnapshot}s exported - * from solr.node {@link com.codahale.metrics.MetricRegistry} - */ -public class SolrPrometheusNodeFormatter extends SolrPrometheusFormatter - implements PrometheusNodeFormatterInfo { - public SolrPrometheusNodeFormatter() { - super(); - } - - @Override - public void exportDropwizardMetric(Metric dropwizardMetric, String metricName) { - if (metricName.contains(".threadPool.")) { - exportThreadPoolMetric(dropwizardMetric, metricName); - return; - } - - SolrMetric solrNodeMetric = categorizeMetric(dropwizardMetric, metricName); - solrNodeMetric.parseLabels().toPrometheus(this); - } - - @Override - public SolrMetric categorizeMetric(Metric dropwizardMetric, String metricName) { - String metricCategory = metricName.split("\\.", 2)[0]; - if (!Enums.getIfPresent(PrometheusNodeFormatterInfo.NodeCategory.class, metricCategory) - .isPresent()) { - return new SolrNoOpMetric(); - } - switch (NodeCategory.valueOf(metricCategory)) { - case ADMIN: - case UPDATE: - return new SolrNodeHandlerMetric(dropwizardMetric, metricName); - case CONTAINER: - return new SolrNodeContainerMetric(dropwizardMetric, metricName); - default: - return new SolrNoOpMetric(); - } - } - - /* - * Metric examples being exported - * ADMIN./admin/cores.threadPool.parallelCoreAdminExecutor.completed - * CONTAINER.threadPool.coreContainerWorkExecutor.completed - */ - private void exportThreadPoolMetric(Metric dropwizardMetric, String metricName) { - Labels labels; - String[] parsedMetric = metricName.split("\\."); - if (parsedMetric.length >= 5) { - labels = - Labels.of( - "category", - parsedMetric[0], - "handler", - parsedMetric[1], - "executer", - parsedMetric[3], - "task", - parsedMetric[parsedMetric.length - 1]); - } else { - labels = - Labels.of( - "category", - parsedMetric[0], - "executer", - parsedMetric[2], - "task", - parsedMetric[parsedMetric.length - 1]); - } - if (dropwizardMetric instanceof Counter) { - exportCounter(NODE_THREAD_POOL, (Counter) dropwizardMetric, labels); - } else if (dropwizardMetric instanceof Meter) { - exportMeter(NODE_THREAD_POOL, (Meter) dropwizardMetric, labels); - } - } -} diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/package-info.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/node/package-info.java deleted file mode 100644 index 64de64aa73c..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/node/package-info.java +++ /dev/null @@ -1,22 +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. - */ - -/** - * The {@link org.apache.solr.metrics.prometheus.node.SolrPrometheusNodeFormatter} is responsible - * for exporting solr.node registry metrics to Prometheus. - */ -package org.apache.solr.metrics.prometheus.node; diff --git a/solr/core/src/java/org/apache/solr/metrics/prometheus/package-info.java b/solr/core/src/java/org/apache/solr/metrics/prometheus/package-info.java deleted file mode 100644 index 68f0c2a983e..00000000000 --- a/solr/core/src/java/org/apache/solr/metrics/prometheus/package-info.java +++ /dev/null @@ -1,25 +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. - */ - -/** - * The {@link org.apache.solr.metrics.prometheus.SolrPrometheusFormatter} is responsible for - * collecting Prometheus metrics from exporting {@link com.codahale.metrics.Metric}'s from {@link - * com.codahale.metrics.MetricRegistry} {@link org.apache.solr.metrics.prometheus.SolrMetric} is a - * wrapper to export {@link com.codahale.metrics.Metric} to {@link - * io.prometheus.metrics.model.snapshots.DataPointSnapshot} - */ -package org.apache.solr.metrics.prometheus; diff --git a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java index 5919a0ec858..87147dbed11 100644 --- a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java @@ -16,36 +16,27 @@ */ package org.apache.solr.response; -import com.codahale.metrics.Histogram; -import com.codahale.metrics.Metric; -import com.codahale.metrics.MetricFilter; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.Timer; +import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; +import io.opentelemetry.sdk.metrics.SdkMeterProvider; import io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter; +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.InfoSnapshot; +import io.prometheus.metrics.model.snapshots.MetricSnapshot; +import io.prometheus.metrics.model.snapshots.MetricSnapshots; import java.io.IOException; import java.io.OutputStream; import java.lang.invoke.MethodHandles; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Consumer; -import java.util.function.Predicate; -import org.apache.solr.common.SolrException; -import org.apache.solr.common.util.NamedList; -import org.apache.solr.metrics.AggregateMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; -import org.apache.solr.metrics.prometheus.core.SolrPrometheusCoreFormatter; -import org.apache.solr.metrics.prometheus.jetty.SolrPrometheusJettyFormatter; -import org.apache.solr.metrics.prometheus.jvm.SolrPrometheusJvmFormatter; -import org.apache.solr.metrics.prometheus.node.SolrPrometheusNodeFormatter; +import org.apache.solr.handler.admin.MetricsHandler; import org.apache.solr.request.SolrQueryRequest; -import org.apache.solr.util.stats.MetricUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** - * Response writer for Prometheus metrics. This is used only by the {@link - * org.apache.solr.handler.admin.MetricsHandler} - */ +/** Response writer for Prometheus metrics. This is used only by the {@link MetricsHandler} */ @SuppressWarnings(value = "unchecked") public class PrometheusResponseWriter implements QueryResponseWriter { // not TextQueryResponseWriter because Prometheus libs work with an OutputStream @@ -57,13 +48,14 @@ public class PrometheusResponseWriter implements QueryResponseWriter { public void write( OutputStream out, SolrQueryRequest request, SolrQueryResponse response, String contentType) throws IOException { - NamedList prometheusRegistries = - (NamedList) response.getValues().get("metrics"); - var prometheusTextFormatWriter = new PrometheusTextFormatWriter(false); - for (Map.Entry prometheusRegistry : prometheusRegistries) { - var prometheusFormatter = (SolrPrometheusFormatter) prometheusRegistry.getValue(); - prometheusTextFormatWriter.write(out, prometheusFormatter.collect()); - } + + Map readers = + (Map) response.getValues().get("metrics"); + + List snapshots = + readers.values().stream().flatMap(r -> r.collect().stream()).toList(); + + new PrometheusTextFormatWriter(false).write(out, mergeSnapshots(snapshots)); } @Override @@ -72,75 +64,92 @@ public String getContentType(SolrQueryRequest request, SolrQueryResponse respons } /** - * Provides a representation of the given Dropwizard metric registry as {@link - * SolrPrometheusCoreFormatter}-s. Only those metrics are converted which match at least one of - * the given MetricFilter instances. - * - * @param registry the {@link MetricRegistry} to be converted - * @param shouldMatchFilters a list of {@link MetricFilter} instances. A metric must match any - * one of the filters from this list to be included in the output - * @param mustMatchFilter a {@link MetricFilter}. A metric must match this filter to be - * included in the output. - * @param propertyFilter limit what properties of a metric are returned - * @param skipHistograms discard any {@link Histogram}-s and histogram parts of {@link Timer}-s. - * @param skipAggregateValues discard internal values of {@link AggregateMetric}-s. - * @param compact use compact representation for counters and gauges. - * @param consumer consumer that accepts produced {@link SolrPrometheusCoreFormatter}-s + * Merge a collection of individual {@link MetricSnapshot} instances into one {@link + * MetricSnapshots}. This is necessary because we create a {@link SdkMeterProvider} per Solr core + * resulting in duplicate metric names across cores which is an illegal format if not under the + * same prometheus grouping. Merging metrics of the same name from multiple {@link + * PrometheusMetricReader}s avoids this illegal exposition format */ - public static void toPrometheus( - MetricRegistry registry, - String registryName, - List shouldMatchFilters, - MetricFilter mustMatchFilter, - Predicate propertyFilter, - boolean skipHistograms, - boolean skipAggregateValues, - boolean compact, - Consumer consumer) { - Map dropwizardMetrics = registry.getMetrics(); - var formatter = getFormatterType(registryName); - if (formatter == null) { - return; - } + private MetricSnapshots mergeSnapshots(List snapshots) { + Map counterSnapshotMap = new HashMap<>(); + Map gaugeSnapshotMap = new HashMap<>(); + Map histogramSnapshotMap = new HashMap<>(); + InfoSnapshot otelInfoSnapshots = null; - MetricUtils.toMaps( - registry, - shouldMatchFilters, - mustMatchFilter, - propertyFilter, - skipHistograms, - skipAggregateValues, - compact, - false, - (metricName, metric) -> { - try { - Metric dropwizardMetric = dropwizardMetrics.get(metricName); - formatter.exportDropwizardMetric(dropwizardMetric, metricName); - } catch (Exception e) { - throw new SolrException( - SolrException.ErrorCode.SERVER_ERROR, - "Error occurred exporting Dropwizard Metric to Prometheus", - e); - } - }); + for (MetricSnapshot snapshot : snapshots) { + String metricName = snapshot.getMetadata().getPrometheusName(); - consumer.accept(formatter); - } + switch (snapshot) { + case CounterSnapshot counterSnapshot -> { + counterSnapshotMap.computeIfAbsent( + metricName, + k -> { + var base = + CounterSnapshot.builder() + .name(counterSnapshot.getMetadata().getName()) + .help(counterSnapshot.getMetadata().getHelp()); + + return counterSnapshot.getMetadata().hasUnit() + ? base.unit(counterSnapshot.getMetadata().getUnit()) + : base; + }); + counterSnapshot.getDataPoints().forEach(counterSnapshotMap.get(metricName)::dataPoint); + } + case GaugeSnapshot gaugeSnapshot -> { + gaugeSnapshotMap.computeIfAbsent( + metricName, + k -> { + var base = + GaugeSnapshot.builder() + .name(gaugeSnapshot.getMetadata().getName()) + .help(gaugeSnapshot.getMetadata().getHelp()); - public static SolrPrometheusFormatter getFormatterType(String registryName) { - String[] parsedRegistry = registryName.split("\\."); + return gaugeSnapshot.getMetadata().hasUnit() + ? base.unit(gaugeSnapshot.getMetadata().getUnit()) + : base; + }); + gaugeSnapshot.getDataPoints().forEach(gaugeSnapshotMap.get(metricName)::dataPoint); + } + case HistogramSnapshot histogramSnapshot -> { + histogramSnapshotMap.computeIfAbsent( + metricName, + k -> { + var base = + HistogramSnapshot.builder() + .name(histogramSnapshot.getMetadata().getName()) + .help(histogramSnapshot.getMetadata().getHelp()); - switch (parsedRegistry[1]) { - case "core": - return new SolrPrometheusCoreFormatter(); - case "jvm": - return new SolrPrometheusJvmFormatter(); - case "jetty": - return new SolrPrometheusJettyFormatter(); - case "node": - return new SolrPrometheusNodeFormatter(); - default: - return null; + return histogramSnapshot.getMetadata().hasUnit() + ? base.unit(histogramSnapshot.getMetadata().getUnit()) + : base; + }); + histogramSnapshot + .getDataPoints() + .forEach(histogramSnapshotMap.get(metricName)::dataPoint); + } + case InfoSnapshot infoSnapshot -> { + // InfoSnapshot is a special case in that each SdkMeterProvider will create a duplicate + // metric called target_info containing OTEL SDK metadata. Only one of these need to be + // kept + if (otelInfoSnapshots == null) { + otelInfoSnapshots = + new InfoSnapshot(infoSnapshot.getMetadata(), infoSnapshot.getDataPoints()); + } + } + default -> { + log.warn( + "Unexpected snapshot type: {} for metric {}", + snapshot.getClass().getName(), + snapshot.getMetadata().getName()); + } + } } + + MetricSnapshots.Builder snapshotsBuilder = MetricSnapshots.builder(); + counterSnapshotMap.values().forEach(b -> snapshotsBuilder.metricSnapshot(b.build())); + gaugeSnapshotMap.values().forEach(b -> snapshotsBuilder.metricSnapshot(b.build())); + histogramSnapshotMap.values().forEach(b -> snapshotsBuilder.metricSnapshot(b.build())); + if (otelInfoSnapshots != null) snapshotsBuilder.metricSnapshot(otelInfoSnapshots); + return snapshotsBuilder.build(); } } diff --git a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java index 091dd984fa5..8251cd0be96 100644 --- a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java +++ b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java @@ -24,6 +24,7 @@ import com.github.benmanes.caffeine.cache.RemovalListener; import com.github.benmanes.caffeine.cache.stats.CacheStats; import com.google.common.annotations.VisibleForTesting; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.io.UncheckedIOException; import java.lang.invoke.MethodHandles; @@ -473,8 +474,10 @@ public String toString() { return name() + (cacheMap != null ? cacheMap.getValue().toString() : ""); } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); cacheMap = new MetricsMap( diff --git a/solr/core/src/java/org/apache/solr/search/QParserPlugin.java b/solr/core/src/java/org/apache/solr/search/QParserPlugin.java index 4917a083d60..9dcca155e8d 100644 --- a/solr/core/src/java/org/apache/solr/search/QParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/QParserPlugin.java @@ -16,6 +16,7 @@ */ package org.apache.solr.search; +import io.opentelemetry.api.common.Attributes; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -122,7 +123,8 @@ public Category getCategory() { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { // by default do nothing } diff --git a/solr/core/src/java/org/apache/solr/search/SolrFieldCacheBean.java b/solr/core/src/java/org/apache/solr/search/SolrFieldCacheBean.java index 85be7c8bf3d..58c1bdb55c1 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrFieldCacheBean.java +++ b/solr/core/src/java/org/apache/solr/search/SolrFieldCacheBean.java @@ -16,6 +16,7 @@ */ package org.apache.solr.search; +import io.opentelemetry.api.common.Attributes; import org.apache.solr.core.SolrInfoBean; import org.apache.solr.metrics.MetricsMap; import org.apache.solr.metrics.SolrMetricsContext; @@ -50,8 +51,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext; MetricsMap metricsMap = new MetricsMap( diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java index a2009aff65d..a90e341abcc 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java +++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java @@ -19,6 +19,7 @@ import static org.apache.solr.search.CpuAllowedLimit.TIMING_CONTEXT; import com.codahale.metrics.Gauge; +import io.opentelemetry.api.common.Attributes; import java.io.Closeable; import java.io.IOException; import java.lang.invoke.MethodHandles; @@ -591,9 +592,13 @@ public void register() { this.solrMetricsContext = core.getSolrMetricsContext().getChildContext(this); for (SolrCache cache : cacheList) { cache.initializeMetrics( - solrMetricsContext, SolrMetricManager.mkName(cache.name(), STATISTICS_KEY)); + // TODO SOLR-17458: Add Otel + solrMetricsContext, + Attributes.empty(), + SolrMetricManager.mkName(cache.name(), STATISTICS_KEY)); } - initializeMetrics(solrMetricsContext, STATISTICS_KEY); + // TODO SOLR-17458: Add Otel + initializeMetrics(solrMetricsContext, Attributes.empty(), STATISTICS_KEY); registerTime = new Date(); } @@ -2584,8 +2589,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { parentContext.gauge(() -> name, true, "searcherName", Category.SEARCHER.toString(), scope); parentContext.gauge(() -> cachingEnabled, true, "caching", Category.SEARCHER.toString(), scope); parentContext.gauge(() -> openTime, true, "openedAt", Category.SEARCHER.toString(), scope); diff --git a/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java b/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java index a3a8a7c15ca..78dfdd4d572 100644 --- a/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import io.opentelemetry.api.common.Attributes; import java.io.Closeable; import java.io.IOException; import java.io.StringWriter; @@ -260,8 +261,10 @@ public void setFormatter(AuditEventFormatter formatter) { this.formatter = formatter; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, final String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, final String scope) { solrMetricsContext = parentContext.getChildContext(this); String className = this.getClass().getSimpleName(); log.debug("Initializing metrics for {}", className); diff --git a/solr/core/src/java/org/apache/solr/security/AuthenticationPlugin.java b/solr/core/src/java/org/apache/solr/security/AuthenticationPlugin.java index 7c576020446..6a361ead29e 100644 --- a/solr/core/src/java/org/apache/solr/security/AuthenticationPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/AuthenticationPlugin.java @@ -19,6 +19,7 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Meter; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.Attributes; import jakarta.servlet.FilterChain; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequestWrapper; @@ -162,8 +163,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); // Metrics numErrors = this.solrMetricsContext.meter("errors", getCategory().toString(), scope); diff --git a/solr/core/src/java/org/apache/solr/security/MultiAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/MultiAuthPlugin.java index be9bf3e21e7..dab6b7b78c7 100644 --- a/solr/core/src/java/org/apache/solr/security/MultiAuthPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/MultiAuthPlugin.java @@ -16,6 +16,7 @@ */ package org.apache.solr.security; +import io.opentelemetry.api.common.Attributes; import jakarta.servlet.FilterChain; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -195,10 +196,13 @@ private void addWWWAuthenticateHeaders(HttpServletResponse response) { } } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { for (AuthenticationPlugin plugin : pluginMap.values()) { - plugin.initializeMetrics(parentContext, scope); + // TODO SOLR-17458: Add Otel + plugin.initializeMetrics(parentContext, Attributes.empty(), scope); } } diff --git a/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java b/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java index 5dc04422f78..d834d3b3c3b 100644 --- a/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java +++ b/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java @@ -18,6 +18,7 @@ import static org.apache.solr.common.SolrException.ErrorCode.SERVER_ERROR; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -129,9 +130,11 @@ public void inform(ResourceLoader loader) { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); - plugins.forEach(p -> p.initializeMetrics(solrMetricsContext, scope)); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); + // TODO SOLR-17458: Add Otel + plugins.forEach(p -> p.initializeMetrics(solrMetricsContext, Attributes.empty(), scope)); } @Override diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java index 4c55eaab9b5..cecf89be835 100644 --- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java +++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java @@ -17,6 +17,7 @@ package org.apache.solr.update; import com.codahale.metrics.Meter; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.lang.reflect.Array; @@ -205,8 +206,10 @@ public DirectUpdateHandler2(SolrCore core, UpdateHandler updateHandler) { } } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { if (core.getSolrConfig().getUpdateHandlerInfo().aggregateNodeLevelMetricsEnabled) { this.solrMetricsContext = new SolrDelegateRegistryMetricsContext( diff --git a/solr/core/src/java/org/apache/solr/update/PeerSync.java b/solr/core/src/java/org/apache/solr/update/PeerSync.java index 1de7cbe3d6a..a045e88958a 100644 --- a/solr/core/src/java/org/apache/solr/update/PeerSync.java +++ b/solr/core/src/java/org/apache/solr/update/PeerSync.java @@ -24,6 +24,7 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Timer; import com.google.common.annotations.VisibleForTesting; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.net.SocketException; @@ -142,8 +143,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); syncTime = solrMetricsContext.timer("time", scope, METRIC_SCOPE); syncErrors = solrMetricsContext.counter("errors", scope, METRIC_SCOPE); diff --git a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java index f46e0c161e7..f9acc0f0746 100644 --- a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java +++ b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java @@ -24,6 +24,7 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.List; @@ -97,8 +98,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); syncTime = solrMetricsContext.timer("time", scope, METRIC_SCOPE); syncErrors = solrMetricsContext.counter("errors", scope, METRIC_SCOPE); diff --git a/solr/core/src/java/org/apache/solr/update/UpdateLog.java b/solr/core/src/java/org/apache/solr/update/UpdateLog.java index c26eb7f77d7..e3f5423292f 100644 --- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java +++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java @@ -23,6 +23,7 @@ import com.carrotsearch.hppc.LongSet; import com.codahale.metrics.Gauge; import com.codahale.metrics.Meter; +import io.opentelemetry.api.common.Attributes; import java.io.Closeable; import java.io.IOException; import java.io.UncheckedIOException; @@ -626,8 +627,10 @@ protected void initTlogDir(SolrCore core) { } } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); bufferedOpsGauge = () -> { diff --git a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java index f03ef161441..38ee3f7d7ac 100644 --- a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java +++ b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java @@ -19,6 +19,7 @@ import static org.apache.solr.util.stats.InstrumentedHttpRequestExecutor.KNOWN_METRIC_NAME_STRATEGIES; import com.google.common.annotations.VisibleForTesting; +import io.opentelemetry.api.common.Attributes; import java.lang.invoke.MethodHandles; import java.util.Set; import java.util.concurrent.ExecutorService; @@ -201,12 +202,16 @@ public String getName() { return this.getClass().getName(); } + // TODO SOLR-17458: Add Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); String expandedScope = SolrMetricManager.mkName(scope, getCategory().name()); - trackHttpSolrMetrics.initializeMetrics(solrMetricsContext, expandedScope); - defaultConnectionManager.initializeMetrics(solrMetricsContext, expandedScope); + // TODO SOLR-17458: Add Otel + trackHttpSolrMetrics.initializeMetrics(solrMetricsContext, Attributes.empty(), expandedScope); + defaultConnectionManager.initializeMetrics( + solrMetricsContext, Attributes.empty(), expandedScope); updateExecutor = MetricUtils.instrumentedExecutorService( updateExecutor, diff --git a/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpListenerFactory.java b/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpListenerFactory.java index 6af4bccaad3..68436cfe76d 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpListenerFactory.java +++ b/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpListenerFactory.java @@ -20,6 +20,7 @@ import static org.apache.solr.metrics.SolrMetricManager.mkName; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.trace.Span; import java.util.Locale; import java.util.Map; @@ -124,8 +125,10 @@ private Timer timer(Request request) { return solrMetricsContext.timer(nameStrategy.getNameFor(scope, request)); } + // TODO SOLR-17458: Add Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext; this.scope = scope; } diff --git a/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpRequestExecutor.java b/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpRequestExecutor.java index e4be2d9b2fa..0473d9e0cee 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpRequestExecutor.java +++ b/solr/core/src/java/org/apache/solr/util/stats/InstrumentedHttpRequestExecutor.java @@ -20,6 +20,7 @@ import static org.apache.solr.metrics.SolrMetricManager.mkName; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.net.URISyntaxException; import java.util.Locale; @@ -152,7 +153,8 @@ private Timer timer(HttpRequest request) { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); this.scope = scope; } diff --git a/solr/core/src/java/org/apache/solr/util/stats/InstrumentedPoolingHttpClientConnectionManager.java b/solr/core/src/java/org/apache/solr/util/stats/InstrumentedPoolingHttpClientConnectionManager.java index 7229cf20a45..8174613c72a 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/InstrumentedPoolingHttpClientConnectionManager.java +++ b/solr/core/src/java/org/apache/solr/util/stats/InstrumentedPoolingHttpClientConnectionManager.java @@ -17,6 +17,7 @@ package org.apache.solr.util.stats; +import io.opentelemetry.api.common.Attributes; import org.apache.http.config.Registry; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; @@ -43,8 +44,10 @@ public SolrMetricsContext getSolrMetricsContext() { return solrMetricsContext; } + // TODO SOLR-17458: Migrate to Otel @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); solrMetricsContext.gauge( () -> getTotalStats().getAvailable(), diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java index 9cff065c06f..2cbdcc878ec 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java +++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java @@ -26,6 +26,10 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Snapshot; import com.codahale.metrics.Timer; +import io.opentelemetry.api.GlobalOpenTelemetry; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.common.AttributesBuilder; +import io.opentelemetry.sdk.metrics.SdkMeterProvider; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; @@ -51,6 +55,7 @@ import org.apache.solr.common.ConditionalKeyMapWriter; import org.apache.solr.common.IteratorWriter; import org.apache.solr.common.MapWriter; +import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrInfoBean; @@ -852,4 +857,8 @@ public static void addMXBeanMetrics( } } } + + public static SdkMeterProvider getMeterProvider() { + return (SdkMeterProvider) GlobalOpenTelemetry.getMeterProvider(); + } } diff --git a/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java b/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java index e81657ca2ae..51944b08703 100644 --- a/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java +++ b/solr/core/src/java/org/apache/solr/util/tracing/SimplePropagator.java @@ -16,12 +16,8 @@ */ package org.apache.solr.util.tracing; -import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.context.Context; import io.opentelemetry.context.ContextKey; -import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.TextMapGetter; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.context.propagation.TextMapSetter; @@ -54,19 +50,6 @@ public class SimplePropagator implements TextMapPropagator { private static final AtomicLong traceCounter = new AtomicLong(0); - private static volatile boolean loaded = false; - - public static synchronized Tracer load() { - if (!loaded) { - log.info("OpenTelemetry tracer enabled with simple propagation only."); - OpenTelemetry otel = - OpenTelemetry.propagating(ContextPropagators.create(SimplePropagator.getInstance())); - GlobalOpenTelemetry.set(otel); - loaded = true; - } - return TraceUtils.getGlobalTracer(); - } - public static TextMapPropagator getInstance() { return INSTANCE; } diff --git a/solr/core/src/test/org/apache/solr/SolrInfoBeanTest.java b/solr/core/src/test/org/apache/solr/SolrInfoBeanTest.java index c09be4fccfd..e8e61bc5fe5 100644 --- a/solr/core/src/test/org/apache/solr/SolrInfoBeanTest.java +++ b/solr/core/src/test/org/apache/solr/SolrInfoBeanTest.java @@ -16,6 +16,7 @@ */ package org.apache.solr; +import io.opentelemetry.api.common.Attributes; import java.net.URI; import java.net.URL; import java.nio.file.Files; @@ -64,7 +65,8 @@ public void testCallMBeanInfo() throws Exception { if (SolrInfoBean.class.isAssignableFrom(clazz)) { try { SolrInfoBean info = clazz.asSubclass(SolrInfoBean.class).getConstructor().newInstance(); - info.initializeMetrics(solrMetricsContext, scope); + // TODO SOLR-17458: Fix test later + info.initializeMetrics(solrMetricsContext, Attributes.empty(), scope); // System.out.println( info.getClass() ); assertNotNull(info.getClass().getCanonicalName(), info.getName()); 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 77d92378f1a..46bc29685ca 100644 --- a/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java +++ b/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java @@ -16,6 +16,7 @@ */ package org.apache.solr.blockcache; +import io.opentelemetry.api.common.Attributes; import java.math.BigDecimal; import java.util.Map; import org.apache.lucene.tests.util.TestUtil; @@ -42,7 +43,8 @@ public void setup() { String registry = TestUtil.randomSimpleString(random(), 2, 10); String scope = TestUtil.randomSimpleString(random(), 2, 10); SolrMetricsContext solrMetricsContext = new SolrMetricsContext(metricManager, registry, "foo"); - metrics.initializeMetrics(solrMetricsContext, scope); + // TODO SOLR-17458: Fix test later + metrics.initializeMetrics(solrMetricsContext, Attributes.empty(), scope); metricsMap = (MetricsMap) ((SolrMetricManager.GaugeWrapper) diff --git a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java index 90219220371..98f98456d7e 100644 --- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java +++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java @@ -98,94 +98,85 @@ public void execute( @Override public int execute(org.apache.commons.exec.CommandLine cmd) throws IOException { + String exe = cmd.getExecutable(); + assert (exe.endsWith("solr") || exe.endsWith("solr.cmd")); + // collect the commands as they are executed for analysis by the test commandsExecuted.add(cmd); - String exe = cmd.getExecutable(); - if (exe.endsWith("solr")) { - String[] args = cmd.getArguments(); - if ("start".equals(args[0])) { - if (hasFlag("--user-managed", args)) { - return startStandaloneSolr(args); - } + String[] args = cmd.getArguments(); + if ("start".equals(args[0])) { + if (hasFlag("--user-managed", args)) { + return startStandaloneSolr(args); + } - String solrHomeDir = getArg("--solr-home", args); - int port = Integer.parseInt(getArg("-p", args)); - Path solrXmlPath = Path.of(solrHomeDir).resolve("solr.xml"); - if (!Files.exists(solrXmlPath)) { - String solrServerDir = getArg("--server-dir", args); - solrXmlPath = Path.of(solrServerDir).resolve("solr").resolve("solr.xml"); + String solrHomeDir = getArg("--solr-home", args); + int port = Integer.parseInt(getArg("-p", args)); + Path solrXmlPath = Path.of(solrHomeDir).resolve("solr.xml"); + if (!Files.exists(solrXmlPath)) { + String solrServerDir = getArg("--server-dir", args); + solrXmlPath = Path.of(solrServerDir).resolve("solr").resolve("solr.xml"); + } + String solrxml = Files.readString(solrXmlPath, Charset.defaultCharset()); + + JettyConfig jettyConfig = JettyConfig.builder().setPort(port).build(); + try { + if (solrCloudCluster == null) { + Path logDir = createTempDir("solr_logs"); + System.setProperty("solr.log.dir", logDir.toString()); + System.setProperty("host", "localhost"); + System.setProperty("jetty.port", String.valueOf(port)); + solrCloudCluster = new MiniSolrCloudCluster(1, createTempDir(), solrxml, jettyConfig); + } else { + // another member of this cluster -- not supported yet, due to how + // MiniSolrCloudCluster works + throw new IllegalArgumentException( + "Only launching one SolrCloud node is supported by this test!"); } - String solrxml = Files.readString(solrXmlPath, Charset.defaultCharset()); - - JettyConfig jettyConfig = JettyConfig.builder().setPort(port).build(); - try { - if (solrCloudCluster == null) { - Path logDir = createTempDir("solr_logs"); - System.setProperty("solr.log.dir", logDir.toString()); - System.setProperty("host", "localhost"); - System.setProperty("jetty.port", String.valueOf(port)); - solrCloudCluster = new MiniSolrCloudCluster(1, createTempDir(), solrxml, jettyConfig); - } else { - // another member of this cluster -- not supported yet, due to how - // MiniSolrCloudCluster works - throw new IllegalArgumentException( - "Only launching one SolrCloud node is supported by this test!"); - } - } catch (Exception e) { - if (e instanceof RuntimeException) { - throw (RuntimeException) e; - } else { - throw new RuntimeException(e); - } + } catch (Exception e) { + if (e instanceof RuntimeException) { + throw (RuntimeException) e; + } else { + throw new RuntimeException(e); } - } else if ("stop".equals(args[0])) { + } + } else if ("stop".equals(args[0])) { - int port = Integer.parseInt(getArg("-p", args)); + int port = Integer.parseInt(getArg("-p", args)); - // stop the requested node - if (standaloneSolr != null) { - int localPort = standaloneSolr.getLocalPort(); - if (port == localPort) { - try { - standaloneSolr.stop(); - log.info("Stopped standalone Solr instance running on port {}", port); - } catch (Exception e) { - if (e instanceof RuntimeException) { - throw (RuntimeException) e; - } else { - throw new RuntimeException(e); - } + // stop the requested node + if (standaloneSolr != null) { + int localPort = standaloneSolr.getLocalPort(); + if (port == localPort) { + try { + standaloneSolr.stop(); + log.info("Stopped standalone Solr instance running on port {}", port); + } catch (Exception e) { + if (e instanceof RuntimeException) { + throw (RuntimeException) e; + } else { + throw new RuntimeException(e); } - } else { - throw new IllegalArgumentException("No Solr is running on port " + port); } } else { - if (solrCloudCluster != null) { - try { - solrCloudCluster.shutdown(); - log.info("Stopped SolrCloud test cluster"); - } catch (Exception e) { - if (e instanceof RuntimeException) { - throw (RuntimeException) e; - } else { - throw new RuntimeException(e); - } + throw new IllegalArgumentException("No Solr is running on port " + port); + } + } else { + if (solrCloudCluster != null) { + try { + solrCloudCluster.shutdown(); + log.info("Stopped SolrCloud test cluster"); + } catch (Exception e) { + if (e instanceof RuntimeException) { + throw (RuntimeException) e; + } else { + throw new RuntimeException(e); } - } else { - throw new IllegalArgumentException("No Solr nodes found to stop!"); } + } else { + throw new IllegalArgumentException("No Solr nodes found to stop!"); } } - } else { - String cmdLine = joinArgs(cmd.getArguments()); - log.info("Executing command: {}", cmdLine); - try { - return super.execute(cmd); - } catch (Exception exc) { - log.error("Execute command [{}] failed due to: {}", cmdLine, exc, exc); - throw exc; - } } return 0; diff --git a/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java b/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java index bb30a6e8f2d..5aa8ffec1ed 100644 --- a/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java +++ b/solr/core/src/test/org/apache/solr/core/TestTracerConfigurator.java @@ -39,9 +39,9 @@ public static void clearProperties() throws Exception { @Test public void configuratorClassDoesNotExistTest() { - assertTrue(TracerConfigurator.shouldAutoConfigOTEL()); + assertTrue(OpenTelemetryConfigurator.shouldAutoConfigOTEL()); SolrResourceLoader loader = new SolrResourceLoader(TEST_PATH().resolve("collection1")); - TracerConfigurator.loadTracer(loader, null); + OpenTelemetryConfigurator.initializeOpenTelemetrySdk(null, loader); assertEquals( "Expecting noop otel after failure to auto-init", TracerProvider.noop().get(null), @@ -52,7 +52,7 @@ public void configuratorClassDoesNotExistTest() { public void otelDisabledByProperty() { System.setProperty("otel.sdk.disabled", "true"); try { - assertFalse(TracerConfigurator.shouldAutoConfigOTEL()); + assertFalse(OpenTelemetryConfigurator.shouldAutoConfigOTEL()); } finally { System.clearProperty("otel.sdk.disabled"); } diff --git a/solr/core/src/test/org/apache/solr/handler/RequestHandlerBaseTest.java b/solr/core/src/test/org/apache/solr/handler/RequestHandlerBaseTest.java index c3f2f9bd865..b12a389dab3 100644 --- a/solr/core/src/test/org/apache/solr/handler/RequestHandlerBaseTest.java +++ b/solr/core/src/test/org/apache/solr/handler/RequestHandlerBaseTest.java @@ -17,15 +17,23 @@ package org.apache.solr.handler; +import static org.apache.solr.metrics.SolrMetricProducer.TYPE_ATTR; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import com.codahale.metrics.Counter; import com.codahale.metrics.Meter; import com.codahale.metrics.Timer; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.metrics.LongCounter; +import io.opentelemetry.api.metrics.LongHistogram; import java.util.Map; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.SolrException; @@ -44,8 +52,11 @@ /** Unit tests for the metric and exception handling in {@link RequestHandlerBase} */ public class RequestHandlerBaseTest extends SolrTestCaseJ4 { + public static final AttributeKey SOURCE_ATTR = AttributeKey.stringKey("source"); private SolrCore solrCore; private CoreContainer coreContainer; + private LongCounter mockLongCounter; + private LongHistogram mockLongHistogram; @BeforeClass public static void ensureWorkingMockito() { @@ -56,6 +67,8 @@ public static void ensureWorkingMockito() { public void initMocks() { solrCore = mock(SolrCore.class); coreContainer = mock(CoreContainer.class); + mockLongCounter = mock(LongCounter.class); + mockLongHistogram = mock(LongHistogram.class); } @Test @@ -65,9 +78,13 @@ public void testEachNonSolrExceptionIncrementsTheServerErrorCount() { RequestHandlerBase.processErrorMetricsOnException(e, metrics); - verify(metrics.numErrors).mark(); - verify(metrics.numServerErrors).mark(); - verifyNoInteractions(metrics.numClientErrors); + verify(mockLongCounter, never()) + .add( + eq(1L), + argThat( + attrs -> + "errors".equals(attrs.get(TYPE_ATTR)) + && "source".equals(attrs.get(AttributeKey.stringKey("client"))))); } @Test @@ -77,9 +94,20 @@ public void test409SolrExceptionsSkipMetricRecording() { RequestHandlerBase.processErrorMetricsOnException(e, metrics); - verifyNoInteractions(metrics.numErrors); - verifyNoInteractions(metrics.numServerErrors); - verifyNoInteractions(metrics.numClientErrors); + verify(mockLongCounter, never()) + .add( + eq(1L), + argThat( + attrs -> + "errors".equals(attrs.get(TYPE_ATTR)) + && "client".equals(attrs.get(SOURCE_ATTR)))); + verify(mockLongCounter, never()) + .add( + eq(1L), + argThat( + attrs -> + "errors".equals(attrs.get(TYPE_ATTR)) + && "server".equals(attrs.get(SOURCE_ATTR)))); } @Test @@ -89,9 +117,21 @@ public void testEach4xxSolrExceptionIncrementsTheClientErrorCount() { RequestHandlerBase.processErrorMetricsOnException(e, metrics); - verify(metrics.numErrors).mark(); - verify(metrics.numClientErrors).mark(); - verifyNoInteractions(metrics.numServerErrors); + verify(mockLongCounter, times(1)) + .add( + eq(1L), + argThat( + attrs -> + "errors".equals(attrs.get(TYPE_ATTR)) + && "client".equals(attrs.get(SOURCE_ATTR)))); + + verify(mockLongCounter, never()) + .add( + eq(1L), + argThat( + attrs -> + "errors".equals(attrs.get(TYPE_ATTR)) + && "server".equals(attrs.get(SOURCE_ATTR)))); } @Test @@ -171,10 +211,17 @@ public CoreContainer getCoreContainer() { // requires a MetricsManager, which requires ... private RequestHandlerBase.HandlerMetrics createHandlerMetrics() { final SolrMetricsContext metricsContext = mock(SolrMetricsContext.class); + when(metricsContext.timer(any(), any())).thenReturn(mock(Timer.class)); when(metricsContext.meter(any(), any())).then(invocation -> mock(Meter.class)); when(metricsContext.counter(any(), any())).thenReturn(mock(Counter.class)); - return new RequestHandlerBase.HandlerMetrics(metricsContext, "someBaseMetricPath"); + when(metricsContext.longCounter(any(), any())).thenReturn(mockLongCounter); + when(metricsContext.longHistogram(any(), any())).thenReturn(mockLongHistogram); + + return new RequestHandlerBase.HandlerMetrics( + metricsContext, + Attributes.of(AttributeKey.stringKey("scope"), "someBaseMetricPath"), + "someBaseMetricPath"); } } diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java index 05232b7f05e..e7395188bb0 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java @@ -16,6 +16,7 @@ */ package org.apache.solr.handler.admin; +import io.opentelemetry.api.common.Attributes; import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.Collections; @@ -171,7 +172,8 @@ public Category getCategory() { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); } @@ -183,6 +185,7 @@ public SolrMetricsContext getSolrMetricsContext() { bean.initializeMetrics( new SolrMetricsContext( h.getCoreContainer().getMetricManager(), "testMetricsSnapshot", "foobar"), + Attributes.empty(), "foo"); runSnapshots = true; Thread modifier = diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java index 4c3709f5ae5..c54da18a329 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java @@ -18,8 +18,7 @@ package org.apache.solr.handler.admin; import com.codahale.metrics.Counter; -import com.codahale.metrics.Gauge; -import com.codahale.metrics.SettableGauge; +import io.opentelemetry.api.common.Attributes; import io.prometheus.metrics.model.snapshots.CounterSnapshot; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; import io.prometheus.metrics.model.snapshots.Labels; @@ -35,12 +34,9 @@ import org.apache.solr.common.util.SimpleOrderedMap; import org.apache.solr.core.PluginBag; import org.apache.solr.core.PluginInfo; -import org.apache.solr.core.SolrCore; import org.apache.solr.handler.RequestHandlerBase; import org.apache.solr.metrics.MetricsMap; -import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricsContext; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.request.SolrRequestHandler; import org.apache.solr.response.SolrQueryResponse; @@ -50,6 +46,7 @@ import org.junit.Test; /** Test for {@link MetricsHandler} */ +// NOCOMMIT SOLR-17785: Lets move this to SolrCloudTestCase public class MetricsHandlerTest extends SolrTestCaseJ4 { @BeforeClass public static void beforeClass() throws Exception { @@ -67,15 +64,6 @@ public static void beforeClass() throws Exception { c = h.getCoreContainer().getMetricManager().counter(null, "solr.jetty", "solrtest_foo:bar"); c.inc(3); - // Manually register for Prometheus Formatter tests - registerGauge("solr.jvm", "gc.G1-Old-Generation.count"); - registerGauge("solr.jvm", "gc.G1-Old-Generation.time"); - registerGauge("solr.jvm", "memory.heap.committed"); - registerGauge("solr.jvm", "memory.pools.CodeHeap-'non-nmethods'.committed"); - registerGauge("solr.jvm", "threads.count"); - registerGauge("solr.jvm", "os.availableProcessors"); - registerGauge("solr.jvm", "buffers.direct.Count"); - registerGauge("solr.jvm", "buffers.direct.MemoryUsed"); h.getCoreContainer() .getMetricManager() .meter(null, "solr.jetty", "org.eclipse.jetty.server.handler.DefaultHandler.2xx-responses"); @@ -706,459 +694,6 @@ public void testExprMetrics() throws Exception { assertTrue(map.toString(), map.containsKey("count")); } - @Test - @SuppressWarnings("unchecked") - public void testPrometheusMetricsCore() throws Exception { - MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); - - SolrQueryResponse resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - MetricsHandler.COMPACT_PARAM, - "false", - CommonParams.WT, - "prometheus"), - resp); - - NamedList values = resp.getValues(); - assertNotNull(values.get("metrics")); - values = (NamedList) values.get("metrics"); - SolrPrometheusFormatter formatter = (SolrPrometheusFormatter) values.get("solr.core"); - assertNotNull(formatter); - MetricSnapshots actualSnapshots = formatter.collect(); - assertNotNull(actualSnapshots); - - MetricSnapshot actualSnapshot = - getMetricSnapshot(actualSnapshots, "solr_metrics_core_average_request_time"); - GaugeSnapshot.GaugeDataPointSnapshot actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, - Labels.of("category", "QUERY", "core", "collection1", "handler", "/select[shard]")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_core_requests"); - CounterSnapshot.CounterDataPointSnapshot actualCounterDataPoint = - getCounterDatapointSnapshot( - actualSnapshot, - Labels.of( - "category", - "QUERY", - "core", - "collection1", - "handler", - "/select[shard]", - "type", - "requests")); - assertEquals(0, actualCounterDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_core_cache"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, - Labels.of("cacheType", "fieldValueCache", "core", "collection1", "item", "hits")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_core_highlighter_requests"); - actualCounterDataPoint = - getCounterDatapointSnapshot( - actualSnapshot, - Labels.of("item", "default", "core", "collection1", "type", "SolrFragmenter")); - assertEquals(0, actualCounterDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_core_requests_time"); - actualCounterDataPoint = - getCounterDatapointSnapshot( - actualSnapshot, - Labels.of("category", "QUERY", "core", "collection1", "handler", "/select[shard]")); - assertEquals(0, actualCounterDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_core_searcher_documents"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, Labels.of("core", "collection1", "type", "numDocs")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_core_update_handler"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, - Labels.of( - "category", - "UPDATE", - "core", - "collection1", - "type", - "adds", - "handler", - "updateHandler")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - actualSnapshot = - getMetricSnapshot(actualSnapshots, "solr_metrics_core_average_searcher_warmup_time"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, Labels.of("core", "collection1", "type", "warmup")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - handler.close(); - } - - @Test - @SuppressWarnings("unchecked") - public void testPrometheusMetricsNode() throws Exception { - MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); - - SolrQueryResponse resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - MetricsHandler.COMPACT_PARAM, - "false", - CommonParams.WT, - "prometheus"), - resp); - - NamedList values = resp.getValues(); - assertNotNull(values.get("metrics")); - values = (NamedList) values.get("metrics"); - SolrPrometheusFormatter formatter = (SolrPrometheusFormatter) values.get("solr.node"); - assertNotNull(formatter); - MetricSnapshots actualSnapshots = formatter.collect(); - assertNotNull(actualSnapshots); - - MetricSnapshot actualSnapshot = - getMetricSnapshot(actualSnapshots, "solr_metrics_node_requests"); - - CounterSnapshot.CounterDataPointSnapshot actualCounterDataPoint = - getCounterDatapointSnapshot( - actualSnapshot, - Labels.of("category", "ADMIN", "handler", "/admin/info", "type", "requests")); - assertEquals(0, actualCounterDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_node_requests_time"); - actualCounterDataPoint = - getCounterDatapointSnapshot( - actualSnapshot, Labels.of("category", "ADMIN", "handler", "/admin/info")); - assertEquals(0, actualCounterDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_node_thread_pool"); - actualCounterDataPoint = - getCounterDatapointSnapshot( - actualSnapshot, - Labels.of( - "category", - "ADMIN", - "executer", - "parallelCoreAdminExecutor", - "handler", - "/admin/cores", - "task", - "completed")); - assertEquals(0, actualCounterDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_node_connections"); - GaugeSnapshot.GaugeDataPointSnapshot actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, - Labels.of( - "category", - "UPDATE", - "handler", - "updateShardHandler", - "item", - "availableConnections")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_node_core_root_fs_bytes"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, Labels.of("category", "CONTAINER", "item", "totalSpace")); - assertNotNull(actualGaugeDataPoint); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_node_cores"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, Labels.of("category", "CONTAINER", "item", "lazy")); - assertEquals(0, actualGaugeDataPoint.getValue(), 0); - - handler.close(); - } - - @Test - @SuppressWarnings("unchecked") - public void testPrometheusMetricsJvm() throws Exception { - // Some JVM metrics are non-deterministic due to testing environment such as - // availableProcessors. We confirm snapshot exists and is nonNull instead. - MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); - - SolrQueryResponse resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - MetricsHandler.COMPACT_PARAM, - "false", - CommonParams.WT, - "prometheus"), - resp); - - NamedList values = resp.getValues(); - assertNotNull(values.get("metrics")); - values = (NamedList) values.get("metrics"); - SolrPrometheusFormatter formatter = (SolrPrometheusFormatter) values.get("solr.jvm"); - assertNotNull(formatter); - MetricSnapshots actualSnapshots = formatter.collect(); - assertNotNull(actualSnapshots); - - MetricSnapshot actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jvm_threads"); - GaugeSnapshot.GaugeDataPointSnapshot actualGaugeDataPoint = - getGaugeDatapointSnapshot(actualSnapshot, Labels.of("item", "count")); - assertNotNull(actualGaugeDataPoint); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jvm_memory_pools_bytes"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, Labels.of("item", "committed", "space", "CodeHeap-'non-nmethods'")); - assertNotNull(actualGaugeDataPoint); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jvm_buffers"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot(actualSnapshot, Labels.of("item", "Count", "pool", "direct")); - assertNotNull(actualGaugeDataPoint); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jvm_heap"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot(actualSnapshot, Labels.of("item", "committed", "memory", "heap")); - assertNotNull(actualGaugeDataPoint); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jvm_buffers_bytes"); - actualGaugeDataPoint = - getGaugeDatapointSnapshot( - actualSnapshot, Labels.of("item", "MemoryUsed", "pool", "direct")); - assertNotNull(actualGaugeDataPoint); - - handler.close(); - } - - @Test - @SuppressWarnings("unchecked") - public void testPrometheusMetricsJetty() throws Exception { - MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); - - SolrQueryResponse resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - MetricsHandler.COMPACT_PARAM, - "false", - CommonParams.WT, - "prometheus"), - resp); - - NamedList values = resp.getValues(); - assertNotNull(values.get("metrics")); - values = (NamedList) values.get("metrics"); - SolrPrometheusFormatter formatter = (SolrPrometheusFormatter) values.get("solr.jetty"); - assertNotNull(formatter); - MetricSnapshots actualSnapshots = formatter.collect(); - assertNotNull(actualSnapshots); - - MetricSnapshot actualSnapshot = - getMetricSnapshot(actualSnapshots, "solr_metrics_jetty_response"); - CounterSnapshot.CounterDataPointSnapshot actualCounterDatapoint = - getCounterDatapointSnapshot(actualSnapshot, Labels.of("status", "2xx")); - assertEquals(0, actualCounterDatapoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jetty_requests"); - actualCounterDatapoint = - getCounterDatapointSnapshot(actualSnapshot, Labels.of("method", "active")); - assertEquals(0, actualCounterDatapoint.getValue(), 0); - - actualSnapshot = getMetricSnapshot(actualSnapshots, "solr_metrics_jetty_dispatches"); - actualCounterDatapoint = getCounterDatapointSnapshot(actualSnapshot, Labels.of()); - assertEquals(0, actualCounterDatapoint.getValue(), 0); - - handler.close(); - } - - @Test - @SuppressWarnings("unchecked") - public void testPrometheusMetricsFilter() throws Exception { - MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); - - SolrQueryResponse resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - CommonParams.WT, - "prometheus", - "group", - "core", - "type", - "counter", - "prefix", - "QUERY"), - resp); - - NamedList values = resp.getValues(); - assertNotNull(values.get("metrics")); - values = (NamedList) values.get("metrics"); - SolrPrometheusFormatter formatter = (SolrPrometheusFormatter) values.get("solr.core"); - assertNotNull(formatter); - MetricSnapshots actualSnapshots = formatter.collect(); - assertNotNull(actualSnapshots); - - actualSnapshots.forEach( - (k) -> { - k.getDataPoints() - .forEach( - (datapoint) -> { - assertTrue(datapoint instanceof CounterSnapshot.CounterDataPointSnapshot); - assertEquals("QUERY", datapoint.getLabels().get("category")); - }); - }); - - handler.close(); - } - - @Test - public void testMetricsUnload() throws Exception { - - SolrCore core = h.getCoreContainer().getCore("collection1"); - // .getRequestHandlers().put("/dumphandler", new DumpRequestHandler()); - RefreshablePluginHolder pluginHolder = null; - try { - PluginInfo info = - new PluginInfo( - SolrRequestHandler.TYPE, - Map.of("name", "/dumphandler", "class", DumpRequestHandler.class.getName())); - DumpRequestHandler requestHandler = new DumpRequestHandler(); - requestHandler.gaugevals = Map.of("d_k1", "v1", "d_k2", "v2"); - pluginHolder = new RefreshablePluginHolder(info, requestHandler); - core.getRequestHandlers().put("/dumphandler", pluginHolder); - - } finally { - core.close(); - } - - MetricsHandler handler = new MetricsHandler(h.getCoreContainer()); - - SolrQueryResponse resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - CommonParams.WT, - "json", - MetricsHandler.COMPACT_PARAM, - "true", - "key", - "solr.core.collection1:QUERY./dumphandler.dumphandlergauge"), - resp); - - assertEquals( - "v1", - resp.getValues() - ._getStr( - Arrays.asList( - "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k1"), - null)); - assertEquals( - "v2", - resp.getValues() - ._getStr( - Arrays.asList( - "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k2"), - null)); - pluginHolder.closeHandler(); - resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - CommonParams.WT, - "json", - MetricsHandler.COMPACT_PARAM, - "true", - "key", - "solr.core.collection1:QUERY./dumphandler.dumphandlergauge"), - resp); - - assertNull( - resp.getValues() - ._getStr( - Arrays.asList( - "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k1"), - null)); - assertNull( - resp.getValues() - ._getStr( - Arrays.asList( - "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k2"), - null)); - - DumpRequestHandler requestHandler = new DumpRequestHandler(); - requestHandler.gaugevals = Map.of("d_k1", "v1.1", "d_k2", "v2.1"); - pluginHolder.reset(requestHandler); - resp = new SolrQueryResponse(); - handler.handleRequestBody( - req( - CommonParams.QT, - "/admin/metrics", - CommonParams.WT, - "json", - MetricsHandler.COMPACT_PARAM, - "true", - "key", - "solr.core.collection1:QUERY./dumphandler.dumphandlergauge"), - resp); - - assertEquals( - "v1.1", - resp.getValues() - ._getStr( - Arrays.asList( - "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k1"), - null)); - assertEquals( - "v2.1", - resp.getValues() - ._getStr( - Arrays.asList( - "metrics", "solr.core.collection1:QUERY./dumphandler.dumphandlergauge", "d_k2"), - null)); - - handler.close(); - } - - public static void registerGauge(String registry, String metricName) { - Gauge metric = - new SettableGauge<>() { - @Override - public void setValue(Number value) {} - - @Override - public Number getValue() { - return 0; - } - }; - h.getCoreContainer() - .getMetricManager() - .registerGauge( - null, - registry, - metric, - "", - SolrMetricManager.ResolutionStrategy.IGNORE, - metricName, - ""); - } - private MetricSnapshot getMetricSnapshot(MetricSnapshots snapshots, String metricName) { return snapshots.stream() .filter(ss -> ss.getMetadata().getPrometheusName().equals(metricName)) @@ -1210,7 +745,8 @@ void closeHandler() throws Exception { void reset(DumpRequestHandler rh) { this.rh = rh; - if (metricsInfo != null) this.rh.initializeMetrics(metricsInfo, "/dumphandler"); + if (metricsInfo != null) + this.rh.initializeMetrics(metricsInfo, Attributes.empty(), "/dumphandler"); } @Override @@ -1235,8 +771,9 @@ public String getDescription() { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); MetricsMap metrics = new MetricsMap(map -> gaugevals.forEach((k, v) -> map.putNoEx(k, v))); solrMetricsContext.gauge(metrics, true, "dumphandlergauge", getCategory().toString(), scope); } diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricTest.java deleted file mode 100644 index 9ee34056e5e..00000000000 --- a/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricTest.java +++ /dev/null @@ -1,82 +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 io.prometheus.metrics.model.snapshots.Labels; -import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; -import org.apache.solr.metrics.prometheus.core.SolrCoreMetric; -import org.junit.Test; - -public class SolrCoreMetricTest extends SolrTestCaseJ4 { - - @Test - public void testStandaloneDefaultLabels() { - String dropwizardMetricName = "core_Core_Name.test_core_metric"; - - String expectedCoreName = "Core_Name"; - String expectedMetricName = "test_core_metric"; - Labels expectedLabels = Labels.of("core", expectedCoreName); - TestSolrCoreMetric testSolrCoreMetric = new TestSolrCoreMetric(null, dropwizardMetricName); - - assertEquals(expectedCoreName, testSolrCoreMetric.coreName); - assertEquals(expectedMetricName, testSolrCoreMetric.metricName); - assertEquals(expectedLabels, testSolrCoreMetric.getLabels()); - } - - @Test - public void testCloudDefaultLabels() { - String dropwizardMetricName = "core_Collection_Name_shard1_replica_n1.test_core_metric"; - - String expectedCoreName = "core_Collection_Name_shard1_replica_n1"; - String expectedMetricName = "test_core_metric"; - String expectedCollectionName = "Collection_Name"; - String expectedShardName = "shard1"; - String expectedReplicaName = "replica_n1"; - - Labels expectedLabels = - Labels.of( - "core", - expectedCoreName, - "collection", - expectedCollectionName, - "shard", - expectedShardName, - "replica", - expectedReplicaName); - TestSolrCoreMetric testSolrCoreMetric = new TestSolrCoreMetric(null, dropwizardMetricName); - - assertEquals(expectedCoreName, testSolrCoreMetric.coreName); - assertEquals(expectedMetricName, testSolrCoreMetric.metricName); - assertEquals(expectedLabels, testSolrCoreMetric.getLabels()); - } - - static class TestSolrCoreMetric extends SolrCoreMetric { - public TestSolrCoreMetric(Metric dropwizardMetric, String metricName) { - super(dropwizardMetric, metricName); - } - - @Override - public SolrCoreMetric parseLabels() { - return null; - } - - @Override - public void toPrometheus(SolrPrometheusFormatter formatter) {} - } -} 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 730fe0989aa..7d5d029ed9e 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java @@ -20,10 +20,27 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Metric; import com.codahale.metrics.MetricRegistry; +import com.google.common.util.concurrent.AtomicDouble; +import io.opentelemetry.api.metrics.DoubleCounter; +import io.opentelemetry.api.metrics.DoubleGauge; +import io.opentelemetry.api.metrics.DoubleHistogram; +import io.opentelemetry.api.metrics.DoubleUpDownCounter; +import io.opentelemetry.api.metrics.LongCounter; +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.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.MetricSnapshots; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util.Set; +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; @@ -34,7 +51,9 @@ import org.junit.Test; public class SolrMetricManagerTest extends SolrTestCaseJ4 { + final String METER_PROVIDER_NAME = "test_provider_name"; + // NOCOMMIT: We might not be supported core swapping in 10. Maybe remove this test @Test public void testSwapRegistries() { Random r = random(); @@ -76,6 +95,8 @@ public void testSwapRegistries() { } } + // 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(); @@ -104,6 +125,8 @@ public void testRegisterAll() throws Exception { registryName, mr, SolrMetricManager.ResolutionStrategy.ERROR)); } + // NOCOMMIT: Migration of this to OTEL isn't possible. You can only delete the whole + // sdkMeterProvider and all it's recorded metrics @Test public void testClearMetrics() { Random r = random(); @@ -270,4 +293,394 @@ private PluginInfo createPluginInfo(String name, String group, String registry) initArgs.add("configurable", "true"); return new PluginInfo("SolrMetricReporter", attrs, initArgs, null); } + + @Test + public void testLongCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongCounter counter = + metricManager.longCounter(METER_PROVIDER_NAME, "my_counter", "desc", null); + counter.add(5); + counter.add(3); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + CounterSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("my_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long counter metric not found")); + assertEquals(8, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testLongUpDownCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongUpDownCounter c = + metricManager.longUpDownCounter(METER_PROVIDER_NAME, "long_updown_counter", "desc", null); + c.add(10); + c.add(-4); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("long_updown_counter")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long up down counter metric not found")); + assertEquals(6, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testDoubleUpDownCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + DoubleUpDownCounter counter = + metricManager.doubleUpDownCounter( + METER_PROVIDER_NAME, "double_updown_counter", "desc", null); + counter.add(10.0); + counter.add(-5.5); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("double_updown_counter")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double up down counter metric not found")); + assertEquals(4.5, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testDoubleCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + DoubleCounter counter = + metricManager.doubleCounter(METER_PROVIDER_NAME, "double_counter", "desc", null); + counter.add(10.0); + counter.add(5.5); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + CounterSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("double_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double counter metric not found")); + assertEquals(15.5, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testDoubleHistogram() { + SolrMetricManager metricManager = new SolrMetricManager(); + DoubleHistogram histogram = + metricManager.doubleHistogram(METER_PROVIDER_NAME, "double_histogram", "desc", null); + histogram.record(1.1); + histogram.record(2.2); + histogram.record(3.3); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + HistogramSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("double_histogram")) + .map(HistogramSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double histogram metric not found")); + + assertEquals(3, actual.getDataPoints().getFirst().getCount()); + assertEquals(6.6, actual.getDataPoints().getFirst().getSum(), 0.0); + } + + @Test + public void testLongHistogram() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongHistogram histogram = + metricManager.longHistogram(METER_PROVIDER_NAME, "long_histogram", "desc", null); + histogram.record(1); + histogram.record(2); + histogram.record(3); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + HistogramSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("long_histogram")) + .map(HistogramSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long histogram metric not found")); + + assertEquals(3, actual.getDataPoints().getFirst().getCount()); + assertEquals(6.0, actual.getDataPoints().getFirst().getSum(), 0.0); + } + + @Test + public void testDoubleGauge() { + SolrMetricManager metricManager = new SolrMetricManager(); + DoubleGauge gauge = + metricManager.doubleGauge(METER_PROVIDER_NAME, "double_gauge", "desc", null); + gauge.set(10.0); + gauge.set(5.5); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("double_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + assertEquals(5.5, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testLongGauge() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongGauge gauge = metricManager.longGauge(METER_PROVIDER_NAME, "long_gauge", "desc", null); + gauge.set(10); + gauge.set(5); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("long_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long gauge metric not found")); + + assertEquals(5.0, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testObservableLongCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongAdder val = new LongAdder(); + metricManager.observableLongCounter( + METER_PROVIDER_NAME, "obs_long_counter", "desc", m -> m.record(val.longValue()), null); + val.add(10); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + CounterSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long counter metric not found")); + + assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + + val.add(20); + metrics = reader.collect(); + actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long counter metric not found")); + + // Observable metrics value changes anytime metricReader collects() to trigger callback + assertEquals(30.0, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testObservableDoubleCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + DoubleAdder val = new DoubleAdder(); + metricManager.observableDoubleCounter( + METER_PROVIDER_NAME, "obs_double_counter", "desc", m -> m.record(val.doubleValue()), null); + val.add(10.0); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + CounterSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + + assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + + val.add(0.1); + metrics = reader.collect(); + actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + + // Observable metrics value changes anytime metricReader collects() to trigger callback + assertEquals(10.1, actual.getDataPoints().getFirst().getValue(), 1e-6); + } + + @Test + public void testObservableLongGauge() { + SolrMetricManager metricManager = new SolrMetricManager(); + AtomicLong val = new AtomicLong(); + metricManager.observableLongGauge( + METER_PROVIDER_NAME, "obs_long_gauge", "desc", m -> m.record(val.get()), null); + val.set(10L); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long gauge metric not found")); + + assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + + val.set(20L); + metrics = reader.collect(); + actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long gauge metric not found")); + + // Observable metrics value changes anytime metricReader collects() to trigger callback + assertEquals(20.0, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testObservableDoubleGauge() { + SolrMetricManager metricManager = new SolrMetricManager(); + AtomicDouble val = new AtomicDouble(); + metricManager.observableDoubleGauge( + METER_PROVIDER_NAME, "obs_double_gauge", "desc", m -> m.record(val.get()), null); + val.set(10.0); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + + assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + + val.set(10.1); + metrics = reader.collect(); + actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + + // Observable metrics value changes anytime metricReader collects() to trigger callback + assertEquals(10.1, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testObservableLongUpDownCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongAdder val = new LongAdder(); + metricManager.observableLongUpDownCounter( + METER_PROVIDER_NAME, "obs_long_updown_gauge", "desc", m -> m.record(val.longValue()), null); + val.add(10L); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_updown_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long up down metric not found")); + + assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + + val.add(-20L); + metrics = reader.collect(); + actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_updown_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Long up down metric not found")); + + // Observable metrics value changes anytime metricReader collects() to trigger callback + assertEquals(-10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + } + + @Test + public void testObservableDoubleUpDownCounter() { + SolrMetricManager metricManager = new SolrMetricManager(); + DoubleAdder val = new DoubleAdder(); + metricManager.observableDoubleUpDownCounter( + METER_PROVIDER_NAME, + "obs_double_updown_gauge", + "desc", + m -> m.record(val.doubleValue()), + null); + val.add(10.0); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + + GaugeSnapshot actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_updown_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double up down gauge metric not found")); + + assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); + + val.add(-20.1); + metrics = reader.collect(); + actual = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_updown_gauge")) + .map(GaugeSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("Double up down gauge metric not found")); + + // Observable metrics value changes anytime metricReader collects() to trigger callback + assertEquals(-10.1, actual.getDataPoints().getFirst().getValue(), 1e-6); + } + + @Test + public void testCloseMeterProviders() { + SolrMetricManager metricManager = new SolrMetricManager(); + LongCounter counter = + metricManager.longCounter(METER_PROVIDER_NAME, "my_counter", "desc", null); + counter.add(5); + + PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + MetricSnapshots metrics = reader.collect(); + CounterSnapshot data = + metrics.stream() + .filter(m -> m.getMetadata().getPrometheusName().equals("my_counter")) + .map(CounterSnapshot.class::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("LongCounter metric not found")); + assertEquals(5, data.getDataPoints().getFirst().getValue(), 0.0); + + metricManager.closeMeterProvider(METER_PROVIDER_NAME); + + assertNull(metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME)); + } } diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java index e1cd960eb15..d22e520d207 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricTestUtils.java @@ -17,6 +17,7 @@ package org.apache.solr.metrics; import com.codahale.metrics.Counter; +import io.opentelemetry.api.common.Attributes; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -88,7 +89,8 @@ public static SolrMetricProducer getProducerOf( SolrMetricsContext solrMetricsContext; @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { this.solrMetricsContext = parentContext.getChildContext(this); if (category == null) { throw new IllegalArgumentException("null category"); diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java deleted file mode 100644 index 76077385800..00000000000 --- a/solr/core/src/test/org/apache/solr/metrics/SolrPrometheusFormatterTest.java +++ /dev/null @@ -1,203 +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 static org.apache.solr.metrics.prometheus.core.SolrCoreMetric.CLOUD_CORE_PATTERN; -import static org.apache.solr.metrics.prometheus.core.SolrCoreMetric.STANDALONE_CORE_PATTERN; - -import com.codahale.metrics.Counter; -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Meter; -import com.codahale.metrics.Metric; -import com.codahale.metrics.SettableGauge; -import com.codahale.metrics.Timer; -import io.prometheus.metrics.model.snapshots.CounterSnapshot; -import io.prometheus.metrics.model.snapshots.GaugeSnapshot; -import io.prometheus.metrics.model.snapshots.Labels; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.regex.Matcher; -import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.metrics.prometheus.SolrMetric; -import org.apache.solr.metrics.prometheus.SolrPrometheusFormatter; -import org.junit.Test; - -public class SolrPrometheusFormatterTest extends SolrTestCaseJ4 { - @Test - public void testExportMeter() { - TestSolrPrometheusFormatter testFormatter = new TestSolrPrometheusFormatter(); - String expectedMetricName = "test_metric"; - Meter metric = new Meter(); - metric.mark(123); - Labels expectedLabels = Labels.of("test", "test-value"); - - testFormatter.exportMeter(expectedMetricName, metric, expectedLabels); - assertTrue(testFormatter.getMetricCounters().containsKey(expectedMetricName)); - - CounterSnapshot.CounterDataPointSnapshot actual = - testFormatter.getMetricCounters().get("test_metric").get(0); - assertEquals(123.0, actual.getValue(), 0); - assertEquals(expectedLabels, actual.getLabels()); - } - - @Test - public void testExportCounter() { - TestSolrPrometheusFormatter testFormatter = new TestSolrPrometheusFormatter(); - String expectedMetricName = "test_metric"; - Counter metric = new Counter(); - metric.inc(123); - Labels expectedLabels = Labels.of("test", "test-value"); - - testFormatter.exportCounter(expectedMetricName, metric, expectedLabels); - assertTrue(testFormatter.getMetricCounters().containsKey(expectedMetricName)); - - CounterSnapshot.CounterDataPointSnapshot actual = - testFormatter.getMetricCounters().get("test_metric").get(0); - assertEquals(123.0, actual.getValue(), 0); - assertEquals(expectedLabels, actual.getLabels()); - } - - @Test - public void testExportTimer() throws InterruptedException { - TestSolrPrometheusFormatter testFormatter = new TestSolrPrometheusFormatter(); - String expectedMetricName = "test_metric"; - Timer metric = new Timer(); - Timer.Context context = metric.time(); - TimeUnit.SECONDS.sleep(5); - context.stop(); - - Labels expectedLabels = Labels.of("test", "test-value"); - testFormatter.exportTimer(expectedMetricName, metric, expectedLabels); - assertTrue(testFormatter.getMetricGauges().containsKey(expectedMetricName)); - - GaugeSnapshot.GaugeDataPointSnapshot actual = - testFormatter.getMetricGauges().get("test_metric").get(0); - assertEquals(5000000000L, actual.getValue(), 500000000L); - assertEquals(expectedLabels, actual.getLabels()); - } - - @Test - public void testExportGaugeNumber() throws InterruptedException { - TestSolrPrometheusFormatter testFormatter = new TestSolrPrometheusFormatter(); - String expectedMetricName = "test_metric"; - Gauge metric = - new SettableGauge<>() { - @Override - public void setValue(Number value) {} - - @Override - public Number getValue() { - return 123.0; - } - }; - - Labels expectedLabels = Labels.of("test", "test-value"); - testFormatter.exportGauge(expectedMetricName, metric, expectedLabels); - assertTrue(testFormatter.getMetricGauges().containsKey(expectedMetricName)); - - GaugeSnapshot.GaugeDataPointSnapshot actual = - testFormatter.getMetricGauges().get("test_metric").get(0); - assertEquals(123.0, actual.getValue(), 0); - assertEquals(expectedLabels, actual.getLabels()); - } - - @Test - public void testExportGaugeMap() throws InterruptedException { - TestSolrPrometheusFormatter testFormatter = new TestSolrPrometheusFormatter(); - String expectedMetricName = "test_metric"; - Gauge> metric = - new SettableGauge<>() { - @Override - public void setValue(Map value) {} - - @Override - public Map getValue() { - final Map expected = new HashMap<>(); - expected.put("test-item", 123.0); - return expected; - } - }; - - Labels labels = Labels.of("test", "test-value"); - testFormatter.exportGauge(expectedMetricName, metric, labels); - assertTrue(testFormatter.getMetricGauges().containsKey(expectedMetricName)); - - GaugeSnapshot.GaugeDataPointSnapshot actual = - testFormatter.getMetricGauges().get("test_metric").get(0); - assertEquals(123.0, actual.getValue(), 0); - Labels expectedLabels = Labels.of("test", "test-value", "item", "test-item"); - assertEquals(expectedLabels, actual.getLabels()); - } - - @Test - public void testCloudCorePattern() { - String metricName = "core_test-core_shard2_replica_t123.TEST./foobar/endpoint"; - Matcher m = CLOUD_CORE_PATTERN.matcher(metricName); - assertTrue(m.find()); - assertEquals("core_test-core_shard2_replica_t123", m.group("core")); - assertEquals("test-core", m.group("collection")); - assertEquals("shard2", m.group("shard")); - assertEquals("replica_t123", m.group("replica")); - - metricName = "core_foo_bar_shard24_replica_p8.QUERY.random.metric-name"; - m = CLOUD_CORE_PATTERN.matcher(metricName); - assertTrue(m.matches()); - assertEquals("core_foo_bar_shard24_replica_p8", m.group("core")); - assertEquals("foo_bar", m.group("collection")); - assertEquals("shard24", m.group("shard")); - assertEquals("replica_p8", m.group("replica")); - } - - @Test - public void testBadCloudCorePattern() { - String badMetricName = "core_solrtest_shard100_replica_xyz23.TEST./foobar/endpoint"; - Matcher m = CLOUD_CORE_PATTERN.matcher(badMetricName); - assertFalse(m.matches()); - - badMetricName = "core_solrtest_shards100_replica_x23.QUERY.random.metric-name"; - m = CLOUD_CORE_PATTERN.matcher(badMetricName); - assertFalse(m.matches()); - } - - @Test - public void testStandaloneCorePattern() { - String metricName = "core_test-core.TEST./foobar/endpoint"; - Matcher m = STANDALONE_CORE_PATTERN.matcher(metricName); - assertTrue(m.find()); - assertEquals("test-core", m.group(1)); - } - - static class TestSolrPrometheusFormatter extends SolrPrometheusFormatter { - @Override - public void exportDropwizardMetric(Metric dropwizardMetric, String metricName) {} - - @Override - public SolrMetric categorizeMetric(Metric dropwizardMetric, String metricName) { - return null; - } - - public Map> getMetricCounters() { - return metricCounters; - } - - public Map> getMetricGauges() { - return metricGauges; - } - } -} diff --git a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java index f52b76d5706..c03b645e020 100644 --- a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java +++ b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java @@ -16,61 +16,46 @@ */ package org.apache.solr.response; -import com.codahale.metrics.Counter; -import com.codahale.metrics.Gauge; -import com.codahale.metrics.Meter; -import com.codahale.metrics.SettableGauge; import com.codahale.metrics.SharedMetricRegistries; +import java.io.InputStream; import java.lang.invoke.MethodHandles; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import org.apache.lucene.tests.util.LuceneTestCase; -import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; +import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest.METHOD; import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; -import org.apache.solr.client.solrj.impl.NoOpResponseParser; +import org.apache.solr.client.solrj.impl.InputStreamResponseParser; +import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; +import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.util.NamedList; -import org.apache.solr.metrics.SolrMetricManager; -import org.apache.solr.util.ExternalPaths; import org.apache.solr.util.SolrJettyTestRule; import org.junit.AfterClass; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class TestPrometheusResponseWriter extends SolrTestCaseJ4 { +public class TestPrometheusResponseWriter extends SolrCloudTestCase { @ClassRule public static SolrJettyTestRule solrClientTestRule = new SolrJettyTestRule(); private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); public static final List VALID_PROMETHEUS_VALUES = Arrays.asList("NaN", "+Inf", "-Inf"); @BeforeClass - public static void beforeClass() throws Exception { - SharedMetricRegistries.clear(); - - solrClientTestRule.startSolr(LuceneTestCase.createTempDir()); - solrClientTestRule - .newCollection() - .withConfigSet(ExternalPaths.DEFAULT_CONFIGSET.toString()) - .create(); - var cc = solrClientTestRule.getCoreContainer(); - cc.waitForLoadingCoresToFinish(30000); - - SolrMetricManager manager = cc.getMetricManager(); - Counter c = manager.counter(null, "solr.core.collection1", "QUERY./dummy/metrics.requests"); - c.inc(10); - c = manager.counter(null, "solr.node", "ADMIN./dummy/metrics.requests"); - c.inc(20); - Meter m = manager.meter(null, "solr.jetty", "dummyMetrics.2xx-responses"); - m.mark(30); - registerGauge(manager, "solr.jvm", "gc.dummyMetrics.count"); + public static void setupCluster() throws Exception { + System.setProperty("metricsEnabled", "true"); + configureCluster(1) + .addConfig( + "config", TEST_PATH().resolve("configsets").resolve("cloud-minimal").resolve("conf")) + .configure(); } @AfterClass @@ -78,116 +63,155 @@ public static void clearMetricsRegistries() { SharedMetricRegistries.clear(); } - @Test - public void testPrometheusStructureOutput() throws Exception { - ModifiableSolrParams params = new ModifiableSolrParams(); - params.set("wt", "prometheus"); - var req = new GenericSolrRequest(METHOD.GET, "/admin/metrics", SolrRequestType.ADMIN, params); - req.setResponseParser(new NoOpResponseParser("prometheus")); - - try (SolrClient adminClient = getHttpSolrClient(solrClientTestRule.getBaseUrl())) { - NamedList res = adminClient.request(req); - assertNotNull("null response from server", res); - String output = (String) res.get("response"); - - Set seenTypeInfo = new HashSet<>(); - - List filteredResponse = - output - .lines() - .filter( - line -> { - if (!line.startsWith("#")) { - return true; - } - assertTrue( - "Prometheus exposition format cannot have duplicate TYPE information", - seenTypeInfo.add(line)); - return false; - }) - .collect(Collectors.toList()); - filteredResponse.forEach( - (actualMetric) -> { - String actualValue; - if (actualMetric.contains("}")) { - actualValue = actualMetric.substring(actualMetric.lastIndexOf("} ") + 1); - } else { - actualValue = actualMetric.split(" ")[1]; - } - assertTrue( - "All metrics should start with 'solr_metrics_'", - actualMetric.startsWith("solr_metrics_")); - try { - Float.parseFloat(actualValue); - } catch (NumberFormatException e) { - log.warn("Prometheus value not a parsable float"); - assertTrue(VALID_PROMETHEUS_VALUES.contains(actualValue)); - } - }); - } - } + @Before + public void ensureCollectionsExist() throws Exception { + SolrClient client = cluster.getSolrClient(); - public void testPrometheusDummyOutput() throws Exception { - String expectedCore = - "solr_metrics_core_requests_total{category=\"QUERY\",core=\"collection1\",handler=\"/dummy/metrics\",type=\"requests\"} 10.0"; - String expectedNode = - "solr_metrics_node_requests_total{category=\"ADMIN\",handler=\"/dummy/metrics\",type=\"requests\"} 20.0"; - String expectedJetty = "solr_metrics_jetty_response_total{status=\"2xx\"} 30.0"; - String expectedJvm = "solr_metrics_jvm_gc{item=\"dummyMetrics\"} 0.0"; - - ModifiableSolrParams params = new ModifiableSolrParams(); - params.set("wt", "prometheus"); - var req = new GenericSolrRequest(METHOD.GET, "/admin/metrics", SolrRequestType.ADMIN, params); - req.setResponseParser(new NoOpResponseParser("prometheus")); - - try (SolrClient adminClient = getHttpSolrClient(solrClientTestRule.getBaseUrl())) { - NamedList res = adminClient.request(req); - assertNotNull("null response from server", res); - String output = (String) res.get("response"); - assertEquals( - expectedCore, - output - .lines() - .filter(line -> line.contains(expectedCore)) - .collect(Collectors.toList()) - .get(0)); - assertEquals( - expectedNode, - output - .lines() - .filter(line -> line.contains(expectedNode)) - .collect(Collectors.toList()) - .get(0)); - assertEquals( - expectedJetty, - output - .lines() - .filter(line -> line.contains(expectedJetty)) - .collect(Collectors.toList()) - .get(0)); - assertEquals( - expectedJvm, - output - .lines() - .filter(line -> line.contains(expectedJvm)) - .collect(Collectors.toList()) - .get(0)); + // Tear down any previous run + try { + CollectionAdminRequest.deleteCollection("collection1").process(client); + } catch (Exception ignored) { } + try { + CollectionAdminRequest.deleteCollection("collection2").process(client); + } catch (Exception ignored) { + } + + // Recreate both + CollectionAdminRequest.createCollection("collection1", "config", 1, 1).process(client); + CollectionAdminRequest.createCollection("collection2", "config", 1, 1).process(client); + + // Wait for both to come up + cluster.waitForActiveCollection("collection1", 1, 1); + cluster.waitForActiveCollection("collection2", 1, 1); } - private static void registerGauge( - SolrMetricManager metricManager, String registry, String metricName) { - Gauge metric = - new SettableGauge<>() { - @Override - public void setValue(Number value) {} + @Test + public void testPrometheusStructureOutput() throws Exception { + var solrClient = cluster.getSolrClient(); + + // Increment solr_metrics_core_requests metric for /select + SolrQuery query = new SolrQuery("*:*"); + solrClient.query("collection1", query); + solrClient.query("collection2", query); + + var req = + new GenericSolrRequest( + METHOD.GET, + "/admin/metrics", + SolrRequestType.ADMIN, + new ModifiableSolrParams().set("wt", "prometheus")); + req.setResponseParser(new InputStreamResponseParser("prometheus")); + + NamedList prometheusResponse = solrClient.request(req); + assertNotNull("null response from server", prometheusResponse); + NamedList res = solrClient.request(req); + InputStream in = (InputStream) prometheusResponse.get("stream"); + + assertNotNull("null response from server", res); + String output = new String(in.readAllBytes(), StandardCharsets.UTF_8); - @Override - public Number getValue() { - return 0; + Set seenTypeInfo = new HashSet<>(); + + List filteredResponse = + output + .lines() + .filter( + line -> { + if (!line.startsWith("#")) { + return true; + } + assertTrue( + "Prometheus exposition format cannot have duplicate TYPE information", + seenTypeInfo.add(line)); + return false; + }) + .collect(Collectors.toList()); + filteredResponse.forEach( + (actualMetric) -> { + String actualValue; + if (actualMetric.contains("}")) { + actualValue = actualMetric.substring(actualMetric.lastIndexOf("} ") + 1); + } else { + actualValue = actualMetric.split(" ")[1]; + } + if (actualMetric.startsWith("target_info")) { + // Skip standard OTEL metric + return; } - }; - metricManager.registerGauge( - null, registry, metric, "", SolrMetricManager.ResolutionStrategy.IGNORE, metricName, ""); + assertTrue( + "All metrics should start with 'solr_metrics_'", + actualMetric.startsWith("solr_metrics_")); + try { + Float.parseFloat(actualValue); + } catch (NumberFormatException e) { + log.warn("Prometheus value not a parsable float"); + assertTrue(VALID_PROMETHEUS_VALUES.contains(actualValue)); + } + }); + } + + @Test + public void testCollectionDeletePrometheusOutput() throws Exception { + var solrClient = cluster.getSolrClient(); + + // Increment solr_metrics_core_requests metric for /select and assert it exists + SolrQuery query = new SolrQuery("*:*"); + solrClient.query("collection1", query); + solrClient.query("collection2", query); + + var promReq = + new GenericSolrRequest( + METHOD.GET, + "/admin/metrics", + SolrRequestType.ADMIN, + new ModifiableSolrParams().set("wt", "prometheus")); + promReq.setResponseParser(new InputStreamResponseParser("prometheus")); + + NamedList prometheusResponse = solrClient.request(promReq); + assertNotNull("null response from server", prometheusResponse); + + InputStream in = (InputStream) prometheusResponse.get("stream"); + String output = new String(in.readAllBytes(), StandardCharsets.UTF_8); + + assertTrue( + "Prometheus output should contains solr_metrics_core_requests for collection1", + output + .lines() + .anyMatch( + line -> + line.startsWith("solr_metrics_core_requests") && line.contains("collection1"))); + assertTrue( + "Prometheus output should contains solr_metrics_core_requests for collection2", + output + .lines() + .anyMatch( + line -> + line.startsWith("solr_metrics_core_requests") && line.contains("collection2"))); + + // Delete collection and assert metrics have been removed + var deleteRequest = CollectionAdminRequest.deleteCollection("collection1"); + deleteRequest.process(solrClient); + + prometheusResponse = solrClient.request(promReq); + assertNotNull("null response from server", prometheusResponse); + + in = (InputStream) prometheusResponse.get("stream"); + output = new String(in.readAllBytes(), StandardCharsets.UTF_8); + + assertFalse( + "Prometheus output should not contain solr_metrics_core_requests after collection was deleted", + output + .lines() + .anyMatch( + line -> + line.startsWith("solr_metrics_core_requests") && line.contains("collection1"))); + assertTrue( + "Prometheus output should contains solr_metrics_core_requests for collection2", + output + .lines() + .anyMatch( + line -> + line.startsWith("solr_metrics_core_requests") && line.contains("collection2"))); } } 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 b4c69600fbd..d70ea43a468 100644 --- a/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java +++ b/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java @@ -19,6 +19,7 @@ import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.RemovalCause; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -47,10 +48,12 @@ public class TestCaffeineCache extends SolrTestCase { public void testSimple() { CaffeineCache lfuCache = new CaffeineCache<>(); SolrMetricsContext solrMetricsContext = new SolrMetricsContext(metricManager, registry, "foo"); - lfuCache.initializeMetrics(solrMetricsContext, scope + "-1"); + // TODO SOLR-17458: Fix tests for OTEL + lfuCache.initializeMetrics(solrMetricsContext, Attributes.empty(), scope + "-1"); CaffeineCache newLFUCache = new CaffeineCache<>(); - newLFUCache.initializeMetrics(solrMetricsContext, scope + "-2"); + // TODO SOLR-17458: Fix tests for OTEL + newLFUCache.initializeMetrics(solrMetricsContext, Attributes.empty(), scope + "-2"); Map params = new HashMap<>(); params.put("size", "100"); 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 84d49d22f3b..989140b28f0 100644 --- a/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java +++ b/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java @@ -16,6 +16,7 @@ */ package org.apache.solr.search; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -105,7 +106,9 @@ private void doTestGetPutCompute( CacheRegenerator cr = new NoOpRegenerator(); Object o = cache.init(params, null, cr); cache.setState(SolrCache.State.LIVE); - cache.initializeMetrics(new SolrMetricsContext(metricManager, "foo", "bar"), "foo"); + // TODO SOLR-17458: Fix test later + cache.initializeMetrics( + new SolrMetricsContext(metricManager, "foo", "bar"), Attributes.empty(), "foo"); AtomicBoolean stop = new AtomicBoolean(); SummaryStatistics perImplRatio = ratioStats.computeIfAbsent(clazz.getSimpleName(), c -> new SummaryStatistics()); diff --git a/solr/core/src/test/org/apache/solr/search/TestSolrFieldCacheBean.java b/solr/core/src/test/org/apache/solr/search/TestSolrFieldCacheBean.java index 3d99bca59c2..c7d5097a9e6 100644 --- a/solr/core/src/test/org/apache/solr/search/TestSolrFieldCacheBean.java +++ b/solr/core/src/test/org/apache/solr/search/TestSolrFieldCacheBean.java @@ -16,6 +16,7 @@ */ package org.apache.solr.search; +import io.opentelemetry.api.common.Attributes; import java.util.Map; import java.util.Random; import org.apache.lucene.tests.util.TestUtil; @@ -70,7 +71,7 @@ private void assertEntryListIncluded(boolean checkJmx) { SolrMetricManager metricManager = h.getCoreContainer().getMetricManager(); SolrMetricsContext solrMetricsContext = new SolrMetricsContext(metricManager, registryName, "foo"); - mbean.initializeMetrics(solrMetricsContext, null); + mbean.initializeMetrics(solrMetricsContext, Attributes.empty(), null); MetricsMap metricsMap = (MetricsMap) ((SolrMetricManager.GaugeWrapper) @@ -89,7 +90,7 @@ private void assertEntryListNotIncluded(boolean checkJmx) { SolrMetricManager metricManager = h.getCoreContainer().getMetricManager(); SolrMetricsContext solrMetricsContext = new SolrMetricsContext(metricManager, registryName, "foo"); - mbean.initializeMetrics(solrMetricsContext, null); + mbean.initializeMetrics(solrMetricsContext, Attributes.empty(), null); MetricsMap metricsMap = (MetricsMap) ((SolrMetricManager.GaugeWrapper) 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 6a23b82568f..de14da997ea 100644 --- a/solr/core/src/test/org/apache/solr/search/TestThinCache.java +++ b/solr/core/src/test/org/apache/solr/search/TestThinCache.java @@ -16,6 +16,7 @@ */ package org.apache.solr.search; +import io.opentelemetry.api.common.Attributes; import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; @@ -94,12 +95,14 @@ public void testSimple() { ThinCache lfuCache = new ThinCache<>(); lfuCache.setBacking(cacheScope, backing); SolrMetricsContext solrMetricsContext = new SolrMetricsContext(metricManager, registry, "foo"); - lfuCache.initializeMetrics(solrMetricsContext, scope + "-1"); + // TODO SOLR-17458: Fix test later + lfuCache.initializeMetrics(solrMetricsContext, Attributes.empty(), scope + "-1"); Object cacheScope2 = new Object(); ThinCache newLFUCache = new ThinCache<>(); newLFUCache.setBacking(cacheScope2, backing); - newLFUCache.initializeMetrics(solrMetricsContext, scope + "-2"); + // TODO SOLR-17458: Fix test later + newLFUCache.initializeMetrics(solrMetricsContext, Attributes.empty(), scope + "-2"); Map params = new HashMap<>(); params.put("size", "100"); diff --git a/solr/core/src/test/org/apache/solr/search/ThinCache.java b/solr/core/src/test/org/apache/solr/search/ThinCache.java index ea7a155922e..c39ae8b30cc 100644 --- a/solr/core/src/test/org/apache/solr/search/ThinCache.java +++ b/solr/core/src/test/org/apache/solr/search/ThinCache.java @@ -19,6 +19,7 @@ import com.github.benmanes.caffeine.cache.RemovalCause; import com.github.benmanes.caffeine.cache.RemovalListener; import com.google.common.annotations.VisibleForTesting; +import io.opentelemetry.api.common.Attributes; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.lang.ref.WeakReference; @@ -291,7 +292,8 @@ public Object init(Map args, Object persistence, CacheRegenerato private long priorEvictions; @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { solrMetricsContext = parentContext.getChildContext(this); cacheMap = new MetricsMap( diff --git a/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java b/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java index 8b1af81c59e..6a45d2ca673 100644 --- a/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java +++ b/solr/core/src/test/org/apache/solr/util/tracing/TestSimplePropagatorDistributedTracing.java @@ -34,6 +34,7 @@ import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.common.util.SuppressForbidden; +import org.apache.solr.core.OpenTelemetryConfigurator; import org.apache.solr.core.SolrCore; import org.apache.solr.handler.admin.api.CreateCore; import org.apache.solr.logging.MDCLoggingContext; @@ -49,6 +50,8 @@ public class TestSimplePropagatorDistributedTracing extends SolrCloudTestCase { @BeforeClass public static void setupCluster() throws Exception { + OpenTelemetryConfigurator.resetForTest(); + configureCluster(4).addConfig("conf", configset("cloud-minimal")).configure(); // tracer should be disabled diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index a3924b7db3e..42deb05940b 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -72,8 +72,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/licenses/opentelemetry-api-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-api-1.46.0.jar.sha1 deleted file mode 100644 index 6b8fa6c6bd9..00000000000 --- a/solr/licenses/opentelemetry-api-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -afd2d5781454088400cceabbe84f7a9b29d27161 diff --git a/solr/licenses/opentelemetry-api-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-api-1.50.0.jar.sha1 new file mode 100644 index 00000000000..3c7f32b2643 --- /dev/null +++ b/solr/licenses/opentelemetry-api-1.50.0.jar.sha1 @@ -0,0 +1 @@ +83a69114c56ff2664d21906c62431bceb1c294ed diff --git a/solr/licenses/opentelemetry-api-incubator-1.46.0-alpha.jar.sha1 b/solr/licenses/opentelemetry-api-incubator-1.46.0-alpha.jar.sha1 deleted file mode 100644 index 3eb3de3424a..00000000000 --- a/solr/licenses/opentelemetry-api-incubator-1.46.0-alpha.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1a708444d2818ac1a47767a2b35d74ef55d26af8 diff --git a/solr/licenses/opentelemetry-context-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-context-1.46.0.jar.sha1 deleted file mode 100644 index edeab4e6c7e..00000000000 --- a/solr/licenses/opentelemetry-context-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8cee1fa7ec9129f7b252595c612c19f4570d567f diff --git a/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 new file mode 100644 index 00000000000..e6d67b0652e --- /dev/null +++ b/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 @@ -0,0 +1 @@ +dcdc20a193e82d66ecf5a1a978a799bc19e9b210 diff --git a/solr/licenses/opentelemetry-exporter-common-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-common-1.46.0.jar.sha1 deleted file mode 100644 index 408dfb5bc7f..00000000000 --- a/solr/licenses/opentelemetry-exporter-common-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2e2d8f3b51b1a2b1184f11d9059e129c5e39147a diff --git a/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 new file mode 100644 index 00000000000..827f7773e3f --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 @@ -0,0 +1 @@ +73bc444d344995bfcd4705a0261662c27d58c9c9 diff --git a/solr/licenses/opentelemetry-exporter-otlp-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-1.46.0.jar.sha1 deleted file mode 100644 index 5ebfe4bce72..00000000000 --- a/solr/licenses/opentelemetry-exporter-otlp-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1122a5ea0562147547ddf0eb28e1035d549c0ea0 diff --git a/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 new file mode 100644 index 00000000000..e5cffae0071 --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 @@ -0,0 +1 @@ +8eb4ce42340ae0443793e9fa41ba9e4f7743e66e diff --git a/solr/licenses/opentelemetry-exporter-otlp-common-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-common-1.46.0.jar.sha1 deleted file mode 100644 index cdf134c47db..00000000000 --- a/solr/licenses/opentelemetry-exporter-otlp-common-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -abeb93b8b6d2cb0007b1d6122325f94a11e61ca4 diff --git a/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 new file mode 100644 index 00000000000..9f5ed208526 --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 @@ -0,0 +1 @@ +3b5cf0eeffa6087324f7c57b5d9e48c62b8e2e8c diff --git a/solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1 b/solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1 new file mode 100644 index 00000000000..6fb5fa25db3 --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-prometheus-1.50.0-alpha.jar.sha1 @@ -0,0 +1 @@ +087b606101ac171a9d9ba927a2fd8718a0fcc819 diff --git a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.46.0.jar.sha1 deleted file mode 100644 index 8bf9d1883a9..00000000000 --- a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -32a0fe0fa7cd9831b502075f27c1fe6d28280cdb diff --git a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 new file mode 100644 index 00000000000..30283f96545 --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 @@ -0,0 +1 @@ +83ee66ff7ff5babc1884533a8c3a6a99fd64d643 diff --git a/solr/licenses/opentelemetry-sdk-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-1.46.0.jar.sha1 deleted file mode 100644 index 7c81cb59b4d..00000000000 --- a/solr/licenses/opentelemetry-sdk-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -b3a77fff1084177c4f5099bbb7db6181d6efd752 diff --git a/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 new file mode 100644 index 00000000000..ab4123d5478 --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 @@ -0,0 +1 @@ +1c6ffdd0bf5a3e42154912f0ab1b1bbd73499af1 diff --git a/solr/licenses/opentelemetry-sdk-common-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-common-1.46.0.jar.sha1 deleted file mode 100644 index d86e56cae6f..00000000000 --- a/solr/licenses/opentelemetry-sdk-common-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1d353ee4e980ff77c742350fc7000b732b6c6b3f diff --git a/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 new file mode 100644 index 00000000000..6739b9258fc --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 @@ -0,0 +1 @@ +928c43d75cd0675070d38d041973370823d6face diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.46.0.jar.sha1 deleted file mode 100644 index 939187ad777..00000000000 --- a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6b2e0222c1130da6005677394fe957e75a97d8f3 diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 new file mode 100644 index 00000000000..4190d963d8f --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 @@ -0,0 +1 @@ +ad69f784c48db4bdc216f90fddead6c7e26b0727 diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.46.0.jar.sha1 deleted file mode 100644 index 759eafe9bf7..00000000000 --- a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -eb2081c3e8a3e73cab3c0c47ad8fb59e39216dc5 diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 new file mode 100644 index 00000000000..3112fe841ec --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 @@ -0,0 +1 @@ +47676b3c16db83a30b002d0e9cd9e6405236dd21 diff --git a/solr/licenses/opentelemetry-sdk-logs-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-logs-1.46.0.jar.sha1 deleted file mode 100644 index 72f912df8e2..00000000000 --- a/solr/licenses/opentelemetry-sdk-logs-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1bd9bb4f3ce9ac573613b353a78d51491cd02bbd diff --git a/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 new file mode 100644 index 00000000000..b2e86ef3a8e --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 @@ -0,0 +1 @@ +fb7ace15eca8878a2c3cf86320ed1d2fd1c0f206 diff --git a/solr/licenses/opentelemetry-sdk-metrics-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-metrics-1.46.0.jar.sha1 deleted file mode 100644 index 6786562b64e..00000000000 --- a/solr/licenses/opentelemetry-sdk-metrics-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -475d900ffd0567a7ddf2452290b2e5d51ac35c58 diff --git a/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 new file mode 100644 index 00000000000..cbaa77257d3 --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 @@ -0,0 +1 @@ +49432de0171798f671bda82bf7eef6ae283b3b7d diff --git a/solr/licenses/opentelemetry-sdk-testing-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-testing-1.46.0.jar.sha1 deleted file mode 100644 index 9ee57163d35..00000000000 --- a/solr/licenses/opentelemetry-sdk-testing-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9ec6741985888c49b1051fa9aaf404ce20134cac diff --git a/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 new file mode 100644 index 00000000000..2f3100622bb --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 @@ -0,0 +1 @@ +2972ea619333a9c39f5e6104884278ab9d439f69 diff --git a/solr/licenses/opentelemetry-sdk-trace-1.46.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-trace-1.46.0.jar.sha1 deleted file mode 100644 index 867e42339d3..00000000000 --- a/solr/licenses/opentelemetry-sdk-trace-1.46.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c6e39faabf0741780189861156d0a7763e942796 diff --git a/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 new file mode 100644 index 00000000000..3255b03451f --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 @@ -0,0 +1 @@ +19d60d3b72aa2d0d89a02361eedf7157ecc1fc7d diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile index ccf64762b5a..09190b03892 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -56,8 +56,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile index 64038232abf..4547445629e 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -55,8 +55,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/cross-dc/gradle.lockfile b/solr/modules/cross-dc/gradle.lockfile index 52bb300918c..b2522248373 100644 --- a/solr/modules/cross-dc/gradle.lockfile +++ b/solr/modules/cross-dc/gradle.lockfile @@ -56,8 +56,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/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 a4cb9a97cc3..ed914dfaeb1 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,6 +31,7 @@ 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; @@ -160,6 +161,8 @@ private void runCommand(SolrParams params, boolean expectResult) throws Exceptio @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 4d39678198f..9febc006aa1 100644 --- a/solr/modules/extraction/gradle.lockfile +++ b/solr/modules/extraction/gradle.lockfile @@ -83,8 +83,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile index aaab5418abc..40b20c2468a 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -104,8 +104,16 @@ io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation, 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:opentelemetry-api:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/jwt-auth/gradle.lockfile b/solr/modules/jwt-auth/gradle.lockfile index 66418fb565b..cd5ef0c024e 100644 --- a/solr/modules/jwt-auth/gradle.lockfile +++ b/solr/modules/jwt-auth/gradle.lockfile @@ -68,8 +68,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile index a13233c6da5..9cb3aed31ac 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -56,8 +56,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/llm/gradle.lockfile b/solr/modules/llm/gradle.lockfile index 97c64b4174e..f4958581520 100644 --- a/solr/modules/llm/gradle.lockfile +++ b/solr/modules/llm/gradle.lockfile @@ -70,8 +70,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile index 82beea7fa92..f1314eb1e87 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -55,8 +55,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index c987846ebcc..321694605a5 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -74,22 +74,22 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api-incubator:1.46.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-bom:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.46.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.46.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.46.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.46.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-testing:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-bom:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +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-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-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 +io.opentelemetry:opentelemetry-sdk-logs:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,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,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java index 0d2dd5df9de..c70acee63c2 100644 --- a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java +++ b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/OtelTracerConfigurator.java @@ -17,6 +17,7 @@ package org.apache.solr.opentelemetry; import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; import java.lang.invoke.MethodHandles; import java.util.Arrays; @@ -27,7 +28,7 @@ import java.util.stream.Collectors; import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.NamedList; -import org.apache.solr.core.TracerConfigurator; +import org.apache.solr.core.OpenTelemetryConfigurator; import org.apache.solr.util.tracing.TraceUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,11 +36,13 @@ /** * Tracing TracerConfigurator implementation which exports spans to OpenTelemetry in OTLP format. */ -public class OtelTracerConfigurator extends TracerConfigurator { +public class OtelTracerConfigurator extends OpenTelemetryConfigurator { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private final Map currentEnv; + private OpenTelemetrySdk openTelemetrySdk; + public OtelTracerConfigurator() { this(System.getenv()); } @@ -53,10 +56,15 @@ public Tracer getTracer() { return TraceUtils.getGlobalTracer(); } + @Override + public OpenTelemetrySdk getOpenTelemetrySdk() { + return this.openTelemetrySdk; + } + @Override public void init(NamedList args) { prepareConfiguration(args); - AutoConfiguredOpenTelemetrySdk.initialize(); + this.openTelemetrySdk = AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk(); } void prepareConfiguration(NamedList args) { diff --git a/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/CustomTestOtelTracerConfigurator.java b/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/CustomTestOtelTracerConfigurator.java index 16c2d20a41e..e208d6d0034 100644 --- a/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/CustomTestOtelTracerConfigurator.java +++ b/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/CustomTestOtelTracerConfigurator.java @@ -16,7 +16,6 @@ */ package org.apache.solr.opentelemetry; -import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; @@ -99,7 +98,6 @@ public static synchronized void resetForTest() { exporter = null; } System.clearProperty("otel.traces.exporter"); - GlobalOpenTelemetry.resetForTest(); } } } diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index acfa83c78ef..1c520b72506 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/gradle.lockfile @@ -71,8 +71,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile index 58646b28e5a..2c416304ee6 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -55,8 +55,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile index a16b3b4041f..ad11eb50db9 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -62,8 +62,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/packaging/test/test_example.bats b/solr/packaging/test/test_example.bats new file mode 100644 index 00000000000..a15ba4b6f62 --- /dev/null +++ b/solr/packaging/test/test_example.bats @@ -0,0 +1,41 @@ +#!/usr/bin/env bats + +# 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. + +load bats_helper + +setup() { + common_clean_setup +} + +teardown() { + # save a snapshot of SOLR_HOME for failed tests + save_home_on_failure + + solr stop --all >/dev/null 2>&1 +} + +@test "start -e cloud works with --jvm-opts" { + solr start -e cloud --no-prompt --jvm-opts "-Dcustom.prop=helloworld" + solr assert --started http://localhost:${SOLR_PORT} --cloud http://localhost:${SOLR_PORT} --timeout 60000 + solr assert --started http://localhost:${SOLR2_PORT} --cloud http://localhost:${SOLR2_PORT} --timeout 60000 + + run curl "http://localhost:${SOLR_PORT}/solr/admin/info/properties" + assert_output --partial 'helloworld' + + run curl "http://localhost:${SOLR2_PORT}/solr/admin/info/properties" + assert_output --partial 'helloworld' +} diff --git a/solr/prometheus-exporter/gradle.lockfile b/solr/prometheus-exporter/gradle.lockfile index 819991354c3..ef2e6807261 100644 --- a/solr/prometheus-exporter/gradle.lockfile +++ b/solr/prometheus-exporter/gradle.lockfile @@ -55,8 +55,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:simpleclient:0.16.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile index 65162f0f938..0d454681d3d 100644 --- a/solr/server/gradle.lockfile +++ b/solr/server/gradle.lockfile @@ -52,8 +52,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=jarValidation,runtimeClassp io.netty:netty-transport-native-epoll:4.1.114.Final=jarValidation,runtimeClasspath,solrCore io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,runtimeClasspath,solrCore io.netty:netty-transport:4.1.114.Final=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-api:1.46.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-context:1.46.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,runtimeClasspath,solrCore +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,solrCore io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,solrCore io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,solrCore io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,solrCore diff --git a/solr/solr-ref-guide/gradle.lockfile b/solr/solr-ref-guide/gradle.lockfile index fd26f6593cb..0707164cae2 100644 --- a/solr/solr-ref-guide/gradle.lockfile +++ b/solr/solr-ref-guide/gradle.lockfile @@ -54,8 +54,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=testCompileClasspath,testRu io.netty:netty-transport-native-epoll:4.1.114.Final=testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=testRuntimeClasspath diff --git a/solr/solrj-streaming/gradle.lockfile b/solr/solrj-streaming/gradle.lockfile index 5ad3ba653d0..d60224f0fa2 100644 --- a/solr/solrj-streaming/gradle.lockfile +++ b/solr/solrj-streaming/gradle.lockfile @@ -69,8 +69,16 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=permitTestUnusedDeclar io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=permitTestUnusedDeclared io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/solrj-zookeeper/gradle.lockfile b/solr/solrj-zookeeper/gradle.lockfile index 68c127c061f..0de65be2ba7 100644 --- a/solr/solrj-zookeeper/gradle.lockfile +++ b/solr/solrj-zookeeper/gradle.lockfile @@ -71,8 +71,16 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=apiHelper io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=apiHelper io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index 9e6881fd028..5dca5294d0d 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -69,8 +69,16 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=permitTestUnusedDeclar io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=permitTestUnusedDeclared io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile index 053b7399a39..7d8d0cbe56f 100644 --- a/solr/test-framework/gradle.lockfile +++ b/solr/test-framework/gradle.lockfile @@ -55,8 +55,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.46.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +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,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java index 55ba5f42ef4..f191d57f2b8 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -25,6 +25,7 @@ import com.carrotsearch.randomizedtesting.RandomizedContext; import com.carrotsearch.randomizedtesting.RandomizedTest; import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule; +import io.opentelemetry.api.GlobalOpenTelemetry; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Reader; @@ -112,6 +113,7 @@ import org.apache.solr.core.CoreContainer; import org.apache.solr.core.CoresLocator; import org.apache.solr.core.NodeConfig; +import org.apache.solr.core.OpenTelemetryConfigurator; import org.apache.solr.core.SolrConfig; import org.apache.solr.core.SolrCore; import org.apache.solr.core.SolrXmlConfig; @@ -249,6 +251,7 @@ protected void assertExceptionThrownWithMessageContaining( @BeforeClass public static void setupTestCases() { + OpenTelemetryConfigurator.resetForTest(); resetExceptionIgnores(); testExecutor = diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java index c7d8af3053f..31756bfaf23 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java @@ -77,11 +77,10 @@ import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.common.util.TimeSource; import org.apache.solr.core.CoreContainer; -import org.apache.solr.core.TracerConfigurator; +import org.apache.solr.core.OpenTelemetryConfigurator; import org.apache.solr.embedded.JettyConfig; import org.apache.solr.embedded.JettySolrRunner; import org.apache.solr.util.TimeOut; -import org.apache.solr.util.tracing.SimplePropagator; import org.apache.solr.util.tracing.TraceUtils; import org.apache.zookeeper.KeeperException; import org.eclipse.jetty.ee10.servlet.ServletHolder; @@ -1224,9 +1223,8 @@ public MiniSolrCloudCluster build() throws Exception { "solr.distributedClusterStateUpdates", Boolean.toString(useDistributedClusterStateUpdate)); - // eager init to prevent OTEL init races caused by test setup - if (!disableTraceIdGeneration && TracerConfigurator.TRACE_ID_GEN_ENABLED) { - SimplePropagator.load(); + if (!disableTraceIdGeneration && OpenTelemetryConfigurator.TRACE_ID_GEN_ENABLED) { + OpenTelemetryConfigurator.initializeOpenTelemetrySdk(null, null); injectRandomRecordingFlag(); } diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/SolrCloudTestCase.java b/solr/test-framework/src/java/org/apache/solr/cloud/SolrCloudTestCase.java index bb0f60e2a9b..1a5f035be1f 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/SolrCloudTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/SolrCloudTestCase.java @@ -117,7 +117,6 @@ protected static MiniSolrCloudCluster.Builder configureCluster(int nodeCount) { // collection API strategy to use (distributed or Overseer based) and which cluster update // strategy to use (distributed if collection API is distributed, but Overseer based or // distributed randomly chosen if Collection API is Overseer based), and whether to use PRS - configurePrsDefault(); boolean useDistributedCollectionConfigSetExecution = LuceneTestCase.random().nextInt(2) == 0; diff --git a/solr/test-framework/src/java/org/apache/solr/core/MockQuerySenderListenerReqHandler.java b/solr/test-framework/src/java/org/apache/solr/core/MockQuerySenderListenerReqHandler.java index f70cdc59cbd..622a0c25a14 100644 --- a/solr/test-framework/src/java/org/apache/solr/core/MockQuerySenderListenerReqHandler.java +++ b/solr/test-framework/src/java/org/apache/solr/core/MockQuerySenderListenerReqHandler.java @@ -16,6 +16,7 @@ */ package org.apache.solr.core; +import io.opentelemetry.api.common.Attributes; import java.util.concurrent.atomic.AtomicInteger; import org.apache.solr.common.util.NamedList; import org.apache.solr.handler.RequestHandlerBase; @@ -38,8 +39,9 @@ public void init(NamedList args) { } @Override - public void initializeMetrics(SolrMetricsContext parentContext, String scope) { - super.initializeMetrics(parentContext, scope); + public void initializeMetrics( + SolrMetricsContext parentContext, Attributes attributes, String scope) { + super.initializeMetrics(parentContext, attributes, scope); solrMetricsContext.gauge( () -> initCounter.intValue(), true, "initCount", getCategory().toString(), scope); } diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index 5caff1c65d9..02dc0b65355 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/gradle.lockfile @@ -53,8 +53,16 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=permitUnusedDeclared,solrCo io.netty:netty-transport-native-epoll:4.1.114.Final=permitUnusedDeclared,solrCore io.netty:netty-transport-native-unix-common:4.1.114.Final=permitUnusedDeclared,solrCore io.netty:netty-transport:4.1.114.Final=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-api:1.46.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-context:1.46.0=permitUnusedDeclared,solrCore +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-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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk:1.50.0=permitUnusedDeclared,solrCore io.prometheus:prometheus-metrics-exposition-formats:1.1.0=permitUnusedDeclared,solrCore io.prometheus:prometheus-metrics-model:1.1.0=permitUnusedDeclared,solrCore io.sgr:s2-geometry-library-java:1.0.0=permitUnusedDeclared,solrCore From c4164290a96507d63e0048e733d3709a2cc737e6 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 23 Jun 2025 10:48:06 -0400 Subject: [PATCH 02/19] Bad merge from feature branch --- .../core/src/java/org/apache/solr/core/CoreContainer.java | 1 - .../java/org/apache/solr/handler/RequestHandlerBase.java | 2 +- .../java/org/apache/solr/metrics/SolrMetricManager.java | 8 +------- .../src/java/org/apache/solr/util/stats/MetricUtils.java | 3 --- .../src/java/org/apache/solr/SolrTestCaseJ4.java | 1 - 5 files changed, 2 insertions(+), 13 deletions(-) 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 21ce8e657ab..60ed6155d7c 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -33,7 +33,6 @@ import com.google.common.annotations.VisibleForTesting; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.trace.Tracer; -import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; import jakarta.inject.Singleton; import java.io.IOException; import java.lang.invoke.MethodHandles; 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 0888b417e92..9ac85a27802 100644 --- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java @@ -189,7 +189,7 @@ public static class HandlerMetrics { new HandlerMetrics( new SolrMetricsContext( new SolrMetricManager( - null, new MetricsConfig.MetricsConfigBuilder().setEnabled(false).build(), null), + null, new MetricsConfig.MetricsConfigBuilder().setEnabled(false).build()), "NO_OP", "NO_OP"), Attributes.empty()); 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 03de77a24b2..2f420f2924d 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -82,7 +82,6 @@ import org.apache.solr.core.SolrInfoBean; import org.apache.solr.core.SolrResourceLoader; import org.apache.solr.logging.MDCLoggingContext; -import org.apache.solr.util.stats.MetricUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -161,15 +160,10 @@ public SolrMetricManager() { meterSupplier = MetricSuppliers.meterSupplier(null, null); timerSupplier = MetricSuppliers.timerSupplier(null, null); histogramSupplier = MetricSuppliers.histogramSupplier(null, null); - meterProvider = MetricUtils.getMeterProvider(); - metricReader = null; } - public SolrMetricManager( - SolrResourceLoader loader, MetricsConfig metricsConfig, PrometheusMetricReader metricReader) { + public SolrMetricManager(SolrResourceLoader loader, MetricsConfig metricsConfig) { this.metricsConfig = metricsConfig; - this.metricReader = metricReader; - this.meterProvider = MetricUtils.getMeterProvider(); counterSupplier = MetricSuppliers.counterSupplier(loader, metricsConfig.getCounterSupplier()); meterSupplier = MetricSuppliers.meterSupplier(loader, metricsConfig.getMeterSupplier()); timerSupplier = MetricSuppliers.timerSupplier(loader, metricsConfig.getTimerSupplier()); diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java index 2cbdcc878ec..6b7284f9869 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java +++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java @@ -27,8 +27,6 @@ import com.codahale.metrics.Snapshot; import com.codahale.metrics.Timer; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.sdk.metrics.SdkMeterProvider; import java.beans.BeanInfo; import java.beans.IntrospectionException; @@ -55,7 +53,6 @@ import org.apache.solr.common.ConditionalKeyMapWriter; import org.apache.solr.common.IteratorWriter; import org.apache.solr.common.MapWriter; -import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrInfoBean; 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 f191d57f2b8..2d7a1d9a172 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -25,7 +25,6 @@ import com.carrotsearch.randomizedtesting.RandomizedContext; import com.carrotsearch.randomizedtesting.RandomizedTest; import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule; -import io.opentelemetry.api.GlobalOpenTelemetry; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Reader; From 6b5a01f934fa03011f7921549ff5283bca76e8cd Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 23 Jun 2025 12:09:23 -0400 Subject: [PATCH 03/19] Wrap meter providers and metric readers --- .../solr/core/OpenTelemetryConfigurator.java | 5 +- .../solr/metrics/SolrMetricManager.java | 94 ++++++++++++------- .../apache/solr/util/stats/MetricUtils.java | 6 -- .../solr/metrics/MetricsConfigTest.java | 10 +- 4 files changed, 67 insertions(+), 48 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java index 0b5f156f48f..7301bc7022f 100644 --- a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java +++ b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java @@ -74,7 +74,10 @@ public static synchronized void initializeOpenTelemetrySdk( private static void configureOpenTelemetrySdk() { if (loaded) return; - if (TRACE_ID_GEN_ENABLED) ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); + if (TRACE_ID_GEN_ENABLED) { + log.info("OpenTelemetry tracer enabled with simple propagation only."); + ExecutorUtil.addThreadLocalProvider(new ContextThreadLocalProvider()); + } OpenTelemetry otel = OpenTelemetry.propagating(ContextPropagators.create(SimplePropagator.getInstance())); 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 2f420f2924d..f98d30fd11d 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -149,9 +149,7 @@ public class SolrMetricManager { private final MetricRegistry.MetricSupplier timerSupplier; private final MetricRegistry.MetricSupplier histogramSupplier; - private final ConcurrentMap sdkMeterProviders = - new ConcurrentHashMap<>(); - private final ConcurrentMap prometheusMetricReaders = + private final ConcurrentMap meterProviderAndReaders = new ConcurrentHashMap<>(); public SolrMetricManager() { @@ -174,7 +172,7 @@ public SolrMetricManager(SolrResourceLoader loader, MetricsConfig metricsConfig) public LongCounter longCounter( String providerName, String counterName, String description, String unit) { LongCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .counterBuilder(counterName) .setDescription(description); @@ -186,7 +184,7 @@ public LongCounter longCounter( public LongUpDownCounter longUpDownCounter( String providerName, String counterName, String description, String unit) { LongUpDownCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .upDownCounterBuilder(counterName) .setDescription(description); @@ -198,7 +196,7 @@ public LongUpDownCounter longUpDownCounter( public DoubleUpDownCounter doubleUpDownCounter( String providerName, String counterName, String description, String unit) { DoubleUpDownCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .upDownCounterBuilder(counterName) .setDescription(description) @@ -211,7 +209,7 @@ public DoubleUpDownCounter doubleUpDownCounter( public DoubleCounter doubleCounter( String providerName, String counterName, String description, String unit) { DoubleCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .counterBuilder(counterName) .setDescription(description) @@ -224,7 +222,7 @@ public DoubleCounter doubleCounter( public DoubleHistogram doubleHistogram( String providerName, String histogramName, String description, String unit) { DoubleHistogramBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .histogramBuilder(histogramName) .setDescription(description); @@ -236,7 +234,7 @@ public DoubleHistogram doubleHistogram( public LongHistogram longHistogram( String providerName, String histogramName, String description, String unit) { LongHistogramBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .histogramBuilder(histogramName) .setDescription(description) @@ -250,7 +248,7 @@ public LongHistogram longHistogram( public DoubleGauge doubleGauge( String providerName, String gaugeName, String description, String unit) { DoubleGaugeBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .gaugeBuilder(gaugeName) .setDescription(description); @@ -262,7 +260,7 @@ public DoubleGauge doubleGauge( public LongGauge longGauge( String providerName, String gaugeName, String description, String unit) { LongGaugeBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .gaugeBuilder(gaugeName) .setDescription(description) @@ -279,7 +277,7 @@ public ObservableLongCounter observableLongCounter( Consumer callback, String unit) { LongCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .counterBuilder(counterName) .setDescription(description); @@ -295,7 +293,7 @@ public ObservableDoubleCounter observableDoubleCounter( Consumer callback, String unit) { DoubleCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .counterBuilder(counterName) .setDescription(description) @@ -312,7 +310,7 @@ public ObservableLongGauge observableLongGauge( Consumer callback, String unit) { LongGaugeBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .gaugeBuilder(gaugeName) .setDescription(description) @@ -329,7 +327,7 @@ public ObservableDoubleGauge observableDoubleGauge( Consumer callback, String unit) { DoubleGaugeBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .gaugeBuilder(gaugeName) .setDescription(description); @@ -346,7 +344,7 @@ public ObservableLongUpDownCounter observableLongUpDownCounter( Consumer callback, String unit) { LongUpDownCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .upDownCounterBuilder(counterName) .setDescription(description); @@ -362,7 +360,7 @@ public ObservableDoubleUpDownCounter observableDoubleUpDownCounter( Consumer callback, String unit) { DoubleUpDownCounterBuilder builder = - sdkMeterProvider(providerName) + meterProvider(providerName) .get(OTEL_SCOPE_NAME) .upDownCounterBuilder(counterName) .setDescription(description) @@ -625,7 +623,7 @@ public Set registryNames() { } public Set providerNames() { - return sdkMeterProviders.keySet(); + return meterProviderAndReaders.keySet(); } /** @@ -642,7 +640,7 @@ public boolean hasRegistry(String name) { } public boolean hasMeterProvider(String name) { - return sdkMeterProviders.containsKey(enforcePrefix(name)); + return meterProviderAndReaders.containsKey(enforcePrefix(name)); } /** @@ -715,15 +713,27 @@ public MetricRegistry registry(String registry) { } } - public SdkMeterProvider sdkMeterProvider(String providerName) { + /** + * Get (or create if not present) a named {@link SdkMeterProvider} and {@link + * PrometheusMetricReader} under {@link MeterProviderAndReaders}. Dropwizards's {@link + * SolrMetricManager#registry(String)} equivalent + * + * @param providerName name of the meter provider and prometheus metric reader + * @return existing or newly created meter provider + */ + public SdkMeterProvider meterProvider(String providerName) { providerName = enforcePrefix(providerName); - return sdkMeterProviders.computeIfAbsent( - providerName, - key -> { - PrometheusMetricReader reader = new PrometheusMetricReader(true, null); - prometheusMetricReaders.put(key, reader); - return SdkMeterProvider.builder().registerMetricReader(reader).build(); - }); + return meterProviderAndReaders + .computeIfAbsent( + providerName, + key -> { + var reader = new PrometheusMetricReader(true, null); + // NOCOMMIT: We need to add a Periodic Metric Reader here if we want to push with OTLP + // with an exporter + var provider = SdkMeterProvider.builder().registerMetricReader(reader).build(); + return new MeterProviderAndReaders(provider, reader); + }) + .sdkMeterProvider(); } // TODO SOLR-17458: We may not need @@ -766,12 +776,17 @@ public void removeRegistry(String registry) { } } - public void closeMeterProvider(String registry) { - sdkMeterProviders.computeIfPresent( - enforcePrefix(registry), - (key, sdkMeterProvider) -> { - sdkMeterProvider.close(); - prometheusMetricReaders.remove(key); + /** + * Remove and close a named {@link SdkMeterProvider}. Upon closing of Meter Provider, all metric + * readers registered are close. + * + * @param providerName name of the Meter Provider to remove + */ + public void closeMeterProvider(String providerName) { + meterProviderAndReaders.computeIfPresent( + enforcePrefix(providerName), + (key, meterAndReader) -> { + meterAndReader.sdkMeterProvider().close(); return null; }); } @@ -1656,11 +1671,18 @@ public MetricsConfig getMetricsConfig() { return metricsConfig; } + /** Get a shallow copied map of {@link PrometheusMetricReader}. */ public Map getPrometheusMetricReaders() { - return Map.copyOf(prometheusMetricReaders); + return meterProviderAndReaders.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().prometheusMetricReader())); } - public PrometheusMetricReader getPrometheusMetricReader(String metricReaderName) { - return prometheusMetricReaders.get(enforcePrefix(metricReaderName)); + public PrometheusMetricReader getPrometheusMetricReader(String providerName) { + var name = enforcePrefix(providerName); + if (!meterProviderAndReaders.containsKey(name)) return null; + return meterProviderAndReaders.get(name).prometheusMetricReader(); } + + private record MeterProviderAndReaders( + SdkMeterProvider sdkMeterProvider, PrometheusMetricReader prometheusMetricReader) {} } diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java index 6b7284f9869..9cff065c06f 100644 --- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java +++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java @@ -26,8 +26,6 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Snapshot; import com.codahale.metrics.Timer; -import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.sdk.metrics.SdkMeterProvider; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; @@ -854,8 +852,4 @@ public static void addMXBeanMetrics( } } } - - public static SdkMeterProvider getMeterProvider() { - return (SdkMeterProvider) GlobalOpenTelemetry.getMeterProvider(); - } } diff --git a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java index 32245ffb4c6..eff63f4db72 100644 --- a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java @@ -35,7 +35,7 @@ public class MetricsConfigTest extends SolrTestCaseJ4 { public void testDefaults() { NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml"); SolrMetricManager mgr = - new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig(), null); + new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig()); assertTrue(mgr.getCounterSupplier() instanceof MetricSuppliers.DefaultCounterSupplier); assertTrue(mgr.getMeterSupplier() instanceof MetricSuppliers.DefaultMeterSupplier); assertTrue(mgr.getTimerSupplier() instanceof MetricSuppliers.DefaultTimerSupplier); @@ -54,7 +54,7 @@ public void testCustomReservoir() { System.setProperty("histogram.reservoir", SlidingTimeWindowReservoir.class.getName()); NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml"); SolrMetricManager mgr = - new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig(), null); + new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig()); assertTrue(mgr.getCounterSupplier() instanceof MetricSuppliers.DefaultCounterSupplier); assertTrue(mgr.getMeterSupplier() instanceof MetricSuppliers.DefaultMeterSupplier); assertTrue(mgr.getTimerSupplier() instanceof MetricSuppliers.DefaultTimerSupplier); @@ -73,7 +73,7 @@ public void testCustomSupplier() { System.setProperty("histogram.class", MockHistogramSupplier.class.getName()); NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml"); SolrMetricManager mgr = - new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig(), null); + new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig()); assertTrue(mgr.getCounterSupplier() instanceof MockCounterSupplier); assertTrue(mgr.getMeterSupplier() instanceof MockMeterSupplier); assertTrue(mgr.getTimerSupplier() instanceof MockTimerSupplier); @@ -100,7 +100,7 @@ public void testDisabledMetrics() { System.setProperty("metricsEnabled", "false"); NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml"); SolrMetricManager mgr = - new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig(), null); + new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig()); assertTrue(mgr.getCounterSupplier() instanceof MetricSuppliers.NoOpCounterSupplier); assertTrue(mgr.getMeterSupplier() instanceof MetricSuppliers.NoOpMeterSupplier); assertTrue(mgr.getTimerSupplier() instanceof MetricSuppliers.NoOpTimerSupplier); @@ -111,7 +111,7 @@ public void testDisabledMetrics() { public void testMissingValuesConfig() { NodeConfig cfg = loadNodeConfig("solr-metricsconfig1.xml"); SolrMetricManager mgr = - new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig(), null); + new SolrMetricManager(cfg.getSolrResourceLoader(), cfg.getMetricsConfig()); assertNull("nullNumber", mgr.nullNumber()); assertEquals("notANumber", -1, mgr.notANumber()); assertEquals("nullNumber", "", mgr.nullString()); From 2b2095af6270fdc0b228bc4968eb2abe22dc62c4 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 23 Jun 2025 12:59:39 -0400 Subject: [PATCH 04/19] Test cleanup --- .../solr/metrics/SolrMetricManager.java | 10 +- .../response/PrometheusResponseWriter.java | 3 +- .../solr/metrics/SolrMetricManagerTest.java | 247 ++++-------------- 3 files changed, 54 insertions(+), 206 deletions(-) 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 f98d30fd11d..afe9d66e9c9 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -714,9 +714,9 @@ public MetricRegistry registry(String registry) { } /** - * Get (or create if not present) a named {@link SdkMeterProvider} and {@link - * PrometheusMetricReader} under {@link MeterProviderAndReaders}. Dropwizards's {@link - * SolrMetricManager#registry(String)} equivalent + * Get (or create if not present) a named {@link SdkMeterProvider} under {@link + * MeterProviderAndReaders}. This also registers a corresponding {@link PrometheusMetricReader} + * Dropwizards's {@link SolrMetricManager#registry(String)} equivalent * * @param providerName name of the meter provider and prometheus metric reader * @return existing or newly created meter provider @@ -777,8 +777,8 @@ public void removeRegistry(String registry) { } /** - * Remove and close a named {@link SdkMeterProvider}. Upon closing of Meter Provider, all metric - * readers registered are close. + * Remove and close an existing {@link SdkMeterProvider}. Upon closing of provider, all metric + * readers registered to it are closed. * * @param providerName name of the Meter Provider to remove */ diff --git a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java index 87147dbed11..9609a30678a 100644 --- a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java @@ -67,8 +67,7 @@ public String getContentType(SolrQueryRequest request, SolrQueryResponse respons * Merge a collection of individual {@link MetricSnapshot} instances into one {@link * MetricSnapshots}. This is necessary because we create a {@link SdkMeterProvider} per Solr core * resulting in duplicate metric names across cores which is an illegal format if not under the - * same prometheus grouping. Merging metrics of the same name from multiple {@link - * PrometheusMetricReader}s avoids this illegal exposition format + * same prometheus grouping. */ private MetricSnapshots mergeSnapshots(List snapshots) { Map counterSnapshotMap = new HashMap<>(); 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 7d5d029ed9e..da9f1f7b0a0 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java @@ -33,6 +33,7 @@ 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.HashMap; import java.util.Map; @@ -48,10 +49,22 @@ import org.apache.solr.core.SolrInfoBean; import org.apache.solr.core.SolrResourceLoader; import org.apache.solr.metrics.reporters.MockMetricReporter; +import org.junit.Before; import org.junit.Test; public class SolrMetricManagerTest extends SolrTestCaseJ4 { final String METER_PROVIDER_NAME = "test_provider_name"; + private SolrMetricManager metricManager; + private PrometheusMetricReader reader; + + @Before + public void setUp() throws Exception { + super.setUp(); + this.metricManager = new SolrMetricManager(); + // Initialize a metric reader for tests + metricManager.meterProvider(METER_PROVIDER_NAME); + this.reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); + } // NOCOMMIT: We might not be supported core swapping in 10. Maybe remove this test @Test @@ -296,198 +309,106 @@ private PluginInfo createPluginInfo(String name, String group, String registry) @Test public void testLongCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); LongCounter counter = metricManager.longCounter(METER_PROVIDER_NAME, "my_counter", "desc", null); counter.add(5); counter.add(3); - - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - CounterSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("my_counter")) - .map(CounterSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long counter metric not found")); - assertEquals(8, actual.getDataPoints().getFirst().getValue(), 0.0); + CounterSnapshot actual = snapshot("my_counter", CounterSnapshot.class); + assertEquals(8.0, actual.getDataPoints().getFirst().getValue(), 0.0); } @Test public void testLongUpDownCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); - LongUpDownCounter c = + LongUpDownCounter counter = metricManager.longUpDownCounter(METER_PROVIDER_NAME, "long_updown_counter", "desc", null); - c.add(10); - c.add(-4); - - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("long_updown_counter")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long up down counter metric not found")); - assertEquals(6, actual.getDataPoints().getFirst().getValue(), 0.0); + counter.add(10); + counter.add(-4); + GaugeSnapshot actual = snapshot("long_updown_counter", GaugeSnapshot.class); + assertEquals(6.0, actual.getDataPoints().getFirst().getValue(), 0.0); } @Test public void testDoubleUpDownCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); DoubleUpDownCounter counter = metricManager.doubleUpDownCounter( METER_PROVIDER_NAME, "double_updown_counter", "desc", null); counter.add(10.0); counter.add(-5.5); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("double_updown_counter")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double up down counter metric not found")); + GaugeSnapshot actual = snapshot("double_updown_counter", GaugeSnapshot.class); assertEquals(4.5, actual.getDataPoints().getFirst().getValue(), 0.0); } @Test public void testDoubleCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); DoubleCounter counter = metricManager.doubleCounter(METER_PROVIDER_NAME, "double_counter", "desc", null); counter.add(10.0); counter.add(5.5); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - CounterSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("double_counter")) - .map(CounterSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double counter metric not found")); + CounterSnapshot actual = snapshot("double_counter", CounterSnapshot.class); assertEquals(15.5, actual.getDataPoints().getFirst().getValue(), 0.0); } @Test public void testDoubleHistogram() { - SolrMetricManager metricManager = new SolrMetricManager(); DoubleHistogram histogram = metricManager.doubleHistogram(METER_PROVIDER_NAME, "double_histogram", "desc", null); histogram.record(1.1); histogram.record(2.2); histogram.record(3.3); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - HistogramSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("double_histogram")) - .map(HistogramSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double histogram metric not found")); - + HistogramSnapshot actual = snapshot("double_histogram", HistogramSnapshot.class); assertEquals(3, actual.getDataPoints().getFirst().getCount()); assertEquals(6.6, actual.getDataPoints().getFirst().getSum(), 0.0); } @Test public void testLongHistogram() { - SolrMetricManager metricManager = new SolrMetricManager(); LongHistogram histogram = metricManager.longHistogram(METER_PROVIDER_NAME, "long_histogram", "desc", null); histogram.record(1); histogram.record(2); histogram.record(3); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - HistogramSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("long_histogram")) - .map(HistogramSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long histogram metric not found")); - + HistogramSnapshot actual = snapshot("long_histogram", HistogramSnapshot.class); assertEquals(3, actual.getDataPoints().getFirst().getCount()); assertEquals(6.0, actual.getDataPoints().getFirst().getSum(), 0.0); } @Test public void testDoubleGauge() { - SolrMetricManager metricManager = new SolrMetricManager(); DoubleGauge gauge = metricManager.doubleGauge(METER_PROVIDER_NAME, "double_gauge", "desc", null); gauge.set(10.0); gauge.set(5.5); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("double_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + GaugeSnapshot actual = snapshot("double_gauge", GaugeSnapshot.class); assertEquals(5.5, actual.getDataPoints().getFirst().getValue(), 0.0); } @Test public void testLongGauge() { - SolrMetricManager metricManager = new SolrMetricManager(); LongGauge gauge = metricManager.longGauge(METER_PROVIDER_NAME, "long_gauge", "desc", null); gauge.set(10); gauge.set(5); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("long_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long gauge metric not found")); - + GaugeSnapshot actual = snapshot("long_gauge", GaugeSnapshot.class); assertEquals(5.0, actual.getDataPoints().getFirst().getValue(), 0.0); } @Test public void testObservableLongCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); LongAdder val = new LongAdder(); metricManager.observableLongCounter( METER_PROVIDER_NAME, "obs_long_counter", "desc", m -> m.record(val.longValue()), null); val.add(10); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - CounterSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_counter")) - .map(CounterSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long counter metric not found")); - + CounterSnapshot actual = snapshot("obs_long_counter", CounterSnapshot.class); assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); val.add(20); - metrics = reader.collect(); - actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_counter")) - .map(CounterSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long counter metric not found")); + actual = snapshot("obs_long_counter", CounterSnapshot.class); // Observable metrics value changes anytime metricReader collects() to trigger callback assertEquals(30.0, actual.getDataPoints().getFirst().getValue(), 0.0); @@ -495,32 +416,16 @@ public void testObservableLongCounter() { @Test public void testObservableDoubleCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); DoubleAdder val = new DoubleAdder(); metricManager.observableDoubleCounter( METER_PROVIDER_NAME, "obs_double_counter", "desc", m -> m.record(val.doubleValue()), null); val.add(10.0); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - CounterSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_counter")) - .map(CounterSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double gauge metric not found")); - + CounterSnapshot actual = snapshot("obs_double_counter", CounterSnapshot.class); assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); val.add(0.1); - metrics = reader.collect(); - actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_counter")) - .map(CounterSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + actual = snapshot("obs_double_counter", CounterSnapshot.class); // Observable metrics value changes anytime metricReader collects() to trigger callback assertEquals(10.1, actual.getDataPoints().getFirst().getValue(), 1e-6); @@ -528,32 +433,16 @@ public void testObservableDoubleCounter() { @Test public void testObservableLongGauge() { - SolrMetricManager metricManager = new SolrMetricManager(); AtomicLong val = new AtomicLong(); metricManager.observableLongGauge( METER_PROVIDER_NAME, "obs_long_gauge", "desc", m -> m.record(val.get()), null); val.set(10L); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long gauge metric not found")); - + GaugeSnapshot actual = snapshot("obs_long_gauge", GaugeSnapshot.class); assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); val.set(20L); - metrics = reader.collect(); - actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long gauge metric not found")); + actual = snapshot("obs_long_gauge", GaugeSnapshot.class); // Observable metrics value changes anytime metricReader collects() to trigger callback assertEquals(20.0, actual.getDataPoints().getFirst().getValue(), 0.0); @@ -561,32 +450,16 @@ public void testObservableLongGauge() { @Test public void testObservableDoubleGauge() { - SolrMetricManager metricManager = new SolrMetricManager(); AtomicDouble val = new AtomicDouble(); metricManager.observableDoubleGauge( METER_PROVIDER_NAME, "obs_double_gauge", "desc", m -> m.record(val.get()), null); val.set(10.0); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double gauge metric not found")); - + GaugeSnapshot actual = snapshot("obs_double_gauge", GaugeSnapshot.class); assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); val.set(10.1); - metrics = reader.collect(); - actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double gauge metric not found")); + actual = snapshot("obs_double_gauge", GaugeSnapshot.class); // Observable metrics value changes anytime metricReader collects() to trigger callback assertEquals(10.1, actual.getDataPoints().getFirst().getValue(), 0.0); @@ -594,32 +467,16 @@ public void testObservableDoubleGauge() { @Test public void testObservableLongUpDownCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); LongAdder val = new LongAdder(); metricManager.observableLongUpDownCounter( METER_PROVIDER_NAME, "obs_long_updown_gauge", "desc", m -> m.record(val.longValue()), null); val.add(10L); - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_updown_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long up down metric not found")); - + GaugeSnapshot actual = snapshot("obs_long_updown_gauge", GaugeSnapshot.class); assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); val.add(-20L); - metrics = reader.collect(); - actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_long_updown_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Long up down metric not found")); + actual = snapshot("obs_long_updown_gauge", GaugeSnapshot.class); // Observable metrics value changes anytime metricReader collects() to trigger callback assertEquals(-10.0, actual.getDataPoints().getFirst().getValue(), 0.0); @@ -627,7 +484,6 @@ public void testObservableLongUpDownCounter() { @Test public void testObservableDoubleUpDownCounter() { - SolrMetricManager metricManager = new SolrMetricManager(); DoubleAdder val = new DoubleAdder(); metricManager.observableDoubleUpDownCounter( METER_PROVIDER_NAME, @@ -636,27 +492,11 @@ public void testObservableDoubleUpDownCounter() { m -> m.record(val.doubleValue()), null); val.add(10.0); - - PrometheusMetricReader reader = metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME); - MetricSnapshots metrics = reader.collect(); - - GaugeSnapshot actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_updown_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double up down gauge metric not found")); - + GaugeSnapshot actual = snapshot("obs_double_updown_gauge", GaugeSnapshot.class); assertEquals(10.0, actual.getDataPoints().getFirst().getValue(), 0.0); val.add(-20.1); - metrics = reader.collect(); - actual = - metrics.stream() - .filter(m -> m.getMetadata().getPrometheusName().equals("obs_double_updown_gauge")) - .map(GaugeSnapshot.class::cast) - .findFirst() - .orElseThrow(() -> new AssertionError("Double up down gauge metric not found")); + actual = snapshot("obs_double_updown_gauge", GaugeSnapshot.class); // Observable metrics value changes anytime metricReader collects() to trigger callback assertEquals(-10.1, actual.getDataPoints().getFirst().getValue(), 1e-6); @@ -664,7 +504,6 @@ public void testObservableDoubleUpDownCounter() { @Test public void testCloseMeterProviders() { - SolrMetricManager metricManager = new SolrMetricManager(); LongCounter counter = metricManager.longCounter(METER_PROVIDER_NAME, "my_counter", "desc", null); counter.add(5); @@ -683,4 +522,14 @@ public void testCloseMeterProviders() { assertNull(metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME)); } + + // Helper to grab any snapshot by name and type + private T snapshot(String name, Class cls) { + return reader.collect().stream() + .filter(m -> m.getMetadata().getPrometheusName().equals(name)) + .filter(cls::isInstance) + .map(cls::cast) + .findFirst() + .orElseThrow(() -> new AssertionError("MetricSnapshot not found: " + name)); + } } From a3365b042fbd59ae2474bb7a0d9186f8eb81a10d Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 23 Jun 2025 13:03:49 -0400 Subject: [PATCH 05/19] Cleanup --- .../apache/solr/response/TestPrometheusResponseWriter.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java index c03b645e020..8cdad9ef1ed 100644 --- a/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java +++ b/solr/core/src/test/org/apache/solr/response/TestPrometheusResponseWriter.java @@ -66,7 +66,6 @@ public static void clearMetricsRegistries() { @Before public void ensureCollectionsExist() throws Exception { SolrClient client = cluster.getSolrClient(); - // Tear down any previous run try { CollectionAdminRequest.deleteCollection("collection1").process(client); @@ -77,11 +76,8 @@ public void ensureCollectionsExist() throws Exception { } catch (Exception ignored) { } - // Recreate both CollectionAdminRequest.createCollection("collection1", "config", 1, 1).process(client); CollectionAdminRequest.createCollection("collection2", "config", 1, 1).process(client); - - // Wait for both to come up cluster.waitForActiveCollection("collection1", 1, 1); cluster.waitForActiveCollection("collection2", 1, 1); } From 2a21a5592c2c6eccb2b574e01a25948451f8dad8 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Tue, 24 Jun 2025 16:59:52 -0400 Subject: [PATCH 06/19] Initialize a OTLP exporter --- gradle/libs.versions.toml | 2 +- .../.gradle-wrapper2818896035930485786.tmp | 0 solr/api/gradle.lockfile | 29 ++++++++---- solr/benchmark/gradle.lockfile | 29 ++++++++---- solr/core/build.gradle | 1 + solr/core/gradle.lockfile | 29 ++++++++---- .../solr/core/OpenTelemetryConfigurator.java | 29 ++++++++++++ .../solr/handler/RequestHandlerBase.java | 4 ++ .../solr/metrics/SolrMetricManager.java | 20 +++++--- solr/cross-dc-manager/gradle.lockfile | 29 ++++++++---- solr/modules/analysis-extras/gradle.lockfile | 29 ++++++++---- solr/modules/clustering/gradle.lockfile | 29 ++++++++---- solr/modules/cross-dc/gradle.lockfile | 29 ++++++++---- .../MirroringCollectionsHandlerTest.java | 1 - solr/modules/extraction/gradle.lockfile | 29 ++++++++---- solr/modules/gcs-repository/gradle.lockfile | 29 ++++++++---- solr/modules/jwt-auth/gradle.lockfile | 37 ++++++++------- solr/modules/langid/gradle.lockfile | 29 ++++++++---- solr/modules/llm/gradle.lockfile | 37 ++++++++------- solr/modules/ltr/gradle.lockfile | 29 ++++++++---- solr/modules/opentelemetry/gradle.lockfile | 46 +++++++++---------- solr/modules/s3-repository/gradle.lockfile | 29 ++++++++---- solr/modules/scripting/gradle.lockfile | 29 ++++++++---- solr/modules/sql/gradle.lockfile | 29 ++++++++---- solr/prometheus-exporter/gradle.lockfile | 29 ++++++++---- solr/server/gradle.lockfile | 29 ++++++++---- solr/solr-ref-guide/gradle.lockfile | 29 ++++++++---- solr/solrj-streaming/gradle.lockfile | 29 ++++++++---- solr/solrj-zookeeper/gradle.lockfile | 29 ++++++++---- solr/solrj/gradle.lockfile | 29 ++++++++---- solr/test-framework/gradle.lockfile | 29 ++++++++---- solr/webapp/gradle.lockfile | 29 ++++++++---- 32 files changed, 552 insertions(+), 263 deletions(-) create mode 100644 gradle/wrapper/.gradle-wrapper2818896035930485786.tmp diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a7f22d05ef1..77191fabfe9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -170,7 +170,7 @@ nodegradle-node = "7.0.1" nodejs = "16.20.2" openapi = "7.6.0" openjdk-jmh = "1.37" -opentelemetry = "1.50.0" +opentelemetry = "1.51.0" opentelemetry-prometheus = "1.50.0-alpha" osgi-annotation = "8.1.0" oshai-logging = "7.0.3" 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 38c58e90571..7dd19fc3ed2 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.3=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.9.0=jarValidation,testRuntimeClasspath @@ -69,16 +72,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=jarValidation,testCompileCl io.netty:netty-transport-native-epoll:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath @@ -179,6 +185,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.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 62e08084f88..7286dbb761e 100644 --- a/solr/benchmark/gradle.lockfile +++ b/solr/benchmark/gradle.lockfile @@ -31,6 +31,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,testRuntimeClasspath commons-codec:commons-codec:1.17.1=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -55,16 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,testRuntimeClasspath @@ -151,6 +157,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.1.10=jarValidation,runtimeClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 14119619820..b797fec29c4 100644 --- a/solr/core/build.gradle +++ b/solr/core/build.gradle @@ -156,6 +156,7 @@ dependencies { // Distributed Tracing api libs.opentelemetry.api implementation libs.opentelemetry.context + implementation libs.opentelemetry.exporter.otlp implementation(libs.opentelemetry.exporter.prometheus, { exclude group: "io.prometheus", module: "prometheus-metrics-exporter-httpserver" diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile index 66793066e4b..8d2a1180b2e 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -39,6 +39,9 @@ com.google.protobuf:protobuf-java:3.25.3=annotationProcessor,errorprone,testAnno com.ibm.icu:icu4j:74.2=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.9.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath commons-codec:commons-codec:1.17.1=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath @@ -63,16 +66,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,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-metrics:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,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.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath @@ -183,6 +189,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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/OpenTelemetryConfigurator.java b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java index 7301bc7022f..4f803e87a65 100644 --- a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java +++ b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java @@ -24,7 +24,10 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; import io.opentelemetry.context.propagation.ContextPropagators; +import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter; +import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.metrics.export.MetricExporter; import java.lang.invoke.MethodHandles; import java.util.Locale; import java.util.Map; @@ -33,6 +36,7 @@ import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.NamedList; +import org.apache.solr.metrics.otel.NoopMetricExporter; import org.apache.solr.util.plugin.NamedListInitializedPlugin; import org.apache.solr.util.tracing.SimplePropagator; import org.slf4j.Logger; @@ -48,6 +52,12 @@ public abstract class OpenTelemetryConfigurator implements NamedListInitializedP EnvUtils.getProperty( "solr.otelDefaultConfigurator", "org.apache.solr.opentelemetry.OtelTracerConfigurator"); + public static final Boolean OTLP_EXPORTER_ENABLED = + Boolean.parseBoolean(EnvUtils.getProperty("solr.otlpExporterEnabled", "true")); + + public static final String EXPORTER_TYPE = + EnvUtils.getProperty("solr.otlpExporterProtocol", "grpc"); + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private static volatile boolean loaded = false; @@ -101,6 +111,25 @@ private static void autoConfigureOpenTelemetrySdk(SolrResourceLoader loader) { } } + public static MetricExporter getExporter() { + if (!OTLP_EXPORTER_ENABLED) { + log.info("OTLP metric exporter is disabled."); + return new NoopMetricExporter(); + } + + switch (EXPORTER_TYPE) { + case "grpc": + return OtlpGrpcMetricExporter.getDefault(); + case "http": + return OtlpHttpMetricExporter.getDefault(); + case "none": + return new NoopMetricExporter(); + default: + log.warn("Unknown OTLP exporter type: {}. Defaulting to gRPC exporter.", EXPORTER_TYPE); + return OtlpGrpcMetricExporter.getDefault(); + } + } + private static void configureCustomOpenTelemetrySdk(SolrResourceLoader loader, PluginInfo info) { if (loaded) return; 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 9ac85a27802..8b0ebd1ed11 100644 --- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java @@ -256,6 +256,10 @@ public HandlerMetrics( Attributes.builder().putAll(attributes).put(TYPE_ATTR, "timeouts").build()); otelRequestTimes = new AttributedLongTimer(baseRequestTimeMetric, attributes); + otelRequests.inc(); + otelNumTimeouts.inc(); + otelNumServerErrors.inc(); + otelNumClientErrors.inc(); } } 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 afe9d66e9c9..2dbe11b73e7 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -52,6 +52,8 @@ import io.opentelemetry.api.metrics.ObservableLongUpDownCounter; import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; import io.opentelemetry.sdk.metrics.SdkMeterProvider; +import io.opentelemetry.sdk.metrics.export.MetricExporter; +import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -77,6 +79,7 @@ import org.apache.solr.common.util.NamedList; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.MetricsConfig; +import org.apache.solr.core.OpenTelemetryConfigurator; import org.apache.solr.core.PluginInfo; import org.apache.solr.core.SolrCore; import org.apache.solr.core.SolrInfoBean; @@ -152,6 +155,9 @@ public class SolrMetricManager { private final ConcurrentMap meterProviderAndReaders = new ConcurrentHashMap<>(); + // Get default still pulls the standard OTLP exporter variables + private final MetricExporter otlpExporter = OpenTelemetryConfigurator.getExporter(); + public SolrMetricManager() { metricsConfig = new MetricsConfig.MetricsConfigBuilder().build(); counterSupplier = MetricSuppliers.counterSupplier(null, null); @@ -728,15 +734,17 @@ public SdkMeterProvider meterProvider(String providerName) { providerName, key -> { var reader = new PrometheusMetricReader(true, null); - // NOCOMMIT: We need to add a Periodic Metric Reader here if we want to push with OTLP - // with an exporter - var provider = SdkMeterProvider.builder().registerMetricReader(reader).build(); - return new MeterProviderAndReaders(provider, reader); + var builder = SdkMeterProvider.builder().registerMetricReader(reader); + builder.registerMetricReader( + PeriodicMetricReader.builder(otlpExporter) + .setInterval(5, TimeUnit.SECONDS) + .build()); + return new MeterProviderAndReaders(builder.build(), reader); }) .sdkMeterProvider(); } - // TODO SOLR-17458: We may not need + // NOCOMMIT: Remove private static MetricRegistry getOrCreateRegistry( ConcurrentMap map, String registry) { final MetricRegistry existing = map.get(registry); @@ -758,7 +766,7 @@ private static MetricRegistry getOrCreateRegistry( * * @param registry name of the registry to remove */ - // TODO SOLR-17458: You can't delete OTEL meters + // NOCOMMIT: Remove this public void removeRegistry(String registry) { // close any reporters for this registry first closeReporters(registry, null); diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index 42deb05940b..27c0eeeeff2 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 @@ -72,16 +75,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -193,6 +199,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 09190b03892..148b9a83b02 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -32,6 +32,9 @@ com.ibm.icu:icu4j:74.2=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.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -56,16 +59,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -163,6 +169,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.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 4547445629e..9c0be6cb62d 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -31,6 +31,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -55,16 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -153,6 +159,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 b2522248373..ec07c09b139 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.3=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.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -56,16 +59,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -156,6 +162,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.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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..baf70f1aaa2 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.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; diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile index 9febc006aa1..7de742a2e02 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 @@ -83,16 +86,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -225,6 +231,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 40b20c2468a..f7685006adf 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -60,6 +60,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.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath @@ -104,16 +107,19 @@ io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation, 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:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -203,6 +209,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.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 cd5ef0c024e..e0f2992d656 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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath @@ -68,16 +68,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -178,11 +181,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.1.10=jarValidation,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,testCompileClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:2.1.10=jarValidation,testCompileClasspath,testRuntimeClasspath -org.jetbrains:annotations:26.0.2=jarValidation,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 9cb3aed31ac..34d01922218 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -32,6 +32,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -56,16 +59,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -156,6 +162,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 f4958581520..445d6151247 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 @@ -70,16 +70,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -167,11 +170,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 f1314eb1e87..19bb156a3ee 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -31,6 +31,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -55,16 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -153,6 +159,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index 321694605a5..561f98ebbba 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -34,9 +34,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -74,22 +74,22 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-bom:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-bom:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.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,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 -io.opentelemetry:opentelemetry-sdk-logs:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,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,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-testing:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -179,11 +179,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -org.jetbrains:annotations:26.0.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-common:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index 1c520b72506..b8a221b9ee8 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.3=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.9.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -71,16 +74,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -200,6 +206,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.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 2c416304ee6..f761addb54a 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -31,6 +31,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -55,16 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -152,6 +158,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 ad11eb50db9..a3f79330b3f 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -38,6 +38,9 @@ com.ibm.icu:icu4j:74.2=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.9.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -62,16 +65,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath @@ -179,6 +185,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.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 ef2e6807261..9816ae8fbdb 100644 --- a/solr/prometheus-exporter/gradle.lockfile +++ b/solr/prometheus-exporter/gradle.lockfile @@ -31,6 +31,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath commons-codec:commons-codec:1.17.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath @@ -55,16 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:simpleclient:0.16.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath @@ -156,6 +162,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.1.10=jarValidation,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,solrPlatformLibs,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 0d454681d3d..21f734a88eb 100644 --- a/solr/server/gradle.lockfile +++ b/solr/server/gradle.lockfile @@ -28,6 +28,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,runtimeClasspath,solrCore commons-codec:commons-codec:1.17.1=jarValidation,runtimeClasspath,solrCore @@ -52,16 +55,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=jarValidation,runtimeClassp io.netty:netty-transport-native-epoll:4.1.114.Final=jarValidation,runtimeClasspath,solrCore io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,runtimeClasspath,solrCore io.netty:netty-transport:4.1.114.Final=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,solrCore io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,runtimeClasspath,solrCore io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,solrCore io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,solrCore io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,solrCore @@ -151,6 +157,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.1.10=jarValidation,runtimeClasspath,solrCore +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,runtimeClasspath,solrCore +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,runtimeClasspath,solrCore +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 0707164cae2..314a1399a61 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.3=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.9.0=testRuntimeClasspath commons-codec:commons-codec:1.17.1=testRuntimeClasspath @@ -54,16 +57,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=testCompileClasspath,testRu io.netty:netty-transport-native-epoll:4.1.114.Final=testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.50.0=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.51.0=testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=testRuntimeClasspath @@ -149,6 +155,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.1.10=testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 d60224f0fa2..2f7b463ed1e 100644 --- a/solr/solrj-streaming/gradle.lockfile +++ b/solr/solrj-streaming/gradle.lockfile @@ -33,6 +33,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,testRuntimeClasspath commons-codec:commons-codec:1.17.1=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -69,16 +72,19 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=permitTestUnusedDeclar io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=permitTestUnusedDeclared io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath @@ -175,6 +181,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.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 0de65be2ba7..b369a9b21df 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.3=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.9.0=jarValidation,testRuntimeClasspath commons-codec:commons-codec:1.17.1=jarValidation,permitTestUsedUndeclared,runtimeClasspath,testRuntimeClasspath @@ -71,16 +74,19 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=apiHelper io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=apiHelper io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath @@ -166,6 +172,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.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 5dca5294d0d..82b38ae13aa 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -33,6 +33,9 @@ com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath com.google.protobuf:protobuf-java:3.25.3=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.9.0=jarValidation,testRuntimeClasspath commons-codec:commons-codec:1.17.1=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -69,16 +72,19 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=permitTestUnusedDeclar io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=permitTestUnusedDeclared io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath @@ -168,6 +174,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.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=jarValidation,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 7d8d0cbe56f..92a5b182db8 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.3=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.9.0=apiHelper,compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath commons-codec:commons-codec:1.17.1=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -55,16 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -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-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath @@ -149,6 +155,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.1.10=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index 02dc0b65355..c9e834a1c4f 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/gradle.lockfile @@ -29,6 +29,9 @@ com.google.protobuf:protobuf-java:3.25.3=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.9.0=permitUnusedDeclared,solrCore commons-codec:commons-codec:1.17.1=permitUnusedDeclared,solrCore @@ -53,16 +56,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=permitUnusedDeclared,solrCo io.netty:netty-transport-native-epoll:4.1.114.Final=permitUnusedDeclared,solrCore io.netty:netty-transport-native-unix-common:4.1.114.Final=permitUnusedDeclared,solrCore io.netty:netty-transport:4.1.114.Final=permitUnusedDeclared,solrCore -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-api:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-context:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-exporter-common:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=permitUnusedDeclared,solrCore io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=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 -io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk-trace:1.50.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk:1.50.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-common:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-logs:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-trace:1.51.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk:1.51.0=permitUnusedDeclared,solrCore io.prometheus:prometheus-metrics-exposition-formats:1.1.0=permitUnusedDeclared,solrCore io.prometheus:prometheus-metrics-model:1.1.0=permitUnusedDeclared,solrCore io.sgr:s2-geometry-library-java:1.0.0=permitUnusedDeclared,solrCore @@ -151,6 +157,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.1.10=permitUnusedDeclared,solrCore +org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.10=permitUnusedDeclared,solrCore +org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10=permitUnusedDeclared,solrCore +org.jetbrains.kotlin:kotlin-stdlib:2.1.10=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 From 7eab317bfe8209c03f8a5d33f82703ec2a098a66 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Thu, 26 Jun 2025 13:52:38 -0400 Subject: [PATCH 07/19] Add Noop metric expoter --- .../solr/metrics/otel/NoopMetricExporter.java | 46 +++++++++++++++++++ .../opentelemetry-api-1.50.0.jar.sha1 | 1 - .../opentelemetry-api-1.51.0.jar.sha1 | 1 + .../opentelemetry-context-1.50.0.jar.sha1 | 1 - .../opentelemetry-context-1.51.0.jar.sha1 | 1 + ...ntelemetry-exporter-common-1.50.0.jar.sha1 | 1 - ...ntelemetry-exporter-common-1.51.0.jar.sha1 | 1 + ...pentelemetry-exporter-otlp-1.50.0.jar.sha1 | 1 - ...pentelemetry-exporter-otlp-1.51.0.jar.sha1 | 1 + ...metry-exporter-otlp-common-1.50.0.jar.sha1 | 1 - ...metry-exporter-otlp-common-1.51.0.jar.sha1 | 1 + ...try-exporter-sender-okhttp-1.50.0.jar.sha1 | 1 - ...try-exporter-sender-okhttp-1.51.0.jar.sha1 | 1 + .../opentelemetry-sdk-1.50.0.jar.sha1 | 1 - .../opentelemetry-sdk-1.51.0.jar.sha1 | 1 + .../opentelemetry-sdk-common-1.50.0.jar.sha1 | 1 - .../opentelemetry-sdk-common-1.51.0.jar.sha1 | 1 + ...dk-extension-autoconfigure-1.50.0.jar.sha1 | 1 - ...dk-extension-autoconfigure-1.51.0.jar.sha1 | 1 + ...xtension-autoconfigure-spi-1.50.0.jar.sha1 | 1 - ...xtension-autoconfigure-spi-1.51.0.jar.sha1 | 1 + .../opentelemetry-sdk-logs-1.50.0.jar.sha1 | 1 - .../opentelemetry-sdk-logs-1.51.0.jar.sha1 | 1 + .../opentelemetry-sdk-metrics-1.50.0.jar.sha1 | 1 - .../opentelemetry-sdk-metrics-1.51.0.jar.sha1 | 1 + .../opentelemetry-sdk-testing-1.50.0.jar.sha1 | 1 - .../opentelemetry-sdk-testing-1.51.0.jar.sha1 | 1 + .../opentelemetry-sdk-trace-1.50.0.jar.sha1 | 1 - .../opentelemetry-sdk-trace-1.51.0.jar.sha1 | 1 + .../MirroringCollectionsHandlerTest.java | 2 - 30 files changed, 60 insertions(+), 16 deletions(-) create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/NoopMetricExporter.java delete mode 100644 solr/licenses/opentelemetry-api-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-api-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-context-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-context-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-common-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-otlp-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-otlp-common-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-exporter-sender-okhttp-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-common-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-logs-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-metrics-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-testing-1.51.0.jar.sha1 delete mode 100644 solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 create mode 100644 solr/licenses/opentelemetry-sdk-trace-1.51.0.jar.sha1 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 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/licenses/opentelemetry-api-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-api-1.50.0.jar.sha1 deleted file mode 100644 index 3c7f32b2643..00000000000 --- a/solr/licenses/opentelemetry-api-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -83a69114c56ff2664d21906c62431bceb1c294ed diff --git a/solr/licenses/opentelemetry-api-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-api-1.51.0.jar.sha1 new file mode 100644 index 00000000000..a59c48632cf --- /dev/null +++ b/solr/licenses/opentelemetry-api-1.51.0.jar.sha1 @@ -0,0 +1 @@ +9806bcb604f693fb4b75962df9d4d2d19da4806d diff --git a/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 deleted file mode 100644 index e6d67b0652e..00000000000 --- a/solr/licenses/opentelemetry-context-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -dcdc20a193e82d66ecf5a1a978a799bc19e9b210 diff --git a/solr/licenses/opentelemetry-context-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-context-1.51.0.jar.sha1 new file mode 100644 index 00000000000..0a3d1596e36 --- /dev/null +++ b/solr/licenses/opentelemetry-context-1.51.0.jar.sha1 @@ -0,0 +1 @@ +e807ef03950f5b01f7b8c2698c0abba4072288ed diff --git a/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 deleted file mode 100644 index 827f7773e3f..00000000000 --- a/solr/licenses/opentelemetry-exporter-common-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -73bc444d344995bfcd4705a0261662c27d58c9c9 diff --git a/solr/licenses/opentelemetry-exporter-common-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-common-1.51.0.jar.sha1 new file mode 100644 index 00000000000..9f65e786944 --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-common-1.51.0.jar.sha1 @@ -0,0 +1 @@ +84812087b686c4391d6bd39904462c9828849027 diff --git a/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 deleted file mode 100644 index e5cffae0071..00000000000 --- a/solr/licenses/opentelemetry-exporter-otlp-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -8eb4ce42340ae0443793e9fa41ba9e4f7743e66e diff --git a/solr/licenses/opentelemetry-exporter-otlp-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-1.51.0.jar.sha1 new file mode 100644 index 00000000000..df77a4b2b6b --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-otlp-1.51.0.jar.sha1 @@ -0,0 +1 @@ +e7b0f0e8107ffb04b57a33ee0530df57fe9ff206 diff --git a/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 deleted file mode 100644 index 9f5ed208526..00000000000 --- a/solr/licenses/opentelemetry-exporter-otlp-common-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3b5cf0eeffa6087324f7c57b5d9e48c62b8e2e8c diff --git a/solr/licenses/opentelemetry-exporter-otlp-common-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-otlp-common-1.51.0.jar.sha1 new file mode 100644 index 00000000000..909ac937dfb --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-otlp-common-1.51.0.jar.sha1 @@ -0,0 +1 @@ +6f18bd13954ad52d573e6910edde7aa0c2d07ca5 diff --git a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 deleted file mode 100644 index 30283f96545..00000000000 --- a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -83ee66ff7ff5babc1884533a8c3a6a99fd64d643 diff --git a/solr/licenses/opentelemetry-exporter-sender-okhttp-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.51.0.jar.sha1 new file mode 100644 index 00000000000..6fde8d4e6ab --- /dev/null +++ b/solr/licenses/opentelemetry-exporter-sender-okhttp-1.51.0.jar.sha1 @@ -0,0 +1 @@ +193a1108f9ff040583cbe6a1e9aac331da7bb4c2 diff --git a/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 deleted file mode 100644 index ab4123d5478..00000000000 --- a/solr/licenses/opentelemetry-sdk-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1c6ffdd0bf5a3e42154912f0ab1b1bbd73499af1 diff --git a/solr/licenses/opentelemetry-sdk-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-1.51.0.jar.sha1 new file mode 100644 index 00000000000..b1f38ee606e --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-1.51.0.jar.sha1 @@ -0,0 +1 @@ +f5c088880d3c63c573dd598b53450a6d266df879 diff --git a/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 deleted file mode 100644 index 6739b9258fc..00000000000 --- a/solr/licenses/opentelemetry-sdk-common-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -928c43d75cd0675070d38d041973370823d6face diff --git a/solr/licenses/opentelemetry-sdk-common-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-common-1.51.0.jar.sha1 new file mode 100644 index 00000000000..673e3125160 --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-common-1.51.0.jar.sha1 @@ -0,0 +1 @@ +b5038626586b5756d2a62a2e7307b2cca5386aad diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 deleted file mode 100644 index 4190d963d8f..00000000000 --- a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ad69f784c48db4bdc216f90fddead6c7e26b0727 diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.51.0.jar.sha1 new file mode 100644 index 00000000000..9ce9afec573 --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-1.51.0.jar.sha1 @@ -0,0 +1 @@ +3ed1a610bbbb0d2979254d8a6f70f99ab5f8dab5 diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 deleted file mode 100644 index 3112fe841ec..00000000000 --- a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -47676b3c16db83a30b002d0e9cd9e6405236dd21 diff --git a/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar.sha1 new file mode 100644 index 00000000000..ce8bd930d21 --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-extension-autoconfigure-spi-1.51.0.jar.sha1 @@ -0,0 +1 @@ +676e3163b2773c9b315ff0075d88bcd31d1031d9 diff --git a/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 deleted file mode 100644 index b2e86ef3a8e..00000000000 --- a/solr/licenses/opentelemetry-sdk-logs-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fb7ace15eca8878a2c3cf86320ed1d2fd1c0f206 diff --git a/solr/licenses/opentelemetry-sdk-logs-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-logs-1.51.0.jar.sha1 new file mode 100644 index 00000000000..b0adbd885ee --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-logs-1.51.0.jar.sha1 @@ -0,0 +1 @@ +33f962d29bb6eddf33005b169b0948cd785f82d6 diff --git a/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 deleted file mode 100644 index cbaa77257d3..00000000000 --- a/solr/licenses/opentelemetry-sdk-metrics-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -49432de0171798f671bda82bf7eef6ae283b3b7d diff --git a/solr/licenses/opentelemetry-sdk-metrics-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-metrics-1.51.0.jar.sha1 new file mode 100644 index 00000000000..501bee5e30d --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-metrics-1.51.0.jar.sha1 @@ -0,0 +1 @@ +769cf069a94fa2eac393441efff3fb4408a4327b diff --git a/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 deleted file mode 100644 index 2f3100622bb..00000000000 --- a/solr/licenses/opentelemetry-sdk-testing-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2972ea619333a9c39f5e6104884278ab9d439f69 diff --git a/solr/licenses/opentelemetry-sdk-testing-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-testing-1.51.0.jar.sha1 new file mode 100644 index 00000000000..15913588eb8 --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-testing-1.51.0.jar.sha1 @@ -0,0 +1 @@ +06a63b3805251380afe95eae8b842c20fa23a894 diff --git a/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 deleted file mode 100644 index 3255b03451f..00000000000 --- a/solr/licenses/opentelemetry-sdk-trace-1.50.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -19d60d3b72aa2d0d89a02361eedf7157ecc1fc7d diff --git a/solr/licenses/opentelemetry-sdk-trace-1.51.0.jar.sha1 b/solr/licenses/opentelemetry-sdk-trace-1.51.0.jar.sha1 new file mode 100644 index 00000000000..1f790c3f6bd --- /dev/null +++ b/solr/licenses/opentelemetry-sdk-trace-1.51.0.jar.sha1 @@ -0,0 +1 @@ +22abd9ed89341e341f1968acf1817fd57bf23000 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 baf70f1aaa2..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 @@ -160,8 +160,6 @@ private void runCommand(SolrParams params, boolean expectResult) throws Exceptio @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)); From 6d4f77bfb05f477869064b37094c8adf66bdec2d Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Thu, 26 Jun 2025 16:06:47 -0400 Subject: [PATCH 08/19] Add test for exporter --- solr/core/build.gradle | 2 + solr/core/gradle.lockfile | 1 + .../solr/core/OpenTelemetryConfigurator.java | 31 ++++++----- .../solr/metrics/SolrMetricManager.java | 16 ++++-- .../solr/blockcache/BufferStoreTest.java | 3 +- .../solr/metrics/SolrMetricManagerTest.java | 51 +++++++++++++++---- .../solr/metrics/SolrMetricReporterTest.java | 3 +- .../apache/solr/search/TestCaffeineCache.java | 3 +- .../apache/solr/search/TestSolrCachePerf.java | 3 +- .../org/apache/solr/search/TestThinCache.java | 3 +- .../java/org/apache/solr/SolrTestCaseJ4.java | 2 +- 11 files changed, 83 insertions(+), 35 deletions(-) diff --git a/solr/core/build.gradle b/solr/core/build.gradle index b797fec29c4..b0802c356da 100644 --- a/solr/core/build.gradle +++ b/solr/core/build.gradle @@ -218,4 +218,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 8d2a1180b2e..dda6ff06377 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -77,6 +77,7 @@ io.opentelemetry:opentelemetry-sdk-common:1.51.0=compileClasspath,jarValidation, io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.opentelemetry:opentelemetry-sdk-logs:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-testing:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-sdk-trace:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-sdk:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath diff --git a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java index 4f803e87a65..c31f338733e 100644 --- a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java +++ b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java @@ -53,10 +53,13 @@ public abstract class OpenTelemetryConfigurator implements NamedListInitializedP "solr.otelDefaultConfigurator", "org.apache.solr.opentelemetry.OtelTracerConfigurator"); public static final Boolean OTLP_EXPORTER_ENABLED = - Boolean.parseBoolean(EnvUtils.getProperty("solr.otlpExporterEnabled", "true")); + Boolean.parseBoolean(EnvUtils.getProperty("solr.otlpMetricExporterEnabled", "true")); - public static final String EXPORTER_TYPE = - EnvUtils.getProperty("solr.otlpExporterProtocol", "grpc"); + public static final String OTLP_EXPORTER_PROTOCOL = + EnvUtils.getProperty("solr.otlpMetricExporterProtocol", "grpc"); + + public static final int OTLP_EXPORTER_INTERVAL = + Integer.parseInt(EnvUtils.getProperty("solr.otlpMetricExporterInterval", "10000")); private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @@ -117,17 +120,17 @@ public static MetricExporter getExporter() { return new NoopMetricExporter(); } - switch (EXPORTER_TYPE) { - case "grpc": - return OtlpGrpcMetricExporter.getDefault(); - case "http": - return OtlpHttpMetricExporter.getDefault(); - case "none": - return new NoopMetricExporter(); - default: - log.warn("Unknown OTLP exporter type: {}. Defaulting to gRPC exporter.", EXPORTER_TYPE); - return OtlpGrpcMetricExporter.getDefault(); - } + 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(); + } + }; } private static void configureCustomOpenTelemetrySdk(SolrResourceLoader loader, PluginInfo info) { 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 2dbe11b73e7..967fd4d95e9 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,8 @@ */ package org.apache.solr.metrics; +import static org.apache.solr.core.OpenTelemetryConfigurator.OTLP_EXPORTER_INTERVAL; + import com.codahale.metrics.Counter; import com.codahale.metrics.Gauge; import com.codahale.metrics.Histogram; @@ -156,10 +158,11 @@ public class SolrMetricManager { new ConcurrentHashMap<>(); // Get default still pulls the standard OTLP exporter variables - private final MetricExporter otlpExporter = OpenTelemetryConfigurator.getExporter(); + private final MetricExporter metricExporter; - 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); @@ -168,6 +171,7 @@ public SolrMetricManager() { public SolrMetricManager(SolrResourceLoader loader, MetricsConfig metricsConfig) { this.metricsConfig = metricsConfig; + this.metricExporter = OpenTelemetryConfigurator.getExporter(); counterSupplier = MetricSuppliers.counterSupplier(loader, metricsConfig.getCounterSupplier()); meterSupplier = MetricSuppliers.meterSupplier(loader, metricsConfig.getMeterSupplier()); timerSupplier = MetricSuppliers.timerSupplier(loader, metricsConfig.getTimerSupplier()); @@ -736,8 +740,8 @@ public SdkMeterProvider meterProvider(String providerName) { var reader = new PrometheusMetricReader(true, null); var builder = SdkMeterProvider.builder().registerMetricReader(reader); builder.registerMetricReader( - PeriodicMetricReader.builder(otlpExporter) - .setInterval(5, TimeUnit.SECONDS) + PeriodicMetricReader.builder(metricExporter) + .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) .build()); return new MeterProviderAndReaders(builder.build(), reader); }) @@ -1691,6 +1695,10 @@ public PrometheusMetricReader getPrometheusMetricReader(String providerName) { return meterProviderAndReaders.get(name).prometheusMetricReader(); } + public MetricExporter getMetricExporter() { + return metricExporter; + } + private record MeterProviderAndReaders( SdkMeterProvider sdkMeterProvider, PrometheusMetricReader prometheusMetricReader) {} } 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 46bc29685ca..47860b20ba8 100644 --- a/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java +++ b/solr/core/src/test/org/apache/solr/blockcache/BufferStoreTest.java @@ -24,6 +24,7 @@ import org.apache.solr.metrics.MetricsMap; import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricsContext; +import org.apache.solr.metrics.otel.NoopMetricExporter; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -39,7 +40,7 @@ public class BufferStoreTest extends SolrTestCase { @Before public void setup() { metrics = new Metrics(); - SolrMetricManager metricManager = new SolrMetricManager(); + SolrMetricManager metricManager = new SolrMetricManager(new NoopMetricExporter()); String 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 da9f1f7b0a0..f806b21729f 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java @@ -30,6 +30,8 @@ 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; @@ -49,10 +51,14 @@ import org.apache.solr.core.SolrInfoBean; import org.apache.solr.core.SolrResourceLoader; import org.apache.solr.metrics.reporters.MockMetricReporter; +import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class SolrMetricManagerTest extends SolrTestCaseJ4 { + private static final Logger log = LoggerFactory.getLogger(SolrMetricManagerTest.class); final String METER_PROVIDER_NAME = "test_provider_name"; private SolrMetricManager metricManager; private PrometheusMetricReader reader; @@ -60,19 +66,24 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 { @Before public void setUp() throws Exception { super.setUp(); - this.metricManager = new SolrMetricManager(); + System.setProperty("solr.otlpMetricExporterInterval", "1000"); + 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 { + super.tearDown(); + metricManager.closeMeterProvider(METER_PROVIDER_NAME); + } + // NOCOMMIT: We might not be supported core swapping in 10. Maybe remove this test @Test public void testSwapRegistries() { Random r = random(); - SolrMetricManager metricManager = new SolrMetricManager(); - Map metrics1 = SolrMetricTestUtils.getRandomMetrics(r, true); Map metrics2 = SolrMetricTestUtils.getRandomMetrics(r, true); String fromName = "from-" + TestUtil.randomSimpleString(r, 1, 10); @@ -114,8 +125,6 @@ public void testSwapRegistries() { public void testRegisterAll() throws Exception { Random r = random(); - SolrMetricManager metricManager = new SolrMetricManager(); - Map metrics = SolrMetricTestUtils.getRandomMetrics(r, true); MetricRegistry mr = new MetricRegistry(); for (Map.Entry entry : metrics.entrySet()) { @@ -144,8 +153,6 @@ public void testRegisterAll() throws Exception { public void testClearMetrics() { Random r = random(); - SolrMetricManager metricManager = new SolrMetricManager(); - Map metrics = SolrMetricTestUtils.getRandomMetrics(r, true); String registryName = TestUtil.randomSimpleString(r, 1, 10); @@ -187,8 +194,6 @@ public void testClearMetrics() { 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"); @@ -223,8 +228,6 @@ public void testRegistryName() { public void testReporters() throws Exception { try (SolrResourceLoader loader = new SolrResourceLoader(createTempDir())) { - SolrMetricManager metricManager = new SolrMetricManager(); - PluginInfo[] plugins = new PluginInfo[] { createPluginInfo("universal_foo", null, null), @@ -502,6 +505,32 @@ public void testObservableDoubleUpDownCounter() { 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(); + + // Wait 3 seconds for the exporter to push metrics + Thread.sleep(3000); + + var metrics = exporter.getFinishedMetricItems(); + + MetricData actual = + metrics.stream() + .filter(m -> "my_counter".equals(m.getName())) + .findFirst() + .orElseThrow(() -> new AssertionError("my_counter metric not found from exporter")); + + // Exporter pushes metrics every 1 second, so we only need to find at least 1 metric point with + // the correct value + assertTrue( + "Exported counter had different recorded value than expected", + actual.getLongSumData().getPoints().stream().anyMatch(p -> p.getValue() == 8L)); + } + @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..62924e68cf0 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricReporterTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricReporterTest.java @@ -23,6 +23,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.params.CoreAdminParams; import org.apache.solr.core.PluginInfo; +import org.apache.solr.metrics.otel.NoopMetricExporter; import org.apache.solr.metrics.reporters.MockMetricReporter; import org.apache.solr.schema.FieldType; import org.junit.Test; @@ -33,7 +34,7 @@ public class SolrMetricReporterTest extends SolrTestCaseJ4 { public void testInit() throws Exception { Random random = random(); - SolrMetricManager metricManager = new SolrMetricManager(); + SolrMetricManager metricManager = new SolrMetricManager(new NoopMetricExporter()); 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 d70ea43a468..81b06a54b4e 100644 --- a/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java +++ b/solr/core/src/test/org/apache/solr/search/TestCaffeineCache.java @@ -35,12 +35,13 @@ import org.apache.solr.SolrTestCase; import org.apache.solr.metrics.SolrMetricManager; import org.apache.solr.metrics.SolrMetricsContext; +import org.apache.solr.metrics.otel.NoopMetricExporter; import org.junit.Test; /** Test for {@link CaffeineCache}. */ public class TestCaffeineCache extends SolrTestCase { - SolrMetricManager metricManager = new SolrMetricManager(); + SolrMetricManager metricManager = new SolrMetricManager(new NoopMetricExporter()); 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 989140b28f0..9b32ab4b387 100644 --- a/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java +++ b/solr/core/src/test/org/apache/solr/search/TestSolrCachePerf.java @@ -30,6 +30,7 @@ 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.junit.Before; import org.junit.Test; import org.junit.runners.model.MultipleFailureException; @@ -98,7 +99,7 @@ private void doTestGetPutCompute( boolean useCompute) throws Exception { for (Class clazz : IMPLS) { - SolrMetricManager metricManager = new SolrMetricManager(); + SolrMetricManager metricManager = new SolrMetricManager(new NoopMetricExporter()); @SuppressWarnings({"unchecked"}) SolrCache cache = clazz.getDeclaredConstructor().newInstance(); Map params = new HashMap<>(); 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 de14da997ea..7892865b1ac 100644 --- a/solr/core/src/test/org/apache/solr/search/TestThinCache.java +++ b/solr/core/src/test/org/apache/solr/search/TestThinCache.java @@ -27,6 +27,7 @@ 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.EmbeddedSolrServerTestRule; import org.apache.solr.util.TestHarness; import org.apache.solr.util.stats.MetricUtils; @@ -84,7 +85,7 @@ public static void setupSolrHome() throws Exception { lrf = h.getRequestFactory("/select", 0, 20); } - SolrMetricManager metricManager = new SolrMetricManager(); + SolrMetricManager metricManager = new SolrMetricManager(new NoopMetricExporter()); String registry = TestUtil.randomSimpleString(random(), 2, 10); String scope = TestUtil.randomSimpleString(random(), 2, 10); 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 2d7a1d9a172..7c5f77a520e 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 @@ protected void assertExceptionThrownWithMessageContaining( @BeforeClass public static void setupTestCases() { - OpenTelemetryConfigurator.resetForTest(); resetExceptionIgnores(); testExecutor = @@ -340,6 +339,7 @@ public static void teardownTestCases() throws Exception { testSolrHome = null; IpTables.unblockAllPorts(); + OpenTelemetryConfigurator.resetForTest(); } } From 006e308ee55137716e53fc8cba642765fb6e7c21 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Thu, 26 Jun 2025 16:19:10 -0400 Subject: [PATCH 09/19] Create exporter factory --- .../solr/core/OpenTelemetryConfigurator.java | 32 -------------- .../solr/metrics/SolrMetricManager.java | 6 +-- .../metrics/otel/OtlpExporterFactory.java | 42 +++++++++++++++++++ 3 files changed, 45 insertions(+), 35 deletions(-) create mode 100644 solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java diff --git a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java index c31f338733e..7301bc7022f 100644 --- a/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java +++ b/solr/core/src/java/org/apache/solr/core/OpenTelemetryConfigurator.java @@ -24,10 +24,7 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; import io.opentelemetry.context.propagation.ContextPropagators; -import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter; -import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.sdk.OpenTelemetrySdk; -import io.opentelemetry.sdk.metrics.export.MetricExporter; import java.lang.invoke.MethodHandles; import java.util.Locale; import java.util.Map; @@ -36,7 +33,6 @@ import org.apache.solr.common.util.EnvUtils; import org.apache.solr.common.util.ExecutorUtil; import org.apache.solr.common.util.NamedList; -import org.apache.solr.metrics.otel.NoopMetricExporter; import org.apache.solr.util.plugin.NamedListInitializedPlugin; import org.apache.solr.util.tracing.SimplePropagator; import org.slf4j.Logger; @@ -52,15 +48,6 @@ public abstract class OpenTelemetryConfigurator implements NamedListInitializedP EnvUtils.getProperty( "solr.otelDefaultConfigurator", "org.apache.solr.opentelemetry.OtelTracerConfigurator"); - public static final Boolean OTLP_EXPORTER_ENABLED = - Boolean.parseBoolean(EnvUtils.getProperty("solr.otlpMetricExporterEnabled", "true")); - - public static final String OTLP_EXPORTER_PROTOCOL = - EnvUtils.getProperty("solr.otlpMetricExporterProtocol", "grpc"); - - public static final int OTLP_EXPORTER_INTERVAL = - Integer.parseInt(EnvUtils.getProperty("solr.otlpMetricExporterInterval", "10000")); - private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private static volatile boolean loaded = false; @@ -114,25 +101,6 @@ private static void autoConfigureOpenTelemetrySdk(SolrResourceLoader loader) { } } - public static 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(); - } - }; - } - private static void configureCustomOpenTelemetrySdk(SolrResourceLoader loader, PluginInfo info) { if (loaded) return; 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 967fd4d95e9..2e2d208521e 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -16,7 +16,7 @@ */ package org.apache.solr.metrics; -import static org.apache.solr.core.OpenTelemetryConfigurator.OTLP_EXPORTER_INTERVAL; +import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_INTERVAL; import com.codahale.metrics.Counter; import com.codahale.metrics.Gauge; @@ -81,12 +81,12 @@ import org.apache.solr.common.util.NamedList; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.MetricsConfig; -import org.apache.solr.core.OpenTelemetryConfigurator; import org.apache.solr.core.PluginInfo; import org.apache.solr.core.SolrCore; import org.apache.solr.core.SolrInfoBean; import org.apache.solr.core.SolrResourceLoader; import org.apache.solr.logging.MDCLoggingContext; +import org.apache.solr.metrics.otel.OtlpExporterFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -171,7 +171,7 @@ public SolrMetricManager(MetricExporter exporter) { public SolrMetricManager(SolrResourceLoader loader, MetricsConfig metricsConfig) { this.metricsConfig = metricsConfig; - this.metricExporter = OpenTelemetryConfigurator.getExporter(); + this.metricExporter = OtlpExporterFactory.getExporter(); counterSupplier = MetricSuppliers.counterSupplier(loader, metricsConfig.getCounterSupplier()); meterSupplier = MetricSuppliers.meterSupplier(loader, metricsConfig.getMeterSupplier()); timerSupplier = MetricSuppliers.timerSupplier(loader, metricsConfig.getTimerSupplier()); diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java b/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java new file mode 100644 index 00000000000..8bf3930313f --- /dev/null +++ b/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java @@ -0,0 +1,42 @@ +package org.apache.solr.metrics.otel; + +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.common.util.EnvUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class OtlpExporterFactory { + + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + + public static final Boolean OTLP_EXPORTER_ENABLED = + Boolean.parseBoolean(EnvUtils.getProperty("solr.otlpMetricExporterEnabled", "false")); + + public static final String OTLP_EXPORTER_PROTOCOL = + EnvUtils.getProperty("solr.otlpMetricExporterProtocol", "grpc"); + + public static final int OTLP_EXPORTER_INTERVAL = + Integer.parseInt(EnvUtils.getProperty("solr.otlpMetricExporterInterval", "60000")); + + public static 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(); + } + }; + } +} From d9762c680e6b74252710fd1226734d0ef03ef4ef Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 30 Jun 2025 12:30:00 -0400 Subject: [PATCH 10/19] Drop revert opentelemetry version upgrade --- gradle/libs.versions.toml | 2 +- solr/api/gradle.lockfile | 24 ++++++++-------- solr/benchmark/gradle.lockfile | 24 ++++++++-------- solr/core/gradle.lockfile | 26 ++++++++--------- solr/cross-dc-manager/gradle.lockfile | 24 ++++++++-------- solr/modules/analysis-extras/gradle.lockfile | 24 ++++++++-------- solr/modules/clustering/gradle.lockfile | 24 ++++++++-------- solr/modules/cross-dc/gradle.lockfile | 24 ++++++++-------- solr/modules/extraction/gradle.lockfile | 24 ++++++++-------- solr/modules/gcs-repository/gradle.lockfile | 24 ++++++++-------- solr/modules/jwt-auth/gradle.lockfile | 24 ++++++++-------- solr/modules/langid/gradle.lockfile | 24 ++++++++-------- solr/modules/llm/gradle.lockfile | 24 ++++++++-------- solr/modules/ltr/gradle.lockfile | 24 ++++++++-------- solr/modules/opentelemetry/gradle.lockfile | 30 ++++++++++---------- solr/modules/s3-repository/gradle.lockfile | 24 ++++++++-------- solr/modules/scripting/gradle.lockfile | 24 ++++++++-------- solr/modules/sql/gradle.lockfile | 24 ++++++++-------- solr/prometheus-exporter/gradle.lockfile | 24 ++++++++-------- solr/server/gradle.lockfile | 24 ++++++++-------- solr/solr-ref-guide/gradle.lockfile | 24 ++++++++-------- solr/solrj-streaming/gradle.lockfile | 24 ++++++++-------- solr/solrj-zookeeper/gradle.lockfile | 24 ++++++++-------- solr/solrj/gradle.lockfile | 24 ++++++++-------- solr/test-framework/gradle.lockfile | 24 ++++++++-------- solr/webapp/gradle.lockfile | 24 ++++++++-------- 26 files changed, 305 insertions(+), 305 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 77191fabfe9..a7f22d05ef1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -170,7 +170,7 @@ nodegradle-node = "7.0.1" nodejs = "16.20.2" openapi = "7.6.0" openjdk-jmh = "1.37" -opentelemetry = "1.51.0" +opentelemetry = "1.50.0" opentelemetry-prometheus = "1.50.0-alpha" osgi-annotation = "8.1.0" oshai-logging = "7.0.3" diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile index 7dd19fc3ed2..3c8ae7197fa 100644 --- a/solr/api/gradle.lockfile +++ b/solr/api/gradle.lockfile @@ -72,19 +72,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=jarValidation,testCompileCl io.netty:netty-transport-native-epoll:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile index 7286dbb761e..d6173b5485d 100644 --- a/solr/benchmark/gradle.lockfile +++ b/solr/benchmark/gradle.lockfile @@ -58,19 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,testRuntimeClasspath diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile index dda6ff06377..40d37433923 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -66,20 +66,20 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +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-otlp-common: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=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-testing:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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=compileClasspath,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-exposition-formats:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index 27c0eeeeff2..d54cd16ac28 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -75,19 +75,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile index 148b9a83b02..c6369a43611 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -59,19 +59,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile index 9c0be6cb62d..c15fb63a768 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -58,19 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/cross-dc/gradle.lockfile b/solr/modules/cross-dc/gradle.lockfile index ec07c09b139..e300e1fc418 100644 --- a/solr/modules/cross-dc/gradle.lockfile +++ b/solr/modules/cross-dc/gradle.lockfile @@ -59,19 +59,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile index 7de742a2e02..1cdfcdfede6 100644 --- a/solr/modules/extraction/gradle.lockfile +++ b/solr/modules/extraction/gradle.lockfile @@ -86,19 +86,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile index f7685006adf..fb9afef8a39 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -107,19 +107,19 @@ io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation, 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:opentelemetry-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/jwt-auth/gradle.lockfile b/solr/modules/jwt-auth/gradle.lockfile index e0f2992d656..c1237c10397 100644 --- a/solr/modules/jwt-auth/gradle.lockfile +++ b/solr/modules/jwt-auth/gradle.lockfile @@ -68,19 +68,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile index 34d01922218..b124e103d3e 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -59,19 +59,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/llm/gradle.lockfile b/solr/modules/llm/gradle.lockfile index 445d6151247..febc59dc7ac 100644 --- a/solr/modules/llm/gradle.lockfile +++ b/solr/modules/llm/gradle.lockfile @@ -70,19 +70,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile index 19bb156a3ee..c65eb9fcc82 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -58,19 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index 561f98ebbba..a21e7725e4b 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -74,22 +74,22 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-bom:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-bom:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-testing:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=compileClasspath,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=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 +io.opentelemetry:opentelemetry-sdk-logs:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,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,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index b8a221b9ee8..d4ad26fcbdb 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/gradle.lockfile @@ -74,19 +74,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile index f761addb54a..30c0c6af9d3 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -58,19 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile index a3f79330b3f..14b2641867e 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -65,19 +65,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/prometheus-exporter/gradle.lockfile b/solr/prometheus-exporter/gradle.lockfile index 9816ae8fbdb..86deee993f0 100644 --- a/solr/prometheus-exporter/gradle.lockfile +++ b/solr/prometheus-exporter/gradle.lockfile @@ -58,19 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=compileClasspath,jarValidat io.netty:netty-transport-native-epoll:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,solrPlatformLibs,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,solrPlatformLibs,testRuntimeClasspath io.prometheus:simpleclient:0.16.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile index 21f734a88eb..7d789ce8d2a 100644 --- a/solr/server/gradle.lockfile +++ b/solr/server/gradle.lockfile @@ -55,19 +55,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=jarValidation,runtimeClassp io.netty:netty-transport-native-epoll:4.1.114.Final=jarValidation,runtimeClasspath,solrCore io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,runtimeClasspath,solrCore io.netty:netty-transport:4.1.114.Final=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,runtimeClasspath,solrCore +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-otlp-common:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-exporter-otlp: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.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,runtimeClasspath,solrCore -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,runtimeClasspath,solrCore +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,runtimeClasspath,solrCore io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,solrCore io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,solrCore io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,solrCore diff --git a/solr/solr-ref-guide/gradle.lockfile b/solr/solr-ref-guide/gradle.lockfile index 314a1399a61..a8e3ef13074 100644 --- a/solr/solr-ref-guide/gradle.lockfile +++ b/solr/solr-ref-guide/gradle.lockfile @@ -57,19 +57,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=testCompileClasspath,testRu io.netty:netty-transport-native-epoll:4.1.114.Final=testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.50.0=testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=testRuntimeClasspath diff --git a/solr/solrj-streaming/gradle.lockfile b/solr/solrj-streaming/gradle.lockfile index 2f7b463ed1e..c9aee3fe3a4 100644 --- a/solr/solrj-streaming/gradle.lockfile +++ b/solr/solrj-streaming/gradle.lockfile @@ -72,19 +72,19 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=permitTestUnusedDeclar io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=permitTestUnusedDeclared io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/solrj-zookeeper/gradle.lockfile b/solr/solrj-zookeeper/gradle.lockfile index b369a9b21df..2f21c69b2e5 100644 --- a/solr/solrj-zookeeper/gradle.lockfile +++ b/solr/solrj-zookeeper/gradle.lockfile @@ -74,19 +74,19 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=apiHelper io.netty:netty-transport-native-unix-common:4.1.114.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=apiHelper io.netty:netty-transport:4.1.114.Final=compileClasspath,jarValidation,permitTestUsedUndeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index 82b38ae13aa..b95519f50c0 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -72,19 +72,19 @@ io.netty:netty-transport-native-unix-common:4.1.105.Final=permitTestUnusedDeclar io.netty:netty-transport-native-unix-common:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.105.Final=permitTestUnusedDeclared io.netty:netty-transport:4.1.114.Final=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=jarValidation,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.50.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp-common:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=jarValidation,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=jarValidation,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath diff --git a/solr/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile index 92a5b182db8..921120c1cca 100644 --- a/solr/test-framework/gradle.lockfile +++ b/solr/test-framework/gradle.lockfile @@ -58,19 +58,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=apiHelper,compileClasspath, io.netty:netty-transport-native-epoll:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport-native-unix-common:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-transport:4.1.114.Final=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-api:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-context:1.51.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.50.0=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +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-otlp-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-common:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath -io.opentelemetry:opentelemetry-sdk:1.51.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-logs:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.50.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-exposition-formats:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.prometheus:prometheus-metrics-model:1.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath io.sgr:s2-geometry-library-java:1.0.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index c9e834a1c4f..4e04853b686 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/gradle.lockfile @@ -56,19 +56,19 @@ io.netty:netty-transport-classes-epoll:4.1.114.Final=permitUnusedDeclared,solrCo io.netty:netty-transport-native-epoll:4.1.114.Final=permitUnusedDeclared,solrCore io.netty:netty-transport-native-unix-common:4.1.114.Final=permitUnusedDeclared,solrCore io.netty:netty-transport:4.1.114.Final=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-api:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-context:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-exporter-common:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-exporter-otlp-common:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-exporter-otlp:1.51.0=permitUnusedDeclared,solrCore +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-otlp-common:1.50.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-exporter-otlp:1.50.0=permitUnusedDeclared,solrCore io.opentelemetry:opentelemetry-exporter-prometheus:1.50.0-alpha=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk-common:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk-logs:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk-metrics:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk-trace:1.51.0=permitUnusedDeclared,solrCore -io.opentelemetry:opentelemetry-sdk:1.51.0=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 +io.opentelemetry:opentelemetry-sdk-metrics:1.50.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk-trace:1.50.0=permitUnusedDeclared,solrCore +io.opentelemetry:opentelemetry-sdk:1.50.0=permitUnusedDeclared,solrCore io.prometheus:prometheus-metrics-exposition-formats:1.1.0=permitUnusedDeclared,solrCore io.prometheus:prometheus-metrics-model:1.1.0=permitUnusedDeclared,solrCore io.sgr:s2-geometry-library-java:1.0.0=permitUnusedDeclared,solrCore From 3630cc4447e5b04cc6b9fd112e3255c3b970df92 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 30 Jun 2025 12:51:20 -0400 Subject: [PATCH 11/19] Add some java docs --- .../solr/handler/RequestHandlerBase.java | 4 ---- .../solr/metrics/SolrMetricManager.java | 1 - .../metrics/otel/OtlpExporterFactory.java | 23 +++++++++++++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) 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 8b0ebd1ed11..9ac85a27802 100644 --- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java @@ -256,10 +256,6 @@ public HandlerMetrics( Attributes.builder().putAll(attributes).put(TYPE_ATTR, "timeouts").build()); otelRequestTimes = new AttributedLongTimer(baseRequestTimeMetric, attributes); - otelRequests.inc(); - otelNumTimeouts.inc(); - otelNumServerErrors.inc(); - otelNumClientErrors.inc(); } } 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 2e2d208521e..173e236dbb2 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -157,7 +157,6 @@ public class SolrMetricManager { private final ConcurrentMap meterProviderAndReaders = new ConcurrentHashMap<>(); - // Get default still pulls the standard OTLP exporter variables private final MetricExporter metricExporter; public SolrMetricManager(MetricExporter exporter) { diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java b/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java index 8bf3930313f..90a7add3c9c 100644 --- a/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/OtlpExporterFactory.java @@ -1,3 +1,19 @@ +/* + * 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.exporter.otlp.http.metrics.OtlpHttpMetricExporter; @@ -8,6 +24,13 @@ 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 { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); From 9bd2debb24fa872248818141198b8df9b3d46296 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 30 Jun 2025 13:12:00 -0400 Subject: [PATCH 12/19] Wrong merged conflicts --- .../org/apache/solr/core/CoreContainer.java | 2 -- .../solr/metrics/SolrMetricManager.java | 19 ------------------- .../solr/metrics/SolrMetricManagerTest.java | 4 ++-- .../java/org/apache/solr/SolrTestCaseJ4.java | 1 - 4 files changed, 2 insertions(+), 24 deletions(-) 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 60ed6155d7c..4a021e82379 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -2280,9 +2280,7 @@ private void unloadWithoutCoreOp( } // delete metrics specific to this core - // NOCOMMIT: Remove this metricManager.removeRegistry(core.getCoreMetricManager().getRegistryName()); - metricManager.closeMeterProvider(core.getCoreMetricManager().getRegistryName()); if (zkSys.getZkController() != null) { // cancel recovery in cloud mode 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 1c387ab3ea3..250fde0527c 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -630,10 +630,6 @@ public Set registryNames() { return set; } - public Set providerNames() { - return meterProviderAndReaders.keySet(); - } - /** * Check whether a registry with a given name already exists. * @@ -794,21 +790,6 @@ public void removeRegistry(String registry) { }); } - /** - * Remove and close an existing {@link SdkMeterProvider}. Upon closing of provider, all metric - * readers registered to it are closed. - * - * @param providerName name of the Meter Provider to remove - */ - public void closeMeterProvider(String providerName) { - meterProviderAndReaders.computeIfPresent( - enforcePrefix(providerName), - (key, meterAndReader) -> { - meterAndReader.sdkMeterProvider().close(); - return null; - }); - } - /** * Swap registries. This is useful eg. during {@link org.apache.solr.core.SolrCore} rename or swap * operations. NOTE: this operation is not supported for shared registries. 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 3dfbf897212..baae96e7fbb 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java @@ -73,7 +73,7 @@ public void setUp() throws Exception { @After public void tearDown() throws Exception { super.tearDown(); - metricManager.closeMeterProvider(METER_PROVIDER_NAME); + metricManager.removeRegistry(METER_PROVIDER_NAME); } // NOCOMMIT: We might not be supported core swapping in 10. Maybe remove this test @@ -544,7 +544,7 @@ public void testCloseMeterProviders() { .orElseThrow(() -> new AssertionError("LongCounter metric not found")); assertEquals(5, data.getDataPoints().getFirst().getValue(), 0.0); - metricManager.closeMeterProvider(METER_PROVIDER_NAME); + metricManager.removeRegistry(METER_PROVIDER_NAME); assertNull(metricManager.getPrometheusMetricReader(METER_PROVIDER_NAME)); } 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 02b23fee1b5..85e6f2fd31c 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -340,7 +340,6 @@ public static void teardownTestCases() throws Exception { testSolrHome = null; IpTables.unblockAllPorts(); - OpenTelemetryConfigurator.resetForTest(); } } From e3f2a58b9af5c86a7cbac3af6d23da5d4611b7eb Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 30 Jun 2025 13:14:39 -0400 Subject: [PATCH 13/19] Tidy lines --- .../org/apache/solr/metrics/SolrMetricManager.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 250fde0527c..9615eac9379 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -732,11 +732,13 @@ public SdkMeterProvider meterProvider(String providerName) { providerName, key -> { var reader = new PrometheusMetricReader(true, null); - var builder = SdkMeterProvider.builder().registerMetricReader(reader); - builder.registerMetricReader( - PeriodicMetricReader.builder(metricExporter) - .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) - .build()); + var builder = + SdkMeterProvider.builder() + .registerMetricReader(reader) + .registerMetricReader( + PeriodicMetricReader.builder(metricExporter) + .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) + .build()); return new MeterProviderAndReaders(builder.build(), reader); }) .sdkMeterProvider(); From d33a85df3ac5ddb4401f36d9ed3c34f7a02c43fc Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Thu, 3 Jul 2025 16:35:45 -0400 Subject: [PATCH 14/19] Add trace based exemplars --- .../src/java/org/apache/solr/metrics/SolrMetricManager.java | 3 +++ 1 file changed, 3 insertions(+) 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 9615eac9379..3d825f738e9 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -56,6 +56,8 @@ import io.opentelemetry.sdk.metrics.SdkMeterProvider; 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; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -739,6 +741,7 @@ public SdkMeterProvider meterProvider(String providerName) { PeriodicMetricReader.builder(metricExporter) .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) .build()); + SdkMeterProviderUtil.setExemplarFilter(builder, ExemplarFilter.traceBased()); return new MeterProviderAndReaders(builder.build(), reader); }) .sdkMeterProvider(); From 96435ebe2ac15b7cc3781c031d1229a1504e1fdc Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Mon, 7 Jul 2025 10:17:09 -0400 Subject: [PATCH 15/19] Move to OpenMetricsTextFormatWriter --- .../apache/solr/metrics/SolrMetricManager.java | 16 +++++++++------- .../solr/response/PrometheusResponseWriter.java | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) 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 3d825f738e9..6cced1bba2a 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -16,7 +16,9 @@ */ package org.apache.solr.metrics; +import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_ENABLED; import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_INTERVAL; +import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_PROTOCOL; import com.codahale.metrics.Counter; import com.codahale.metrics.Gauge; @@ -734,13 +736,13 @@ public SdkMeterProvider meterProvider(String providerName) { providerName, key -> { var reader = new PrometheusMetricReader(true, null); - var builder = - SdkMeterProvider.builder() - .registerMetricReader(reader) - .registerMetricReader( - PeriodicMetricReader.builder(metricExporter) - .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) - .build()); + var builder = SdkMeterProvider.builder().registerMetricReader(reader); + if (OTLP_EXPORTER_ENABLED && !OTLP_EXPORTER_PROTOCOL.equals("none")) { + builder.registerMetricReader( + PeriodicMetricReader.builder(metricExporter) + .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) + .build()); + } SdkMeterProviderUtil.setExemplarFilter(builder, ExemplarFilter.traceBased()); return new MeterProviderAndReaders(builder.build(), reader); }) diff --git a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java index 77fd3642b2a..ec333d6749d 100644 --- a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java @@ -18,7 +18,7 @@ import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; import io.opentelemetry.sdk.metrics.SdkMeterProvider; -import io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter; +import io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter; import io.prometheus.metrics.model.snapshots.CounterSnapshot; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; import io.prometheus.metrics.model.snapshots.HistogramSnapshot; @@ -55,7 +55,7 @@ public void write( List snapshots = readers.values().stream().flatMap(r -> r.collect().stream()).toList(); - new PrometheusTextFormatWriter(false).write(out, mergeSnapshots(snapshots)); + new OpenMetricsTextFormatWriter(false, true).write(out, mergeSnapshots(snapshots)); } @Override From b594327aae48c813cf81e36c5e2dfbe3bcb76bc8 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Wed, 9 Jul 2025 10:29:47 -0400 Subject: [PATCH 16/19] Change context type to open metrics --- .../org/apache/solr/response/PrometheusResponseWriter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java index ec333d6749d..79a28ef758c 100644 --- a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java @@ -41,7 +41,8 @@ public class PrometheusResponseWriter implements QueryResponseWriter { // not TextQueryResponseWriter because Prometheus libs work with an OutputStream - private static final String CONTENT_TYPE_PROMETHEUS = "text/plain; version=0.0.4"; + private static final String CONTENT_TYPE_OPEN_METRICS = + "application/openmetrics-text; version=1.0.0; charset=utf-8"; private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @Override @@ -60,7 +61,7 @@ public void write( @Override public String getContentType(SolrQueryRequest request, SolrQueryResponse response) { - return CONTENT_TYPE_PROMETHEUS; + return CONTENT_TYPE_OPEN_METRICS; } /** From 806584eb791fb9390b60cbdfedeca4e6ae3709ca Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Tue, 15 Jul 2025 09:45:40 -0400 Subject: [PATCH 17/19] Revert "Change context type to open metrics" This reverts commit b594327aae48c813cf81e36c5e2dfbe3bcb76bc8. --- .../org/apache/solr/response/PrometheusResponseWriter.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java index 79a28ef758c..ec333d6749d 100644 --- a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java @@ -41,8 +41,7 @@ public class PrometheusResponseWriter implements QueryResponseWriter { // not TextQueryResponseWriter because Prometheus libs work with an OutputStream - private static final String CONTENT_TYPE_OPEN_METRICS = - "application/openmetrics-text; version=1.0.0; charset=utf-8"; + private static final String CONTENT_TYPE_PROMETHEUS = "text/plain; version=0.0.4"; private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @Override @@ -61,7 +60,7 @@ public void write( @Override public String getContentType(SolrQueryRequest request, SolrQueryResponse response) { - return CONTENT_TYPE_OPEN_METRICS; + return CONTENT_TYPE_PROMETHEUS; } /** From 223947a37bb369a7738a232f55c887fba6511b87 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Tue, 15 Jul 2025 09:45:41 -0400 Subject: [PATCH 18/19] Revert "Move to OpenMetricsTextFormatWriter" This reverts commit 96435ebe2ac15b7cc3781c031d1229a1504e1fdc. --- .../apache/solr/metrics/SolrMetricManager.java | 16 +++++++--------- .../solr/response/PrometheusResponseWriter.java | 4 ++-- 2 files changed, 9 insertions(+), 11 deletions(-) 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 6cced1bba2a..3d825f738e9 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -16,9 +16,7 @@ */ package org.apache.solr.metrics; -import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_ENABLED; import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_INTERVAL; -import static org.apache.solr.metrics.otel.OtlpExporterFactory.OTLP_EXPORTER_PROTOCOL; import com.codahale.metrics.Counter; import com.codahale.metrics.Gauge; @@ -736,13 +734,13 @@ public SdkMeterProvider meterProvider(String providerName) { providerName, key -> { var reader = new PrometheusMetricReader(true, null); - var builder = SdkMeterProvider.builder().registerMetricReader(reader); - if (OTLP_EXPORTER_ENABLED && !OTLP_EXPORTER_PROTOCOL.equals("none")) { - builder.registerMetricReader( - PeriodicMetricReader.builder(metricExporter) - .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) - .build()); - } + var builder = + SdkMeterProvider.builder() + .registerMetricReader(reader) + .registerMetricReader( + PeriodicMetricReader.builder(metricExporter) + .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) + .build()); SdkMeterProviderUtil.setExemplarFilter(builder, ExemplarFilter.traceBased()); return new MeterProviderAndReaders(builder.build(), reader); }) diff --git a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java index ec333d6749d..77fd3642b2a 100644 --- a/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/PrometheusResponseWriter.java @@ -18,7 +18,7 @@ import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; import io.opentelemetry.sdk.metrics.SdkMeterProvider; -import io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter; +import io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter; import io.prometheus.metrics.model.snapshots.CounterSnapshot; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; import io.prometheus.metrics.model.snapshots.HistogramSnapshot; @@ -55,7 +55,7 @@ public void write( List snapshots = readers.values().stream().flatMap(r -> r.collect().stream()).toList(); - new OpenMetricsTextFormatWriter(false, true).write(out, mergeSnapshots(snapshots)); + new PrometheusTextFormatWriter(false).write(out, mergeSnapshots(snapshots)); } @Override From 66ac7ecbe87415e59c110bcbefb402320bbae585 Mon Sep 17 00:00:00 2001 From: Matthew Biscocho Date: Tue, 15 Jul 2025 09:45:43 -0400 Subject: [PATCH 19/19] Revert "Add trace based exemplars" This reverts commit d33a85df3ac5ddb4401f36d9ed3c34f7a02c43fc. --- .../src/java/org/apache/solr/metrics/SolrMetricManager.java | 3 --- 1 file changed, 3 deletions(-) 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 3d825f738e9..9615eac9379 100644 --- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java +++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricManager.java @@ -56,8 +56,6 @@ import io.opentelemetry.sdk.metrics.SdkMeterProvider; 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; import java.lang.invoke.MethodHandles; import java.util.ArrayList; @@ -741,7 +739,6 @@ public SdkMeterProvider meterProvider(String providerName) { PeriodicMetricReader.builder(metricExporter) .setInterval(OTLP_EXPORTER_INTERVAL, TimeUnit.MILLISECONDS) .build()); - SdkMeterProviderUtil.setExemplarFilter(builder, ExemplarFilter.traceBased()); return new MeterProviderAndReaders(builder.build(), reader); }) .sdkMeterProvider();