parent
e6bb998015
commit
c6e7dad266
|
|
@ -1,6 +1,6 @@
|
|||
PROJECT = rabbitmq_top
|
||||
|
||||
DEPS = amqp_client rabbitmq_management webmachine
|
||||
DEPS = amqp_client rabbitmq_management
|
||||
|
||||
DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
-export([dispatcher/0, web_ui/0]).
|
||||
|
||||
dispatcher() -> [{["top", node], rabbit_top_wm_processes, []},
|
||||
{["top", "ets", node], rabbit_top_wm_ets_tables, []},
|
||||
{["process", pid], rabbit_top_wm_process, []}].
|
||||
dispatcher() -> [{"/top/:node", rabbit_top_wm_processes, []},
|
||||
{"/top/ets/:node", rabbit_top_wm_ets_tables, []},
|
||||
{"/process/:pid", rabbit_top_wm_process, []}].
|
||||
web_ui() -> [{javascript, <<"top.js">>}].
|
||||
|
|
|
|||
|
|
@ -16,32 +16,34 @@
|
|||
|
||||
-module(rabbit_top_wm_ets_tables).
|
||||
|
||||
-export([init/1, to_json/2, content_types_provided/2, is_authorized/2]).
|
||||
-export([init/3]).
|
||||
-export([rest_init/2, to_json/2, content_types_provided/2, is_authorized/2]).
|
||||
|
||||
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
|
||||
-include_lib("amqp_client/include/amqp_client.hrl").
|
||||
-include_lib("webmachine/include/webmachine.hrl").
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
init(_Config) -> {ok, #context{}}.
|
||||
init(_, _, _) -> {upgrade, protocol, cowboy_rest}.
|
||||
|
||||
rest_init(ReqData, _) -> {ok, ReqData, #context{}}.
|
||||
|
||||
content_types_provided(ReqData, Context) ->
|
||||
{[{"application/json", to_json}], ReqData, Context}.
|
||||
{[{<<"application/json">>, to_json}], ReqData, Context}.
|
||||
|
||||
to_json(ReqData, Context) ->
|
||||
Sort = case wrq:get_qs_value("sort", ReqData) of
|
||||
undefined -> memory;
|
||||
Str -> list_to_atom(Str)
|
||||
Sort = case cowboy_req:qs_val(<<"sort">>, ReqData) of
|
||||
{undefined, _} -> memory;
|
||||
{SortBin, _} -> list_to_atom(binary_to_list(SortBin))
|
||||
end,
|
||||
Node = b2a(rabbit_mgmt_util:id(node, ReqData)),
|
||||
Order = case wrq:get_qs_value("sort_reverse", ReqData) of
|
||||
"true" -> asc;
|
||||
_ -> desc
|
||||
Order = case cowboy_req:qs_val(<<"sort_reverse">>, ReqData) of
|
||||
{<<"true">>, _} -> asc;
|
||||
_ -> desc
|
||||
end,
|
||||
RowCount = case wrq:get_qs_value("row_count", ReqData) of
|
||||
undefined -> 20;
|
||||
List when is_list(List) -> list_to_integer(List)
|
||||
RowCount = case cowboy_req:qs_val(<<"row_count">>, ReqData) of
|
||||
{undefined, _} -> 20;
|
||||
{RowCountBin, _} -> list_to_integer(binary_to_list(RowCountBin))
|
||||
end,
|
||||
rabbit_mgmt_util:reply([{node, Node},
|
||||
{row_count, RowCount},
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@
|
|||
|
||||
-module(rabbit_top_wm_process).
|
||||
|
||||
-export([init/1, to_json/2, resource_exists/2, content_types_provided/2,
|
||||
-export([init/3]).
|
||||
-export([rest_init/2, to_json/2, resource_exists/2, content_types_provided/2,
|
||||
is_authorized/2]).
|
||||
|
||||
-define(ADDITIONAL_INFO,
|
||||
|
|
@ -24,14 +25,15 @@
|
|||
|
||||
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
|
||||
-include_lib("amqp_client/include/amqp_client.hrl").
|
||||
-include_lib("webmachine/include/webmachine.hrl").
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
init(_Config) -> {ok, #context{}}.
|
||||
init(_, _, _) -> {upgrade, protocol, cowboy_rest}.
|
||||
|
||||
rest_init(ReqData, _) -> {ok, ReqData, #context{}}.
|
||||
|
||||
content_types_provided(ReqData, Context) ->
|
||||
{[{"application/json", to_json}], ReqData, Context}.
|
||||
{[{<<"application/json">>, to_json}], ReqData, Context}.
|
||||
|
||||
to_json(ReqData, Context) ->
|
||||
rabbit_mgmt_util:reply(proc(ReqData), ReqData, Context).
|
||||
|
|
|
|||
|
|
@ -16,32 +16,34 @@
|
|||
|
||||
-module(rabbit_top_wm_processes).
|
||||
|
||||
-export([init/1, to_json/2, content_types_provided/2, is_authorized/2]).
|
||||
-export([init/3]).
|
||||
-export([rest_init/2, to_json/2, content_types_provided/2, is_authorized/2]).
|
||||
|
||||
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
|
||||
-include_lib("amqp_client/include/amqp_client.hrl").
|
||||
-include_lib("webmachine/include/webmachine.hrl").
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
init(_Config) -> {ok, #context{}}.
|
||||
init(_, _, _) -> {upgrade, protocol, cowboy_rest}.
|
||||
|
||||
rest_init(ReqData, _) -> {ok, ReqData, #context{}}.
|
||||
|
||||
content_types_provided(ReqData, Context) ->
|
||||
{[{"application/json", to_json}], ReqData, Context}.
|
||||
{[{<<"application/json">>, to_json}], ReqData, Context}.
|
||||
|
||||
to_json(ReqData, Context) ->
|
||||
Sort = case wrq:get_qs_value("sort", ReqData) of
|
||||
undefined -> reduction_delta;
|
||||
Str -> list_to_atom(Str)
|
||||
Sort = case cowboy_req:qs_val(<<"sort">>, ReqData) of
|
||||
{undefined, _} -> reduction_delta;
|
||||
{SortBin, _} -> list_to_atom(binary_to_list(SortBin))
|
||||
end,
|
||||
Node = b2a(rabbit_mgmt_util:id(node, ReqData)),
|
||||
Order = case wrq:get_qs_value("sort_reverse", ReqData) of
|
||||
"true" -> asc;
|
||||
_ -> desc
|
||||
Order = case cowboy_req:qs_val(<<"sort_reverse">>, ReqData) of
|
||||
{<<"true">>, _} -> asc;
|
||||
_ -> desc
|
||||
end,
|
||||
RowCount = case wrq:get_qs_value("row_count", ReqData) of
|
||||
undefined -> 20;
|
||||
List when is_list(List) -> list_to_integer(List)
|
||||
RowCount = case cowboy_req:qs_val(<<"row_count">>, ReqData) of
|
||||
{undefined, _} -> 20;
|
||||
{RowCountBin, _} -> list_to_integer(binary_to_list(RowCountBin))
|
||||
end,
|
||||
rabbit_mgmt_util:reply([{node, Node},
|
||||
{row_count, RowCount},
|
||||
|
|
|
|||
Loading…
Reference in New Issue