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:26:24 UTC

[solr] branch main 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 main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 0e33bfe3169 SOLR-16532 Further improvements to opentelemetry module (#1275)
0e33bfe3169 is described below

commit 0e33bfe3169ebd04edbe9220fd66f396fe02d68a
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"));