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