You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ja...@apache.org on 2023/01/19 21:33:14 UTC
[solr] branch branch_9x updated: SOLR-16532 Further improvements to opentelemetry module (#1275)
This is an automated email from the ASF dual-hosted git repository.
janhoy pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 5a3968090da SOLR-16532 Further improvements to opentelemetry module (#1275)
5a3968090da is described below
commit 5a3968090dab9678348b29f596fb311e02921f5d
Author: Jan Høydahl <ja...@users.noreply.github.com>
AuthorDate: Thu Jan 19 22:26:17 2023 +0100
SOLR-16532 Further improvements to opentelemetry module (#1275)
---
.../apache/solr/opentelemetry/ClosableTracerShim.java | 2 +-
.../solr/opentelemetry/OtelTracerConfigurator.java | 16 +++++++++-------
.../solr/opentelemetry/OtelTracerConfiguratorTest.java | 7 +++++++
3 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/ClosableTracerShim.java b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/ClosableTracerShim.java
index b368941fd0c..ee7fb962ce9 100644
--- a/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/ClosableTracerShim.java
+++ b/solr/modules/opentelemetry/src/java/org/apache/solr/opentelemetry/ClosableTracerShim.java
@@ -78,7 +78,7 @@ public class ClosableTracerShim implements Tracer {
@Override
public void close() {
shim.close();
- log.info("Closing wrapped OTEL tracer instance.");
+ log.debug("Closing wrapped OTEL tracer instance.");
sdkTracerProvider.forceFlush();
sdkTracerProvider.close();
}
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 a2f97931abb..b6797df3313 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
@@ -47,13 +47,7 @@ public class OtelTracerConfigurator extends TracerConfigurator {
setDefaultIfNotConfigured("OTEL_EXPORTER_OTLP_PROTOCOL", "grpc");
setDefaultIfNotConfigured("OTEL_TRACES_SAMPLER", "parentbased_always_on");
- final String currentConfig =
- String.join(
- "; ",
- getCurrentOtelConfig().entrySet().stream()
- .map(e -> e.getKey() + "=" + e.getValue())
- .collect(Collectors.toSet()));
-
+ final String currentConfig = getCurrentOtelConfigAsString();
log.info("OpenTelemetry tracer enabled with configuration: {}", currentConfig);
// Need to disable the exporters for metrics and logs
@@ -72,6 +66,14 @@ public class OtelTracerConfigurator extends TracerConfigurator {
return new ClosableTracerShim(shim, otelSdk.getSdkTracerProvider());
}
+ /** Prepares a string with all configuration K/V pairs sorted and semicolon separated */
+ String getCurrentOtelConfigAsString() {
+ return getCurrentOtelConfig().entrySet().stream()
+ .sorted(Map.Entry.comparingByKey())
+ .map(e -> e.getKey() + "=" + e.getValue())
+ .collect(Collectors.joining("; "));
+ }
+
/**
* Finds all configuration based on environment with prefix <code>OTEL_</code> or System
* Properties with prefix <code>otel.</code>.
diff --git a/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/OtelTracerConfiguratorTest.java b/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/OtelTracerConfiguratorTest.java
index 69c7d96cc97..4de4eca64ce 100644
--- a/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/OtelTracerConfiguratorTest.java
+++ b/solr/modules/opentelemetry/src/test/org/apache/solr/opentelemetry/OtelTracerConfiguratorTest.java
@@ -69,6 +69,13 @@ public class OtelTracerConfiguratorTest extends SolrTestCaseJ4 {
assertEquals(expected, instance.getCurrentOtelConfig());
}
+ @Test
+ public void testGetCurrentOtelConfigAsString() {
+ assertEquals(
+ "OTEL_K1=prop-k1; OTEL_K2=env-k2; OTEL_K3=prop-k3",
+ instance.getCurrentOtelConfigAsString());
+ }
+
@Test
public void testGetEnvOrSysprop() {
assertEquals("prop-k1", instance.getEnvOrSysprop("OTEL_K1"));