This is an automated email from the ASF dual-hosted git repository.
davsclaus 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 4912e28106b CAMEL-18406: camel-jbang - Status command
4912e28106b is described below
commit 4912e28106b722262a0fba9a2bd4c970ea01ef70
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Aug 25 09:45:46 2022 +0200
CAMEL-18406: camel-jbang - Status command
---
.../modules/ROOT/pages/camel-jbang.adoc | 30 ++++++++--------------
.../apache/camel/dsl/jbang/core/commands/Run.java | 5 ++--
.../core/commands/process/CamelContextStatus.java | 2 +-
3 files changed, 15 insertions(+), 22 deletions(-)
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
index 2983c4a80e1..c98b9f078fe 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang.adoc
@@ -571,17 +571,15 @@ To display the status of the running Camel integrations:
[source,bash]
----
-camel get integration
-+------+----------+---------+-------+---------+----------+------------+------------+
-| PID | Name | State | Age | Total # | Failed # | Inflight # | Since
Last |
-+------+----------+---------+-------+---------+----------+------------+------------+
-| 2617 | bar.yaml | started | 1h27m | 5231 | 0 | 0 |
0s |
-| 2630 | foo.java | started | 1h27m | 1050 | 0 | 0 |
4s |
-+------+----------+---------+-------+---------+----------+------------+------------+
+camel get
+ PID NAME READY STATE AGE TOTAL FAILED INFLIGHT SINCE-LAST
+ 38780 routes.yaml 1/1 Started 10s 2 0 0 1s
+ 38793 dude.java 1/1 Started 9s 6 0 0 0s
+ 38806 gro.groovy 1/1 Started 8s 3 0 0 0s
----
-TIP: You can use `camel get int` or `camel get context` as a short-hand
-command for displaying the integration status as above.
+The `camel get` command will default display integrations, which is equivalent
to
+typing `camel get integrations` or `camel get int`.
This displays overall information for every Camel integration, where you can
see
the total number of messages processed. The column _Since Last_
@@ -593,16 +591,10 @@ You can also see the status of every routes, from all the
local Camel integratio
[source,bash]
----
camel get route
-+------+------------+-----------------------+-------------------------------------+---------+--------+---------+--------+----------+--------+--------+--------+----------+
-| PID | Name | Route ID | From
| State | Uptime | Total | Failed | Inflight | Mean | Max | Min
| Since |
-| | | |
| | | # | # | # | (ms) | (ms) | (ms)
| Last |
-+------+------------+-----------------------+-------------------------------------+---------+--------+---------+--------+----------+--------+--------+--------+----------+
-| 2617 | bar.yaml | route1 | timer://yaml2?period=1000
| started | 1h31m | 5483 | 0 | 0 | 0 | 59 | 0
| 0s |
-| 7313 | chuck.yaml | chuck | kamelet://chuck-norris-source
| started | 12s | 2 | 0 | 0 | 0 | 1 | 0
| 1s |
-| | | chuck-norris-source-1 | timer://chuck?period=10000
| started | 12s | 2 | 0 | 0 | 105 | 133 | 78
| 1s |
-| | | log-sink-2 |
kamelet://source?routeId=log-sink-2 | started | 12s | 2 | 0 |
0 | 0 | 0 | 0 | 1s |
-| 2630 | foo.java | java | timer://java?period=5000
| started | 1h31m | 1101 | 0 | 0 | 0 | 10 | 0
| 1s |
-+------+------------+-----------------------+-------------------------------------+---------+--------+---------+--------+----------+--------+--------+--------+----------+
+ PID SOURCE ID FROM STATE AGE
TOTAL FAILED INFLIGHT MEAN MIN MAX SINCE-LAST
+ 38911 routes.yaml:18 route1 timer://tick?period=5000 Started 11s
3 0 0 13 0 37 0s
+ 38924 dude.java:11 java timer://java?period=1000 Started 10s
10 0 0 1 0 5 0s
+ 38937 gro.groovy groovy timer://groovy?period=1000 Started 8s
8 0 0 1 0 11 0s
----
TIP: Use `camel get --help` to display all the available commands as
additional will be added in upcoming releases.
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index f933ee34aab..35dbc130deb 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -584,8 +584,8 @@ class Run extends CamelCommand {
context.stop();
return;
}
- // update status file with details from the context console
try {
+ // update status file with details from the context console
JsonObject root = new JsonObject();
DevConsole dc =
main.getCamelContext().adapt(ExtendedCamelContext.class)
.getDevConsoleResolver().resolveDevConsole("context");
@@ -600,7 +600,6 @@ class Run extends CamelCommand {
root.put("context", json);
json.put("runtime", "camel-jbang");
root.put("routes", json2.get("routes"));
- IOHelper.writeText(root.toJson(), statusFile);
}
}
// and health-check readiness
@@ -615,6 +614,8 @@ class Run extends CamelCommand {
hc.put("ready", ready);
hc.put("total", total);
root.put("healthChecks", hc);
+
+ IOHelper.writeText(root.toJson(), statusFile);
} catch (Throwable e) {
// ignore
}
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
index a43f274dbd7..7ed706897ef 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
@@ -82,7 +82,7 @@ public class CamelContextStatus extends ProcessBaseCommand {
JsonObject root = loadStatus(ph.pid());
if (root != null) {
JsonObject hc = (JsonObject)
root.get("healthChecks");
- row.ready = hc.getString("ready") + "/" +
hc.getString("total");
+ row.ready = hc != null ? hc.getString("ready") +
"/" + hc.getString("total") : null;
JsonObject context = (JsonObject)
root.get("context");
row.state =
context.getString("state").toLowerCase(Locale.ROOT);
Map<String, ?> stats =
context.getMap("statistics");