fix(rule_engine_metric): remove unused metrics 'overall_metrics'
This commit is contained in:
parent
82c6eaa3aa
commit
7605fa5e64
|
@ -58,14 +58,11 @@
|
||||||
-export([ inc/2
|
-export([ inc/2
|
||||||
, inc/3
|
, inc/3
|
||||||
, get/2
|
, get/2
|
||||||
, get_overall/1
|
|
||||||
, get_rule_speed/1
|
, get_rule_speed/1
|
||||||
, get_overall_rule_speed/0
|
|
||||||
, create_rule_metrics/1
|
, create_rule_metrics/1
|
||||||
, create_metrics/1
|
, create_metrics/1
|
||||||
, clear_rule_metrics/1
|
, clear_rule_metrics/1
|
||||||
, clear_metrics/1
|
, clear_metrics/1
|
||||||
, overall_metrics/0
|
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-export([ get_rule_metrics/1
|
-export([ get_rule_metrics/1
|
||||||
|
@ -137,18 +134,10 @@ get(Id, Metric) ->
|
||||||
Ref -> counters:get(Ref, metrics_idx(Metric))
|
Ref -> counters:get(Ref, metrics_idx(Metric))
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec(get_overall(atom()) -> number()).
|
|
||||||
get_overall(Metric) ->
|
|
||||||
emqx_metrics:val(Metric).
|
|
||||||
|
|
||||||
-spec(get_rule_speed(rule_id()) -> map()).
|
-spec(get_rule_speed(rule_id()) -> map()).
|
||||||
get_rule_speed(Id) ->
|
get_rule_speed(Id) ->
|
||||||
gen_server:call(?MODULE, {get_rule_speed, Id}).
|
gen_server:call(?MODULE, {get_rule_speed, Id}).
|
||||||
|
|
||||||
-spec(get_overall_rule_speed() -> map()).
|
|
||||||
get_overall_rule_speed() ->
|
|
||||||
gen_server:call(?MODULE, get_overall_rule_speed).
|
|
||||||
|
|
||||||
-spec(get_rule_metrics(rule_id()) -> map()).
|
-spec(get_rule_metrics(rule_id()) -> map()).
|
||||||
get_rule_metrics(Id) ->
|
get_rule_metrics(Id) ->
|
||||||
#{max := Max, current := Current, last5m := Last5M} = get_rule_speed(Id),
|
#{max := Max, current := Current, last5m := Last5M} = get_rule_speed(Id),
|
||||||
|
@ -186,12 +175,7 @@ inc(Id, Metric, Val) ->
|
||||||
counters:add(couters_ref(Id), metrics_idx(Metric), Val);
|
counters:add(couters_ref(Id), metrics_idx(Metric), Val);
|
||||||
Ref ->
|
Ref ->
|
||||||
counters:add(Ref, metrics_idx(Metric), Val)
|
counters:add(Ref, metrics_idx(Metric), Val)
|
||||||
end,
|
end.
|
||||||
inc_overall(Metric, Val).
|
|
||||||
|
|
||||||
-spec(inc_overall(atom(), pos_integer()) -> ok).
|
|
||||||
inc_overall(Metric, Val) ->
|
|
||||||
emqx_metrics:inc(Metric, Val).
|
|
||||||
|
|
||||||
inc_actions_taken(Id) ->
|
inc_actions_taken(Id) ->
|
||||||
inc_actions_taken(Id, 1).
|
inc_actions_taken(Id, 1).
|
||||||
|
@ -280,8 +264,6 @@ start_link() ->
|
||||||
|
|
||||||
init([]) ->
|
init([]) ->
|
||||||
erlang:process_flag(trap_exit, true),
|
erlang:process_flag(trap_exit, true),
|
||||||
%% the overall counters
|
|
||||||
[ok = emqx_metrics:ensure(Metric)|| Metric <- overall_metrics()],
|
|
||||||
%% the speed metrics
|
%% the speed metrics
|
||||||
erlang:send_after(timer:seconds(?SAMPLING), self(), ticking),
|
erlang:send_after(timer:seconds(?SAMPLING), self(), ticking),
|
||||||
{ok, #state{overall_rule_speed = #rule_speed{}}}.
|
{ok, #state{overall_rule_speed = #rule_speed{}}}.
|
||||||
|
@ -294,9 +276,6 @@ handle_call({get_rule_speed, Id}, _From, State = #state{rule_speeds = RuleSpeeds
|
||||||
Speed -> format_rule_speed(Speed)
|
Speed -> format_rule_speed(Speed)
|
||||||
end, State};
|
end, State};
|
||||||
|
|
||||||
handle_call(get_overall_rule_speed, _From, State = #state{overall_rule_speed = RuleSpeed}) ->
|
|
||||||
{reply, format_rule_speed(RuleSpeed), State};
|
|
||||||
|
|
||||||
handle_call({create_metrics, Id}, _From, State = #state{metric_ids = MIDs}) ->
|
handle_call({create_metrics, Id}, _From, State = #state{metric_ids = MIDs}) ->
|
||||||
{reply, create_counters(Id), State#state{metric_ids = sets:add_element(Id, MIDs)}};
|
{reply, create_counters(Id), State#state{metric_ids = sets:add_element(Id, MIDs)}};
|
||||||
|
|
||||||
|
@ -333,17 +312,14 @@ handle_info(ticking, State = #state{rule_speeds = undefined}) ->
|
||||||
erlang:send_after(timer:seconds(?SAMPLING), self(), ticking),
|
erlang:send_after(timer:seconds(?SAMPLING), self(), ticking),
|
||||||
{noreply, State};
|
{noreply, State};
|
||||||
|
|
||||||
handle_info(ticking, State = #state{rule_speeds = RuleSpeeds0,
|
handle_info(ticking, State = #state{rule_speeds = RuleSpeeds0}) ->
|
||||||
overall_rule_speed = OverallRuleSpeed0}) ->
|
|
||||||
RuleSpeeds = maps:map(
|
RuleSpeeds = maps:map(
|
||||||
fun(Id, RuleSpeed) ->
|
fun(Id, RuleSpeed) ->
|
||||||
calculate_speed(get_rules_matched(Id), RuleSpeed)
|
calculate_speed(get_rules_matched(Id), RuleSpeed)
|
||||||
end, RuleSpeeds0),
|
end, RuleSpeeds0),
|
||||||
OverallRuleSpeed = calculate_speed(get_overall('rules.matched'), OverallRuleSpeed0),
|
|
||||||
async_refresh_resource_status(),
|
async_refresh_resource_status(),
|
||||||
erlang:send_after(timer:seconds(?SAMPLING), self(), ticking),
|
erlang:send_after(timer:seconds(?SAMPLING), self(), ticking),
|
||||||
{noreply, State#state{rule_speeds = RuleSpeeds,
|
{noreply, State#state{rule_speeds = RuleSpeeds}};
|
||||||
overall_rule_speed = OverallRuleSpeed}};
|
|
||||||
|
|
||||||
handle_info(_Info, State) ->
|
handle_info(_Info, State) ->
|
||||||
{noreply, State}.
|
{noreply, State}.
|
||||||
|
@ -493,16 +469,3 @@ metrics_idx('rules.passed') -> 8;
|
||||||
metrics_idx('rules.exception') -> 9;
|
metrics_idx('rules.exception') -> 9;
|
||||||
metrics_idx('rules.no_result') -> 10;
|
metrics_idx('rules.no_result') -> 10;
|
||||||
metrics_idx(_) -> 11.
|
metrics_idx(_) -> 11.
|
||||||
|
|
||||||
overall_metrics() ->
|
|
||||||
[ 'rules.matched'
|
|
||||||
, 'actions.success'
|
|
||||||
, 'actions.error'
|
|
||||||
, 'actions.taken'
|
|
||||||
, 'actions.exception'
|
|
||||||
, 'actions.retry'
|
|
||||||
, 'rules.failed'
|
|
||||||
, 'rules.passed'
|
|
||||||
, 'rules.exception'
|
|
||||||
, 'rules.no_result'
|
|
||||||
].
|
|
||||||
|
|
|
@ -55,7 +55,6 @@ end_per_suite(_Config) ->
|
||||||
init_per_testcase(_, Config) ->
|
init_per_testcase(_, Config) ->
|
||||||
catch emqx_rule_metrics:stop(),
|
catch emqx_rule_metrics:stop(),
|
||||||
{ok, _} = emqx_rule_metrics:start_link(),
|
{ok, _} = emqx_rule_metrics:start_link(),
|
||||||
[emqx_metrics:set(M, 0) || M <- emqx_rule_metrics:overall_metrics()],
|
|
||||||
Config.
|
Config.
|
||||||
|
|
||||||
end_per_testcase(_, _Config) ->
|
end_per_testcase(_, _Config) ->
|
||||||
|
@ -81,8 +80,6 @@ t_action(_) ->
|
||||||
?assertEqual(1, emqx_rule_metrics:get_actions_exception(<<"action:1">>)),
|
?assertEqual(1, emqx_rule_metrics:get_actions_exception(<<"action:1">>)),
|
||||||
?assertEqual(2, emqx_rule_metrics:get_actions_taken(<<"action:2">>)),
|
?assertEqual(2, emqx_rule_metrics:get_actions_taken(<<"action:2">>)),
|
||||||
?assertEqual(0, emqx_rule_metrics:get_actions_taken(<<"action:3">>)),
|
?assertEqual(0, emqx_rule_metrics:get_actions_taken(<<"action:3">>)),
|
||||||
?assertEqual(3, emqx_rule_metrics:get_overall('actions.taken')),
|
|
||||||
?assertEqual(1, emqx_rule_metrics:get_overall('actions.exception')),
|
|
||||||
ok = emqx_rule_metrics:clear_metrics(<<"action:1">>),
|
ok = emqx_rule_metrics:clear_metrics(<<"action:1">>),
|
||||||
ok = emqx_rule_metrics:clear_metrics(<<"action:2">>),
|
ok = emqx_rule_metrics:clear_metrics(<<"action:2">>),
|
||||||
?assertEqual(0, emqx_rule_metrics:get_actions_taken(<<"action:1">>)),
|
?assertEqual(0, emqx_rule_metrics:get_actions_taken(<<"action:1">>)),
|
||||||
|
@ -105,7 +102,6 @@ t_rule(_) ->
|
||||||
?assertEqual(1, emqx_rule_metrics:get(<<"rule:1">>, 'rules.failed')),
|
?assertEqual(1, emqx_rule_metrics:get(<<"rule:1">>, 'rules.failed')),
|
||||||
?assertEqual(2, emqx_rule_metrics:get(<<"rule2">>, 'rules.matched')),
|
?assertEqual(2, emqx_rule_metrics:get(<<"rule2">>, 'rules.matched')),
|
||||||
?assertEqual(0, emqx_rule_metrics:get(<<"rule3">>, 'rules.matched')),
|
?assertEqual(0, emqx_rule_metrics:get(<<"rule3">>, 'rules.matched')),
|
||||||
?assertEqual(3, emqx_rule_metrics:get_overall('rules.matched')),
|
|
||||||
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule:1">>),
|
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule:1">>),
|
||||||
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule2">>).
|
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule2">>).
|
||||||
|
|
||||||
|
@ -127,24 +123,11 @@ rule_speed(_) ->
|
||||||
?LET(#{max := Max, current := Current}, emqx_rule_metrics:get_rule_speed(<<"rule1">>),
|
?LET(#{max := Max, current := Current}, emqx_rule_metrics:get_rule_speed(<<"rule1">>),
|
||||||
{?assert(Max =< 2),
|
{?assert(Max =< 2),
|
||||||
?assert(Current =< 2)}),
|
?assert(Current =< 2)}),
|
||||||
ct:pal("===== Speed: ~p~n", [emqx_rule_metrics:get_overall_rule_speed()]),
|
|
||||||
?LET(#{max := Max, current := Current}, emqx_rule_metrics:get_overall_rule_speed(),
|
|
||||||
{?assert(Max =< 3),
|
|
||||||
?assert(Current =< 3)}),
|
|
||||||
ct:sleep(2100),
|
ct:sleep(2100),
|
||||||
?LET(#{max := Max, current := Current, last5m := Last5Min}, emqx_rule_metrics:get_rule_speed(<<"rule1">>),
|
?LET(#{max := Max, current := Current, last5m := Last5Min}, emqx_rule_metrics:get_rule_speed(<<"rule1">>),
|
||||||
{?assert(Max =< 2),
|
{?assert(Max =< 2),
|
||||||
?assert(Current == 0),
|
?assert(Current == 0),
|
||||||
?assert(Last5Min =< 0.67)}),
|
?assert(Last5Min =< 0.67)}),
|
||||||
?LET(#{max := Max, current := Current, last5m := Last5Min}, emqx_rule_metrics:get_overall_rule_speed(),
|
|
||||||
{?assert(Max =< 3),
|
|
||||||
?assert(Current == 0),
|
|
||||||
?assert(Last5Min =< 1)}),
|
|
||||||
ct:sleep(3000),
|
|
||||||
?LET(#{max := Max, current := Current, last5m := Last5Min}, emqx_rule_metrics:get_overall_rule_speed(),
|
|
||||||
{?assert(Max =< 3),
|
|
||||||
?assert(Current == 0),
|
|
||||||
?assert(Last5Min == 0)}),
|
|
||||||
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule1">>),
|
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule1">>),
|
||||||
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule:2">>).
|
ok = emqx_rule_metrics:clear_rule_metrics(<<"rule:2">>).
|
||||||
|
|
||||||
|
@ -154,14 +137,10 @@ rule_speed(_) ->
|
||||||
% t_get(_) ->
|
% t_get(_) ->
|
||||||
% error('TODO').
|
% error('TODO').
|
||||||
|
|
||||||
% t_get_overall(_) ->
|
|
||||||
% error('TODO').
|
|
||||||
|
|
||||||
% t_get_rule_speed(_) ->
|
% t_get_rule_speed(_) ->
|
||||||
% error('TODO').
|
% error('TODO').
|
||||||
|
|
||||||
% t_get_overall_rule_speed(_) ->
|
|
||||||
% error('TODO').
|
|
||||||
|
|
||||||
% t_get_rule_metrics(_) ->
|
% t_get_rule_metrics(_) ->
|
||||||
% error('TODO').
|
% error('TODO').
|
||||||
|
@ -171,7 +150,3 @@ rule_speed(_) ->
|
||||||
|
|
||||||
% t_inc(_) ->
|
% t_inc(_) ->
|
||||||
% error('TODO').
|
% error('TODO').
|
||||||
|
|
||||||
% t_overall_metrics(_) ->
|
|
||||||
% error('TODO').
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue