fix(emqx_exhook): fix some error of indent and dialyzer
This commit is contained in:
parent
9a6a8a778b
commit
86af3a9b8f
|
@ -32,6 +32,14 @@
|
||||||
-define(BAD_REQUEST, 'BAD_REQUEST').
|
-define(BAD_REQUEST, 'BAD_REQUEST').
|
||||||
-define(BAD_RPC, 'BAD_RPC').
|
-define(BAD_RPC, 'BAD_RPC').
|
||||||
|
|
||||||
|
-type rpc_result() :: {error, any()}
|
||||||
|
| any().
|
||||||
|
|
||||||
|
-dialyzer([{nowarn_function, [ fill_cluster_server_info/5
|
||||||
|
, nodes_server_info/5
|
||||||
|
, fill_server_hooks_info/4
|
||||||
|
]}]).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% schema
|
%% schema
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -144,7 +152,7 @@ fields(node_metrics) ->
|
||||||
|
|
||||||
fields(node_status) ->
|
fields(node_status) ->
|
||||||
[ {node, mk(string(), #{})}
|
[ {node, mk(string(), #{})}
|
||||||
, {status, mk(enum([running, waiting, stopped, not_found, error]), #{})}
|
, {status, mk(enum([running, waiting, stopped, error]), #{})}
|
||||||
];
|
];
|
||||||
|
|
||||||
fields(hook_info) ->
|
fields(hook_info) ->
|
||||||
|
@ -387,6 +395,7 @@ call_cluster(Module, Fun, Args) ->
|
||||||
Nodes = mria_mnesia:running_nodes(),
|
Nodes = mria_mnesia:running_nodes(),
|
||||||
[{Node, rpc_call(Node, Module, Fun, Args)} || Node <- Nodes].
|
[{Node, rpc_call(Node, Module, Fun, Args)} || Node <- Nodes].
|
||||||
|
|
||||||
|
-spec rpc_call(node(), atom(), atom(), list()) -> rpc_result().
|
||||||
rpc_call(Node, Module, Fun, Args) when Node =:= node() ->
|
rpc_call(Node, Module, Fun, Args) when Node =:= node() ->
|
||||||
erlang:apply(Module, Fun, Args);
|
erlang:apply(Module, Fun, Args);
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,12 @@
|
||||||
%% API
|
%% API
|
||||||
-export([ init/0, succeed/2, failed/2
|
-export([ init/0, succeed/2, failed/2
|
||||||
, update/1, new_metrics_info/0, servers_metrics/0
|
, update/1, new_metrics_info/0, servers_metrics/0
|
||||||
, delete_server/1, server_metrics/1, hooks_metrics/1
|
, on_server_deleted/1, server_metrics/1, hooks_metrics/1
|
||||||
, metrics_aggregate/1, metrics_aggregate_by_key/2, hooks_metrics_aggregate/1
|
, metrics_aggregate/1, metrics_aggregate_by_key/2
|
||||||
, metrics_aggregate_by/2
|
, metrics_aggregate_by/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-record(metrics, {
|
-record(metrics, { index :: index()
|
||||||
index :: index()
|
|
||||||
, succeed = 0 :: non_neg_integer()
|
, succeed = 0 :: non_neg_integer()
|
||||||
, failed = 0 :: non_neg_integer()
|
, failed = 0 :: non_neg_integer()
|
||||||
, rate = 0 :: non_neg_integer()
|
, rate = 0 :: non_neg_integer()
|
||||||
|
@ -69,7 +68,7 @@ new_metric_info() ->
|
||||||
max_rate => 0
|
max_rate => 0
|
||||||
}.
|
}.
|
||||||
|
|
||||||
-spec succeed(server_name(), hookpoint()) -> integer().
|
-spec succeed(server_name(), hookpoint()) -> ok.
|
||||||
succeed(Server, Hook) ->
|
succeed(Server, Hook) ->
|
||||||
inc(Server, Hook, #metrics.succeed,
|
inc(Server, Hook, #metrics.succeed,
|
||||||
#metrics{index = {Server, Hook}
|
#metrics{index = {Server, Hook}
|
||||||
|
@ -77,7 +76,7 @@ succeed(Server, Hook) ->
|
||||||
,succeed = 1
|
,succeed = 1
|
||||||
}).
|
}).
|
||||||
|
|
||||||
-spec failed(server_name(), hookpoint()) -> integer().
|
-spec failed(server_name(), hookpoint()) -> ok.
|
||||||
failed(Server, Hook) ->
|
failed(Server, Hook) ->
|
||||||
inc(Server, Hook, #metrics.failed,
|
inc(Server, Hook, #metrics.failed,
|
||||||
#metrics{index = {Server, Hook}
|
#metrics{index = {Server, Hook}
|
||||||
|
@ -104,8 +103,8 @@ update(Interval) ->
|
||||||
|
|
||||||
ets:foldl(Fun, true, ?HOOKS_METRICS).
|
ets:foldl(Fun, true, ?HOOKS_METRICS).
|
||||||
|
|
||||||
-spec delete_server(server_name()) -> true.
|
-spec on_server_deleted(server_name()) -> true.
|
||||||
delete_server(Name) ->
|
on_server_deleted(Name) ->
|
||||||
ets:match_delete(?HOOKS_METRICS,
|
ets:match_delete(?HOOKS_METRICS,
|
||||||
{metrics, {Name, '_'}, '_', '_', '_', '_', '_'}).
|
{metrics, {Name, '_'}, '_', '_', '_', '_', '_'}).
|
||||||
|
|
||||||
|
@ -185,30 +184,17 @@ metrics_aggregate_by_key(Key, MetricsL) ->
|
||||||
metrics_aggregate_by(fun(X) -> maps:get(Key, X, new_metrics_info()) end,
|
metrics_aggregate_by(fun(X) -> maps:get(Key, X, new_metrics_info()) end,
|
||||||
MetricsL).
|
MetricsL).
|
||||||
|
|
||||||
-spec hooks_metrics_aggregate(list(hooks_metrics())) -> hooks_metrics().
|
|
||||||
hooks_metrics_aggregate([]) ->
|
|
||||||
#{};
|
|
||||||
|
|
||||||
hooks_metrics_aggregate([H | _] = MapL) ->
|
|
||||||
Hooks = maps:keys(H),
|
|
||||||
|
|
||||||
Fold = fun(Hook, Acc) ->
|
|
||||||
Metrics = metrics_aggregate_by_key(Hook, MapL),
|
|
||||||
Acc#{Hook => Metrics}
|
|
||||||
end,
|
|
||||||
|
|
||||||
lists:foldl(Fold, #{}, Hooks).
|
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%%% Internal functions
|
%%% Internal functions
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
-spec inc(server_name(), hookpoint(), pos_integer(), #metrics{}) -> integer().
|
-spec inc(server_name(), hookpoint(), pos_integer(), #metrics{}) -> ok.
|
||||||
inc(Server, Hook, Pos, Default) ->
|
inc(Server, Hook, Pos, Default) ->
|
||||||
Index = {Server, Hook},
|
Index = {Server, Hook},
|
||||||
ets:update_counter(?HOOKS_METRICS,
|
_ = ets:update_counter(?HOOKS_METRICS,
|
||||||
Index,
|
Index,
|
||||||
[{#metrics.window_rate, 1}, {Pos, 1}],
|
[{#metrics.window_rate, 1}, {Pos, 1}],
|
||||||
Default).
|
Default),
|
||||||
|
ok.
|
||||||
|
|
||||||
-spec new_metrics_info() -> metrics_info().
|
-spec new_metrics_info() -> metrics_info().
|
||||||
new_metrics_info() ->
|
new_metrics_info() ->
|
||||||
|
@ -231,7 +217,8 @@ metrics_add(#{succeed := S1, failed := F1, rate := R1, max_rate := M1}
|
||||||
, max_rate := M1 + M2
|
, max_rate := M1 + M2
|
||||||
}.
|
}.
|
||||||
|
|
||||||
-spec metrics_aggregate_by(fun((any()) -> metrics_info()), list(metrics_info())) -> metrics_info().
|
-spec metrics_aggregate_by(fun((X) -> metrics_info()), list(X)) -> metrics_info()
|
||||||
|
when X :: any().
|
||||||
metrics_aggregate_by(_, []) ->
|
metrics_aggregate_by(_, []) ->
|
||||||
new_metric_info();
|
new_metric_info();
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,7 @@ handle_call({update_config, {delete, ToDelete}, _}, _From, State) ->
|
||||||
orders := maps:remove(ToDelete, Orders)
|
orders := maps:remove(ToDelete, Orders)
|
||||||
},
|
},
|
||||||
|
|
||||||
emqx_exhook_metrics:delete_server(ToDelete),
|
emqx_exhook_metrics:on_server_deleted(ToDelete),
|
||||||
|
|
||||||
{reply, ok, State3};
|
{reply, ok, State3};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue