You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/08/31 16:46:38 UTC
(camel) 01/07: CAMEL-21150: camel-jbang - Make tracer in standby as default
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch standby
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 33f906f0ce53225bb89e4da230473fea9d48a2df
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Aug 31 09:27:29 2024 +0200
CAMEL-21150: camel-jbang - Make tracer in standby as default
---
.../apache/camel/impl/console/TraceDevConsole.java | 77 +++++++++++++++++-----
.../org/apache/camel/main/ProfileConfigurer.java | 12 ++--
.../camel/cli/connector/LocalCliConnector.java | 28 +++++++-
3 files changed, 94 insertions(+), 23 deletions(-)
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
index c5de210a50d..f34766bb255 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
@@ -42,6 +42,11 @@ public class TraceDevConsole extends AbstractDevConsole {
*/
public static final String ENABLED = "enabled";
+ /**
+ * Whether to dump trace messages
+ */
+ public static final String DUMP = "dump";
+
private Queue<BacklogTracerEventMessage> queue;
public TraceDevConsole() {
@@ -67,17 +72,11 @@ public class TraceDevConsole extends AbstractDevConsole {
protected String doCallText(Map<String, Object> options) {
StringBuilder sb = new StringBuilder();
String enabled = (String) options.get(ENABLED);
+ String dump = (String) options.get(DUMP);
BacklogTracer tracer = getCamelContext().getCamelContextExtension().getContextPlugin(BacklogTracer.class);
if (tracer != null) {
- if ("true".equals(enabled)) {
- tracer.setEnabled(true);
- sb.append("Enabled: ").append(tracer.isEnabled()).append("\n");
- } else if ("false".equals(enabled)) {
- tracer.setEnabled(false);
- sb.append("Enabled: ").append(tracer.isEnabled()).append("\n");
- } else {
- sb.append("Enabled: ").append(tracer.isEnabled()).append("\n");
+ if (dump != null) {
for (BacklogTracerEventMessage t : tracer.dumpAllTracedMessages()) {
addMessage(t);
}
@@ -85,6 +84,32 @@ public class TraceDevConsole extends AbstractDevConsole {
String json = t.toJSon(0);
sb.append(json).append("\n");
}
+ } else {
+ if ("true".equals(enabled)) {
+ tracer.setEnabled(true);
+ } else if ("false".equals(enabled)) {
+ tracer.setEnabled(false);
+ }
+ sb.append("Enabled: ").append(tracer.isEnabled()).append("\n");
+ sb.append("Standby: ").append(tracer.isStandby()).append("\n");
+ sb.append("Trace Counter: ").append(tracer.getTraceCounter()).append("\n");
+ sb.append("Backlog Size: ").append(tracer.getBacklogSize()).append("\n");
+ sb.append("Queue Size: ").append(tracer.getQueueSize()).append("\n");
+ sb.append("Remove On Dump: ").append(tracer.isRemoveOnDump()).append("\n");
+ if (tracer.getTraceFilter() != null) {
+ sb.append("Trace Filter: ").append(tracer.getTraceFilter()).append("\n");
+ }
+ if (tracer.getTracePattern() != null) {
+ sb.append("Trace Pattern: ").append(tracer.getTracePattern()).append("\n");
+ }
+ sb.append("Trace Rests: ").append(tracer.isTraceRests()).append("\n");
+ sb.append("Trace Templates: ").append(tracer.isTraceTemplates()).append("\n");
+ sb.append("Body Max Chars: ").append(tracer.getBodyMaxChars()).append("\n");
+ sb.append("Body Include Files: ").append(tracer.isBodyIncludeFiles()).append("\n");
+ sb.append("Body Include Streams: ").append(tracer.isBodyIncludeStreams()).append("\n");
+ sb.append("Include Exchange Properties: ").append(tracer.isIncludeExchangeProperties()).append("\n");
+ sb.append("Include Exchange Variables: ").append(tracer.isIncludeExchangeVariables()).append("\n");
+ sb.append("Include Exception: ").append(tracer.isIncludeException()).append("\n");
}
}
@@ -105,20 +130,14 @@ public class TraceDevConsole extends AbstractDevConsole {
protected JsonObject doCallJson(Map<String, Object> options) {
JsonObject root = new JsonObject();
String enabled = (String) options.get(ENABLED);
+ String dump = (String) options.get(DUMP);
BacklogTracer tracer = getCamelContext().getCamelContextExtension().getContextPlugin(BacklogTracer.class);
if (tracer != null) {
- if ("true".equals(enabled)) {
- tracer.setEnabled(true);
- root.put("enabled", tracer.isEnabled());
- } else if ("false".equals(enabled)) {
- tracer.setEnabled(false);
- root.put("enabled", tracer.isEnabled());
- } else {
+ if (dump != null) {
for (BacklogTracerEventMessage t : tracer.dumpAllTracedMessages()) {
addMessage(t);
}
-
JsonArray arr = new JsonArray();
root.put("enabled", tracer.isEnabled());
root.put("traces", arr);
@@ -126,6 +145,32 @@ public class TraceDevConsole extends AbstractDevConsole {
JsonObject jo = (JsonObject) t.asJSon();
arr.add(jo);
}
+ } else {
+ if ("true".equals(enabled)) {
+ tracer.setEnabled(true);
+ } else if ("false".equals(enabled)) {
+ tracer.setEnabled(false);
+ }
+ root.put("enabled", tracer.isEnabled());
+ root.put("standby", tracer.isStandby());
+ root.put("counter", tracer.getTraceCounter());
+ root.put("backlogSize", tracer.getBacklogSize());
+ root.put("queueSize", tracer.getQueueSize());
+ root.put("removeOnDump", tracer.isRemoveOnDump());
+ if (tracer.getTraceFilter() != null) {
+ root.put("traceFilter", tracer.getTraceFilter());
+ }
+ if (tracer.getTracePattern() != null) {
+ root.put("tracePattern", tracer.getTracePattern());
+ }
+ root.put("traceRests", tracer.isTraceRests());
+ root.put("traceTemplates", tracer.isTraceTemplates());
+ root.put("bodyMaxChars", tracer.getBodyMaxChars());
+ root.put("bodyIncludeFiles", tracer.isBodyIncludeFiles());
+ root.put("bodyIncludeStreams", tracer.isBodyIncludeStreams());
+ root.put("includeExchangeProperties", tracer.isIncludeExchangeProperties());
+ root.put("includeExchangeVariables", tracer.isIncludeExchangeVariables());
+ root.put("includeException", tracer.isIncludeException());
}
}
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java b/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java
index 3973098923e..0d5d5802274 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java
@@ -44,10 +44,14 @@ public class ProfileConfigurer {
}
if ("dev".equals(profile)) {
- boolean standby = config.tracerConfig().isStandby();
- if (!standby) {
- // make tracing enabled (if not configured to be standby) and limit to not capture too much data
- config.tracerConfig().withEnabled(true);
+ // make tracing/debugger at least standby so we can use it in dev-mode
+ boolean enabled = config.tracerConfig().isEnabled();
+ if (!enabled) {
+ config.tracerConfig().withStandby(true);
+ }
+ enabled = config.debuggerConfig().isEnabled();
+ if (!enabled) {
+ config.debuggerConfig().withStandby(true);
}
}
diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index 1620d294c44..62cc3e8257f 100644
--- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -274,6 +274,8 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
doActionBeanTask(root);
} else if ("kafka".equals(action)) {
doActionKafkaTask();
+ } else if ("trace".equals(action)) {
+ doActionTraceTask(root);
}
} catch (Exception e) {
// ignore
@@ -733,6 +735,19 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
}
}
+ private void doActionTraceTask(JsonObject root) throws IOException {
+ DevConsole dc = camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class)
+ .resolveById("trace");
+ if (dc != null) {
+ String enabled = root.getString("enabled");
+ JsonObject json = (JsonObject) dc.call(DevConsole.MediaType.JSON, Map.of("enabled", enabled));
+ LOG.trace("Updating output file: {}", outputFile);
+ IOHelper.writeText(json.toJson(), outputFile);
+ } else {
+ IOHelper.writeText("{}", outputFile);
+ }
+ }
+
private void doActionBeanTask(JsonObject root) throws IOException {
String filter = root.getStringOrDefault("filter", "");
String properties = root.getStringOrDefault("properties", "true");
@@ -977,13 +992,20 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
root.put("fault-tolerance", json);
}
}
- DevConsole dc12a = dcr.resolveById("circuit-breaker");
- if (dc12a != null) {
- JsonObject json = (JsonObject) dc12a.call(DevConsole.MediaType.JSON);
+ DevConsole dc12 = dcr.resolveById("circuit-breaker");
+ if (dc12 != null) {
+ JsonObject json = (JsonObject) dc12.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("circuit-breaker", json);
}
}
+ DevConsole dc13 = dcr.resolveById("trace");
+ if (dc13 != null) {
+ JsonObject json = (JsonObject) dc13.call(DevConsole.MediaType.JSON);
+ if (json != null && !json.isEmpty()) {
+ root.put("trace", json);
+ }
+ }
DevConsole dc14 = dcr.resolveById("consumer");
if (dc14 != null) {
JsonObject json = (JsonObject) dc14.call(DevConsole.MediaType.JSON);