diff --git a/apps/emqttd/src/emqttd_ctl.erl b/apps/emqttd/src/emqttd_ctl.erl index 4fa2433a2..da8d2cf60 100644 --- a/apps/emqttd/src/emqttd_ctl.erl +++ b/apps/emqttd/src/emqttd_ctl.erl @@ -38,6 +38,8 @@ -export([status/1, broker/1, + stats/1, + metrics/1, cluster/1, listeners/1, bridges/1, @@ -84,12 +86,12 @@ userdel([Username]) -> broker([]) -> Funs = [sysdescr, version, uptime, datetime], - [?PRINT("~s: ~s~n", [Fun, emqttd_broker:Fun()]) || Fun <- Funs]; + [?PRINT("~s: ~s~n", [Fun, emqttd_broker:Fun()]) || Fun <- Funs]. -broker(["stats"]) -> - [?PRINT("~s: ~p~n", [Stat, Val]) || {Stat, Val} <- emqttd_broker:getstats()]; +stats([]) -> + [?PRINT("~s: ~p~n", [Stat, Val]) || {Stat, Val} <- emqttd_broker:getstats()]. -broker(["metrics"]) -> +metrics([]) -> [?PRINT("~s: ~p~n", [Metric, Val]) || {Metric, Val} <- emqttd_metrics:all()]. listeners([]) -> diff --git a/rel/files/emqttd_ctl b/rel/files/emqttd_ctl index 35c550ca0..2e751b9d4 100755 --- a/rel/files/emqttd_ctl +++ b/rel/files/emqttd_ctl @@ -149,8 +149,8 @@ case "$1" in ;; broker) - if [ $# -gt 2 ]; then - echo "Usage: $SCRIPT broker [status | stats | metrics]" + if [ $# -ne 1 ]; then + echo "Usage: $SCRIPT broker" exit 1 fi @@ -165,6 +165,41 @@ case "$1" in $NODETOOL rpc emqttd_ctl broker $@ ;; + stats) + if [ $# -ne 1 ]; then + echo "Usage: $SCRIPT stats" + exit 1 + fi + + # Make sure the local node IS running + RES=`$NODETOOL ping` + if [ "$RES" != "pong" ]; then + echo "emqttd is not running!" + exit 1 + fi + shift + + $NODETOOL rpc emqttd_ctl stats $@ + ;; + + metrics) + if [ $# -ne 1 ]; then + echo "Usage: $SCRIPT metrics" + exit 1 + fi + + # Make sure the local node IS running + RES=`$NODETOOL ping` + if [ "$RES" != "pong" ]; then + echo "emqttd is not running!" + exit 1 + fi + shift + + $NODETOOL rpc emqttd_ctl metrics $@ + ;; + + bridges) # Make sure the local node IS running RES=`$NODETOOL ping` @@ -223,8 +258,10 @@ case "$1" in *) echo "Usage: $SCRIPT" - echo " status #query status" - echo " broker [stats | metrics] #query broker stats or metrics" + echo " status #query broker status" + echo " broker #query broker version, uptime and description" + echo " stats #query broker statistics of clients, topics, subscribers" + echo " metrics #query broker metrics" echo " cluster [] #query or cluster nodes" echo " plugins list #query loaded plugins" echo " plugins load #load plugin"