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

Croway pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git

commit 8c96fc6e2b0e0ca99fab723a09bf16aad26eb058
Author: croway <[email protected]>
AuthorDate: Sun Nov 8 10:44:27 2026 +0100

    CAMEL-26691: camel-spring-boot - remove the activity options of the backlog 
tracer
    
    The activity tracking of the backlog tracer is removed in Camel and 
replaced by
    the timeline dev console, so BacklogTracer no longer has setActivitySize and
    setActivityEnabled and camel-spring-boot no longer compiled.
    
    Removes camel.trace.activity-enabled and camel.trace.activity-size, and the
    activity dev console from the Spring Boot catalog (the catalog generator 
only
    adds dev consoles, it never removes them) in favour of the timeline one.
---
 .../springboot/catalog/dev-consoles.properties     |   2 +-
 .../springboot/catalog/dev-consoles/activity.json  | 100 ------
 .../springboot/catalog/dev-consoles/timeline.json  | 356 +++++++++++++++++++++
 .../src/main/docs/spring-boot.json                 |  14 -
 .../boot/trace/CamelTraceAutoConfiguration.java    |   5 -
 .../trace/CamelTraceConfigurationProperties.java   |  28 --
 6 files changed, 357 insertions(+), 148 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
index 4d87b1a3db4..5c68acc5073 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles.properties
@@ -1,4 +1,3 @@
-activity
 api
 aws-secrets
 aws2-s3
@@ -68,6 +67,7 @@ startup-recorder
 stub
 system-properties
 thread
+timeline
 top
 trace
 transformers
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/activity.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/activity.json
deleted file mode 100644
index cf5341c4d3a..00000000000
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/activity.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
-  "console": {
-    "kind": "console",
-    "group": "camel",
-    "name": "activity",
-    "title": "Camel Activity",
-    "description": "Recent completed exchange activity",
-    "deprecated": false,
-    "readOnly": true,
-    "javaType": "org.apache.camel.impl.console.ActivityDevConsole",
-    "groupId": "org.apache.camel.springboot",
-    "artifactId": "camel-console-starter",
-    "version": "4.24.0-SNAPSHOT"
-  },
-  "response": {
-    "type": "object",
-    "properties": {
-      "activityEnabled": {
-        "type": "boolean",
-        "description": "Whether activity tracking is enabled"
-      },
-      "activitySize": {
-        "type": "integer",
-        "description": "The maximum number of activity entries retained"
-      },
-      "activity": {
-        "type": "array",
-        "items": {
-          "type": "object",
-          "properties": {
-            "uid": {
-              "type": "integer",
-              "description": "Unique ID of the activity entry"
-            },
-            "exchangeId": {
-              "type": "string",
-              "description": "The exchange ID"
-            },
-            "routeId": {
-              "type": "string",
-              "description": "The route ID (only present when known)"
-            },
-            "fromEndpointUri": {
-              "type": "string",
-              "description": "The from endpoint URI (only present when known)"
-            },
-            "timestamp": {
-              "type": "integer",
-              "description": "Epoch time in milliseconds (only present when 
known)"
-            },
-            "elapsed": {
-              "type": "integer",
-              "description": "Elapsed time in milliseconds"
-            },
-            "failed": {
-              "type": "boolean",
-              "description": "Whether the exchange failed"
-            },
-            "exception": {
-              "type": "string",
-              "description": "The exception message (only present when the 
exchange failed)"
-            },
-            "endpointSends": {
-              "type": "array",
-              "items": {
-                "type": "object",
-                "properties": {
-                  "endpointUri": {
-                    "type": "string",
-                    "description": "The endpoint URI"
-                  },
-                  "remoteEndpoint": {
-                    "type": "boolean",
-                    "description": "Whether the endpoint is remote"
-                  },
-                  "elapsed": {
-                    "type": "integer",
-                    "description": "Elapsed time in milliseconds"
-                  }
-                },
-                "required": [
-                  "remoteEndpoint",
-                  "elapsed"
-                ]
-              },
-              "description": "The endpoints this exchange was sent to (only 
present when any)"
-            }
-          },
-          "required": [
-            "uid",
-            "elapsed",
-            "failed"
-          ]
-        },
-        "description": "The recent activity entries"
-      }
-    }
-  }
-}
-
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/timeline.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/timeline.json
new file mode 100644
index 00000000000..cdd36fdb87e
--- /dev/null
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dev-consoles/timeline.json
@@ -0,0 +1,356 @@
+{
+  "console": {
+    "kind": "console",
+    "group": "camel",
+    "name": "timeline",
+    "title": "Camel Timeline",
+    "description": "Per second, what each route did, the errors, and the 
failed and slowest exchanges",
+    "deprecated": false,
+    "readOnly": true,
+    "javaType": "org.apache.camel.impl.console.TimelineDevConsole",
+    "groupId": "org.apache.camel.springboot",
+    "artifactId": "camel-console-starter",
+    "version": "4.24.0-SNAPSHOT"
+  },
+  "options": {
+    "exchanges": {
+      "index": 0,
+      "kind": "option",
+      "displayName": "Exchanges",
+      "group": "query",
+      "label": "query",
+      "required": false,
+      "type": "boolean",
+      "javaType": "java.lang.Boolean",
+      "deprecated": false,
+      "autowired": false,
+      "secret": false,
+      "defaultValue": true,
+      "description": "Whether to include the kept exchanges"
+    },
+    "routeId": {
+      "index": 1,
+      "kind": "option",
+      "displayName": "Route Id",
+      "group": "query",
+      "label": "query",
+      "required": false,
+      "type": "string",
+      "javaType": "java.lang.String",
+      "deprecated": false,
+      "autowired": false,
+      "secret": false,
+      "description": "Filter by route id (pattern)"
+    },
+    "seconds": {
+      "index": 2,
+      "kind": "option",
+      "displayName": "Seconds",
+      "group": "query",
+      "label": "query",
+      "required": false,
+      "type": "integer",
+      "javaType": "java.lang.Integer",
+      "deprecated": false,
+      "autowired": false,
+      "secret": false,
+      "description": "The number of seconds, up to the recorded seconds (the 
default)"
+    }
+  },
+  "response": {
+    "type": "object",
+    "properties": {
+      "end": {
+        "type": "integer",
+        "description": "Epoch second of the last second (the oldest is end - 
seconds + 1)"
+      },
+      "seconds": {
+        "type": "integer",
+        "description": "The number of seconds of each series, oldest first"
+      },
+      "exchangesDone": {
+        "type": "array",
+        "items": {
+          "type": "integer"
+        },
+        "description": "Exchanges done per second, in the routes they came in"
+      },
+      "routes": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "routeId": {
+              "type": "string",
+              "description": "The route ID"
+            },
+            "from": {
+              "type": "string",
+              "description": "The from endpoint URI (only present when known)"
+            },
+            "completed": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Exchanges completed per second, not counting the 
recovered and handled ones"
+            },
+            "recovered": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Exchanges per second that completed after a 
redelivery in this route"
+            },
+            "handled": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Exchanges per second whose failure the error 
handler handled"
+            },
+            "failed": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Exchanges failed per second"
+            },
+            "inflight": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Exchanges in flight at the end of each second"
+            },
+            "meanMillis": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Mean processing time per second in milliseconds"
+            },
+            "p95Millis": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "p95 processing time per second in milliseconds, 
of the exchanges that came into this route"
+            },
+            "maxMillis": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Max processing time per second in milliseconds, 
of the exchanges that came into this route"
+            },
+            "redeliveryAttempts": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Redelivery attempts per second in this route"
+            },
+            "down": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Per second 1 when a camel-chaos rule had the 
route down (stall or a lifecycle fault), else 0 (only present with camel-chaos)"
+            }
+          }
+        },
+        "description": "The routes"
+      },
+      "errors": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "routeId": {
+              "type": "string",
+              "description": "The route ID where the exchange failed"
+            },
+            "exception": {
+              "type": "string",
+              "description": "The exception class name"
+            },
+            "statusCode": {
+              "type": "integer",
+              "description": "The HTTP status code of the exception (only 
present when known)"
+            },
+            "chaosRule": {
+              "type": "string",
+              "description": "The camel-chaos rule that made the error (only 
present for a chaos fault)"
+            },
+            "counts": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Errors per second"
+            }
+          }
+        },
+        "description": "The errors by route and exception (only present when 
there are any)"
+      },
+      "chaos": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "id": {
+              "type": "string",
+              "description": "The id of the camel-chaos rule"
+            },
+            "rule": {
+              "type": "string",
+              "description": "The rule in its one-line text form"
+            },
+            "faults": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "The faults the rule fired per second"
+            }
+          }
+        },
+        "description": "The faults per second of each camel-chaos rule that 
fired in the seconds (only present when one did)"
+      },
+      "routeEvents": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "routeId": {
+              "type": "string",
+              "description": "The route ID"
+            },
+            "event": {
+              "type": "string",
+              "description": "What happened to the route: started, stopped, 
reloaded, removed or restartFailed"
+            },
+            "second": {
+              "type": "integer",
+              "description": "The epoch second it happened"
+            }
+          },
+          "required": [
+            "second"
+          ]
+        },
+        "description": "What happened to the routes in the seconds: started, 
stopped, reloaded, removed (only present when anything did)"
+      },
+      "circuitBreakers": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "routeId": {
+              "type": "string",
+              "description": "The route ID"
+            },
+            "id": {
+              "type": "string",
+              "description": "The id of the circuit breaker EIP (not present 
for a route policy)"
+            },
+            "kind": {
+              "type": "string",
+              "description": "The kind of circuit breaker: resilience4j, 
fault-tolerance or route-policy"
+            },
+            "states": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              },
+              "description": "Per second 2 when the circuit breaker was open, 
1 half open, else 0"
+            }
+          }
+        },
+        "description": "The circuit breakers that were open or half open in 
the seconds (only present when one was)"
+      },
+      "exchanges": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "exchangeId": {
+              "type": "string",
+              "description": "The exchange ID"
+            },
+            "routeId": {
+              "type": "string",
+              "description": "The route ID the exchange came in"
+            },
+            "fromEndpointUri": {
+              "type": "string",
+              "description": "The from endpoint URI (only present when known)"
+            },
+            "timestamp": {
+              "type": "integer",
+              "description": "Epoch time in milliseconds the exchange was 
created"
+            },
+            "elapsed": {
+              "type": "integer",
+              "description": "Elapsed time in milliseconds"
+            },
+            "failed": {
+              "type": "boolean",
+              "description": "Whether the exchange failed"
+            },
+            "handled": {
+              "type": "boolean",
+              "description": "Whether the error handler handled a failure of 
the exchange"
+            },
+            "redelivered": {
+              "type": "boolean",
+              "description": "Whether the exchange was redelivered"
+            },
+            "exception": {
+              "type": "string",
+              "description": "The exception message (only present when the 
exchange failed, or when it recovered: the failure it was redelivered for)"
+            },
+            "chaosRule": {
+              "type": "string",
+              "description": "The camel-chaos rule that faulted the exchange 
(only present when one did)"
+            },
+            "endpointSends": {
+              "type": "array",
+              "items": {
+                "type": "object",
+                "properties": {
+                  "endpointUri": {
+                    "type": "string",
+                    "description": "The endpoint URI"
+                  },
+                  "elapsed": {
+                    "type": "integer",
+                    "description": "Elapsed time of the call in milliseconds"
+                  }
+                },
+                "required": [
+                  "elapsed"
+                ]
+              },
+              "description": "The remote endpoints the exchange was sent to 
(only present when any)"
+            }
+          },
+          "required": [
+            "timestamp",
+            "elapsed",
+            "failed",
+            "handled",
+            "redelivered"
+          ]
+        },
+        "description": "Per second the failed, handled and recovered exchanges 
(up to 10) and the 3 slowest, oldest first (only present when asked for)"
+      }
+    },
+    "required": [
+      "end",
+      "seconds"
+    ]
+  }
+}
+
diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.json 
b/core/camel-spring-boot/src/main/docs/spring-boot.json
index e0cd1e69854..c80272e3689 100644
--- a/core/camel-spring-boot/src/main/docs/spring-boot.json
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.json
@@ -1590,20 +1590,6 @@
       "description": "Sets the default time unit used for keep alive time",
       "sourceType": 
"org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
     },
-    {
-      "name": "camel.trace.activity-enabled",
-      "type": "java.lang.Boolean",
-      "description": "Whether activity tracking is enabled.",
-      "sourceType": 
"org.apache.camel.spring.boot.trace.CamelTraceConfigurationProperties",
-      "defaultValue": false
-    },
-    {
-      "name": "camel.trace.activity-size",
-      "type": "java.lang.Integer",
-      "description": "Number of completed exchange summaries to keep in the 
activity queue (should be between 1 - 1000). Default is 100.",
-      "sourceType": 
"org.apache.camel.spring.boot.trace.CamelTraceConfigurationProperties",
-      "defaultValue": 100
-    },
     {
       "name": "camel.trace.backlog-size",
       "type": "java.lang.Integer",
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceAutoConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceAutoConfiguration.java
index b4ebfa3acf0..c3f3c1ac6c9 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceAutoConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceAutoConfiguration.java
@@ -63,11 +63,6 @@ public class CamelTraceAutoConfiguration {
         tracer.setTraceTemplates(config.isTraceTemplates());
         tracer.setTracePattern(config.getTracePattern());
         tracer.setTraceFilter(config.getTraceFilter());
-        tracer.setActivitySize(config.getActivitySize());
-        // dev profile enables activity tracking so tooling (TUI) gets 
enriched data
-        boolean activityEnabled = config.isActivityEnabled()
-                || 
"dev".equals(camelContext.getCamelContextExtension().getProfile());
-        tracer.setActivityEnabled(activityEnabled);
 
         
camelContext.getCamelContextExtension().addContextPlugin(BacklogTracer.class, 
tracer);
         camelContext.addService(tracer);
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceConfigurationProperties.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceConfigurationProperties.java
index 48fcd93dcbd..32574b4305e 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceConfigurationProperties.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/trace/CamelTraceConfigurationProperties.java
@@ -93,18 +93,6 @@ public class CamelTraceConfigurationProperties {
     @Metadata(label = "advanced")
     private boolean traceTemplates;
 
-    /**
-     * Whether activity tracking is enabled.
-     */
-    private boolean activityEnabled;
-
-    /**
-     * Number of completed exchange summaries to keep in the activity queue 
(should be between 1 - 1000). Default is
-     * 100.
-     */
-    @Metadata(label = "advanced", defaultValue = "100")
-    private int activitySize = 100;
-
     /**
      * Filter for tracing by route or node id
      */
@@ -211,22 +199,6 @@ public class CamelTraceConfigurationProperties {
         this.traceTemplates = traceTemplates;
     }
 
-    public boolean isActivityEnabled() {
-        return activityEnabled;
-    }
-
-    public void setActivityEnabled(boolean activityEnabled) {
-        this.activityEnabled = activityEnabled;
-    }
-
-    public int getActivitySize() {
-        return activitySize;
-    }
-
-    public void setActivitySize(int activitySize) {
-        this.activitySize = activitySize;
-    }
-
     public String getTracePattern() {
         return tracePattern;
     }

Reply via email to