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

davsclaus pushed a commit to branch ra
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 3cfe5f9b22c2e1c997d327dc94e7974c2770faa4
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon May 27 17:20:43 2024 +0200

    CAMEL-20798: Add RemoteAddress to endpoints so they can tell the 
url/hostname etc for the system it connects. This is needed for better 
monitoring, tracing and management. Add this information into camel-tracer as 
tags.
---
 .../java/org/apache/camel/tracing/TagConstants.java     |  1 +
 .../camel/tracing/decorators/AbstractSpanDecorator.java | 17 ++++++++++++-----
 .../tracing/decorators/ElasticsearchSpanDecorator.java  |  1 -
 .../decorators/ElasticsearchSpanDecoratorTest.java      |  2 +-
 4 files changed, 14 insertions(+), 7 deletions(-)

diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/TagConstants.java
 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/TagConstants.java
index 83fe3155735..a05d0f78113 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/TagConstants.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/TagConstants.java
@@ -23,6 +23,7 @@ public class TagConstants {
 
     // General attributes
     public static final String SERVER_ADDRESS = "server.address";
+    public static final String SERVER_PROTOCOL = "server.protocol";
 
     // User attributes
     public static final String USER_NAME = "user.name";
diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java
 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java
index 42742c611e4..f468e0eb4b6 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractSpanDecorator.java
@@ -72,12 +72,14 @@ public abstract class AbstractSpanDecorator implements 
SpanDecorator {
     }
 
     private static String getComponentName(Endpoint endpoint) {
-        String[] splitURI = 
StringHelper.splitOnCharacter(endpoint.getEndpointUri(), ":", 2);
-        if (splitURI.length > 0) {
-            return splitURI[0];
-        } else {
-            return null;
+        String answer = endpoint.getComponent() != null ? 
endpoint.getComponent().getDefaultName() : null;
+        if (answer == null) {
+            String[] splitURI = 
StringHelper.splitOnCharacter(endpoint.getEndpointUri(), ":", 2);
+            if (splitURI.length > 0) {
+                answer = splitURI[0];
+            }
         }
+        return answer;
     }
 
     @Override
@@ -109,11 +111,16 @@ public abstract class AbstractSpanDecorator implements 
SpanDecorator {
             span.setTag(TagConstants.URL_QUERY, query);
         }
 
+        // enrich with server location details
         if (endpoint instanceof EndpointServiceLocation ela) {
             String adr = ela.getServiceUrl();
             if (adr != null) {
                 span.setTag(TagConstants.SERVER_ADDRESS, adr);
             }
+            String ap = ela.getServiceProtocol();
+            if (ap != null) {
+                span.setTag(TagConstants.SERVER_PROTOCOL, ap);
+            }
             Map map = ela.getServiceMetadata();
             if (map != null) {
                 String un = (String) map.get("username");
diff --git 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java
 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java
index d704fe982ff..36f68bd7d32 100644
--- 
a/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java
+++ 
b/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecorator.java
@@ -22,7 +22,6 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.tracing.SpanAdapter;
 import org.apache.camel.tracing.Tag;
-import org.apache.camel.tracing.TagConstants;
 
 public class ElasticsearchSpanDecorator extends AbstractSpanDecorator {
 
diff --git 
a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java
 
b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java
index f1ff120d43f..12411776ef1 100644
--- 
a/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java
+++ 
b/components/camel-tracing/src/test/java/org/apache/camel/tracing/decorators/ElasticsearchSpanDecoratorTest.java
@@ -67,7 +67,7 @@ public class ElasticsearchSpanDecoratorTest {
         assertEquals(indexName, span.tags().get(Tag.DB_INSTANCE.name()));
         assertEquals(indexName, span.tags().get(TagConstants.DB_NAME));
         assertEquals(cluster, 
span.tags().get(ElasticsearchSpanDecorator.ELASTICSEARCH_CLUSTER_TAG));
-        assertEquals(cluster, span.tags().get(TagConstants.SERVER_ADDRESS));
+        assertEquals(null, span.tags().get(TagConstants.SERVER_ADDRESS));
     }
 
 }

Reply via email to