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

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


The following commit(s) were added to refs/heads/main by this push:
     new b33e0bfa1ec7 feat(components/telemetry): add seda size span decoration
b33e0bfa1ec7 is described below

commit b33e0bfa1ec7e829899aaf8d23f38a7903058f8e
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Thu Mar 12 11:08:17 2026 +0100

    feat(components/telemetry): add seda size span decoration
    
    Closes CAMEL-22704
---
 .../telemetry/decorators/SedaSpanDecorator.java    | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git 
a/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/decorators/SedaSpanDecorator.java
 
b/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/decorators/SedaSpanDecorator.java
index 849341c4ca42..edb3082018ba 100644
--- 
a/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/decorators/SedaSpanDecorator.java
+++ 
b/components/camel-telemetry/src/main/java/org/apache/camel/telemetry/decorators/SedaSpanDecorator.java
@@ -16,6 +16,14 @@
  */
 package org.apache.camel.telemetry.decorators;
 
+import java.time.Instant;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.BrowsableEndpoint;
+import org.apache.camel.spi.BrowsableEndpoint.BrowseStatus;
+import org.apache.camel.telemetry.Span;
+
 public class SedaSpanDecorator extends AbstractInternalSpanDecorator {
 
     @Override
@@ -28,4 +36,19 @@ public class SedaSpanDecorator extends 
AbstractInternalSpanDecorator {
         return "org.apache.camel.component.seda.SedaComponent";
     }
 
+    @Override
+    public void beforeTracingEvent(Span span, Exchange exchange, Endpoint 
endpoint) {
+        super.beforeTracingEvent(span, exchange, endpoint);
+        if (endpoint instanceof BrowsableEndpoint browsableEndpoint) {
+            BrowseStatus browsStatus = browsableEndpoint.getBrowseStatus(0);
+            span.setTag("seda.queue.size.current", 
String.valueOf(browsStatus.size()));
+            if (browsStatus.firstTimestamp() != 0) {
+                span.setTag("seda.queue.first.timestamp", 
Instant.ofEpochMilli(browsStatus.firstTimestamp()).toString());
+            }
+            if (browsStatus.lastTimestamp() != 0) {
+                span.setTag("seda.queue.last.timestamp", 
Instant.ofEpochMilli(browsStatus.lastTimestamp()).toString());
+            }
+        }
+    }
+
 }

Reply via email to