fix(metrics): update the calls to emqx_plugin_libs_metrcis module
This commit is contained in:
parent
ab5ad22b1d
commit
78aa0abd3d
|
@ -35,8 +35,6 @@
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-export([ get_metrics/2
|
-export([ get_metrics/2
|
||||||
, get_matched/2
|
|
||||||
, inc_matched/2
|
|
||||||
]).
|
]).
|
||||||
|
|
||||||
%% gen_server callbacks
|
%% gen_server callbacks
|
||||||
|
@ -74,7 +72,6 @@
|
||||||
-define(CntrRef(Name), {?MODULE, Name}).
|
-define(CntrRef(Name), {?MODULE, Name}).
|
||||||
-define(SAMPCOUNT_5M, (?SECS_5M div ?SAMPLING)).
|
-define(SAMPCOUNT_5M, (?SECS_5M div ?SAMPLING)).
|
||||||
|
|
||||||
%% the rate of 'matched'
|
|
||||||
-record(rate, {
|
-record(rate, {
|
||||||
max = 0 :: number(),
|
max = 0 :: number(),
|
||||||
current = 0 :: number(),
|
current = 0 :: number(),
|
||||||
|
@ -106,11 +103,11 @@ child_spec(Name) ->
|
||||||
, modules => [emqx_plugin_libs_metrics]
|
, modules => [emqx_plugin_libs_metrics]
|
||||||
}.
|
}.
|
||||||
|
|
||||||
-spec(create_metrics(handler_name(), metric_id(), [atom()]) -> ok).
|
-spec(create_metrics(handler_name(), metric_id(), [atom()]) -> ok | {error, term()}).
|
||||||
create_metrics(Name, Id, Metrics) ->
|
create_metrics(Name, Id, Metrics) ->
|
||||||
create_metrics(Name, Id, Metrics, Metrics).
|
create_metrics(Name, Id, Metrics, Metrics).
|
||||||
|
|
||||||
-spec(create_metrics(handler_name(), metric_id(), [atom()], [atom()]) -> ok).
|
-spec(create_metrics(handler_name(), metric_id(), [atom()], [atom()]) -> ok | {error, term()}).
|
||||||
create_metrics(Name, Id, Metrics, RateMetrics) ->
|
create_metrics(Name, Id, Metrics, RateMetrics) ->
|
||||||
gen_server:call(Name, {create_metrics, Id, Metrics, RateMetrics}).
|
gen_server:call(Name, {create_metrics, Id, Metrics, RateMetrics}).
|
||||||
|
|
||||||
|
@ -150,12 +147,6 @@ inc(Name, Id, Metric) ->
|
||||||
inc(Name, Id, Metric, Val) ->
|
inc(Name, Id, Metric, Val) ->
|
||||||
counters:add(get_ref(Name, Id), idx_metric(Name, Id,Metric), Val).
|
counters:add(get_ref(Name, Id), idx_metric(Name, Id,Metric), Val).
|
||||||
|
|
||||||
inc_matched(Name, Id) ->
|
|
||||||
inc(Name, Id, 'matched', 1).
|
|
||||||
|
|
||||||
get_matched(Name, Id) ->
|
|
||||||
get(Name, Id, 'matched').
|
|
||||||
|
|
||||||
start_link(Name) ->
|
start_link(Name) ->
|
||||||
gen_server:start_link({local, Name}, ?MODULE, Name, []).
|
gen_server:start_link({local, Name}, ?MODULE, Name, []).
|
||||||
|
|
||||||
|
@ -174,14 +165,19 @@ handle_call({get_rate, Id}, _From, State = #state{rates = Rates}) ->
|
||||||
|
|
||||||
handle_call({create_metrics, Id, Metrics, RateMetrics}, _From,
|
handle_call({create_metrics, Id, Metrics, RateMetrics}, _From,
|
||||||
State = #state{metric_ids = MIDs, rates = Rates}) ->
|
State = #state{metric_ids = MIDs, rates = Rates}) ->
|
||||||
RatePerId = maps:from_list([{M, #rate{}} || M <- RateMetrics]),
|
case RateMetrics -- Metrics of
|
||||||
Rate1= case Rates of
|
[] ->
|
||||||
undefined -> #{Id => RatePerId};
|
RatePerId = maps:from_list([{M, #rate{}} || M <- RateMetrics]),
|
||||||
_ -> Rates#{Id => RatePerId}
|
Rate1 = case Rates of
|
||||||
end,
|
undefined -> #{Id => RatePerId};
|
||||||
{reply, create_counters(get_self_name(), Id, Metrics),
|
_ -> Rates#{Id => RatePerId}
|
||||||
State#state{metric_ids = sets:add_element(Id, MIDs),
|
end,
|
||||||
rates = Rate1}};
|
{reply, create_counters(get_self_name(), Id, Metrics),
|
||||||
|
State#state{metric_ids = sets:add_element(Id, MIDs),
|
||||||
|
rates = Rate1}};
|
||||||
|
_ ->
|
||||||
|
{reply, {error, metrics_to}, State}
|
||||||
|
end.
|
||||||
|
|
||||||
handle_call({delete_metrics, Id}, _From,
|
handle_call({delete_metrics, Id}, _From,
|
||||||
State = #state{metric_ids = MIDs, rates = Rates}) ->
|
State = #state{metric_ids = MIDs, rates = Rates}) ->
|
||||||
|
|
|
@ -346,9 +346,9 @@ filter_instances(Filter) ->
|
||||||
[Id || #{id := Id, mod := Mod} <- list_instances_verbose(), Filter(Id, Mod)].
|
[Id || #{id := Id, mod := Mod} <- list_instances_verbose(), Filter(Id, Mod)].
|
||||||
|
|
||||||
inc_metrics_funcs(InstId) ->
|
inc_metrics_funcs(InstId) ->
|
||||||
OnFailed = [{fun emqx_plugin_libs_metrics:inc_failed/2, [resource_metrics, InstId]}],
|
OnFailed = [{fun emqx_plugin_libs_metrics:inc/2, [resource_metrics, InstId, failed]}],
|
||||||
OnSucc = [ {fun emqx_plugin_libs_metrics:inc_matched/2, [resource_metrics, InstId]}
|
OnSucc = [ {fun emqx_plugin_libs_metrics:inc/2, [resource_metrics, InstId, matched]}
|
||||||
, {fun emqx_plugin_libs_metrics:inc_success/2, [resource_metrics, InstId]}
|
, {fun emqx_plugin_libs_metrics:inc/2, [resource_metrics, success]}
|
||||||
],
|
],
|
||||||
{OnSucc, OnFailed}.
|
{OnSucc, OnFailed}.
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,8 @@ do_create(InstId, ResourceType, Config, Opts) ->
|
||||||
{error, not_found} ->
|
{error, not_found} ->
|
||||||
case do_start(InstId, ResourceType, Config, Opts) of
|
case do_start(InstId, ResourceType, Config, Opts) of
|
||||||
ok ->
|
ok ->
|
||||||
ok = emqx_plugin_libs_metrics:create_metrics(resource_metrics, InstId),
|
ok = emqx_plugin_libs_metrics:create_metrics(resource_metrics, InstId,
|
||||||
|
[matched, success, failed], [matched]),
|
||||||
{ok, force_lookup(InstId)};
|
{ok, force_lookup(InstId)};
|
||||||
Error ->
|
Error ->
|
||||||
Error
|
Error
|
||||||
|
|
Loading…
Reference in New Issue