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)); } }
