emqttd_ctl vm
This commit is contained in:
parent
d0eb5cddb4
commit
2a9653f8a8
|
@ -37,6 +37,7 @@
|
||||||
io:format(Format, Args)).
|
io:format(Format, Args)).
|
||||||
|
|
||||||
-export([status/1,
|
-export([status/1,
|
||||||
|
vm/1,
|
||||||
broker/1,
|
broker/1,
|
||||||
stats/1,
|
stats/1,
|
||||||
metrics/1,
|
metrics/1,
|
||||||
|
@ -77,13 +78,32 @@ cluster([SNode]) ->
|
||||||
?PRINT("failed to connect to ~p~n", [Node])
|
?PRINT("failed to connect to ~p~n", [Node])
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
useradd([Username, Password]) ->
|
useradd([Username, Password]) ->
|
||||||
?PRINT("~p", [emqttd_auth:add(list_to_binary(Username), list_to_binary(Password))]).
|
?PRINT("~p", [emqttd_auth:add(list_to_binary(Username), list_to_binary(Password))]).
|
||||||
|
|
||||||
userdel([Username]) ->
|
userdel([Username]) ->
|
||||||
?PRINT("~p", [emqttd_auth:delete(list_to_binary(Username))]).
|
?PRINT("~p", [emqttd_auth:delete(list_to_binary(Username))]).
|
||||||
|
|
||||||
|
vm([]) ->
|
||||||
|
[vm([Name]) || Name <- ["load", "memory", "process", "io"]];
|
||||||
|
|
||||||
|
vm(["load"]) ->
|
||||||
|
?PRINT_MSG("Load: ~n"),
|
||||||
|
[?PRINT(" ~s:~s~n", [L, V]) || {L, V} <- loads()];
|
||||||
|
|
||||||
|
vm(["memory"]) ->
|
||||||
|
?PRINT_MSG("Memory: ~n"),
|
||||||
|
[?PRINT(" ~s:~p~n", [Cat, Val]) || {Cat, Val} <- erlang:memory()];
|
||||||
|
|
||||||
|
vm(["process"]) ->
|
||||||
|
?PRINT_MSG("Process: ~n"),
|
||||||
|
?PRINT(" process_limit:~p~n", [erlang:system_info(process_limit)]),
|
||||||
|
?PRINT(" process_count:~p~n", [erlang:system_info(process_count)]);
|
||||||
|
|
||||||
|
vm(["io"]) ->
|
||||||
|
?PRINT_MSG("IO: ~n"),
|
||||||
|
?PRINT(" max_fds:~p~n", [proplists:get_value(max_fds, erlang:system_info(check_io))]).
|
||||||
|
|
||||||
broker([]) ->
|
broker([]) ->
|
||||||
Funs = [sysdescr, version, uptime, datetime],
|
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].
|
||||||
|
@ -156,4 +176,11 @@ node_name(SNode) ->
|
||||||
end,
|
end,
|
||||||
list_to_atom(SNode1).
|
list_to_atom(SNode1).
|
||||||
|
|
||||||
|
loads() ->
|
||||||
|
[{load1, ftos(cpu_sup:avg1()/256)},
|
||||||
|
{load5, ftos(cpu_sup:avg5()/256)},
|
||||||
|
{load15, ftos(cpu_sup:avg15()/256)}].
|
||||||
|
|
||||||
|
ftos(F) ->
|
||||||
|
[S] = io_lib:format("~.2f", [F]), S.
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,23 @@ case "$1" in
|
||||||
$NODETOOL rpc emqttd_ctl userdel $@
|
$NODETOOL rpc emqttd_ctl userdel $@
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
vm)
|
||||||
|
if [ $# -gt 2 ]; then
|
||||||
|
echo "Usage: $SCRIPT vm [ load | memory | process | io ]"
|
||||||
|
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 vm $@
|
||||||
|
;;
|
||||||
|
|
||||||
broker)
|
broker)
|
||||||
if [ $# -ne 1 ]; then
|
if [ $# -ne 1 ]; then
|
||||||
echo "Usage: $SCRIPT broker"
|
echo "Usage: $SCRIPT broker"
|
||||||
|
@ -199,7 +216,6 @@ case "$1" in
|
||||||
$NODETOOL rpc emqttd_ctl metrics $@
|
$NODETOOL rpc emqttd_ctl metrics $@
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
||||||
bridges)
|
bridges)
|
||||||
# Make sure the local node IS running
|
# Make sure the local node IS running
|
||||||
RES=`$NODETOOL ping`
|
RES=`$NODETOOL ping`
|
||||||
|
@ -259,6 +275,7 @@ case "$1" in
|
||||||
*)
|
*)
|
||||||
echo "Usage: $SCRIPT"
|
echo "Usage: $SCRIPT"
|
||||||
echo " status #query broker status"
|
echo " status #query broker status"
|
||||||
|
echo " vm [ load | memory | process | io ] #query load, memory, process and io of erlang vm"
|
||||||
echo " broker #query broker version, uptime and description"
|
echo " broker #query broker version, uptime and description"
|
||||||
echo " stats #query broker statistics of clients, topics, subscribers"
|
echo " stats #query broker statistics of clients, topics, subscribers"
|
||||||
echo " metrics #query broker metrics"
|
echo " metrics #query broker metrics"
|
||||||
|
|
Loading…
Reference in New Issue