diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs_metrics.erl b/apps/emqx_plugin_libs/src/emqx_plugin_libs_metrics.erl index faddb6872..824890efc 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs_metrics.erl +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs_metrics.erl @@ -59,6 +59,16 @@ -define(SAMPLING, 1). -endif. +-export_type([metrics/0]). + +-type metrics() :: #{ + matched => integer(), + success => integer(), + failed => integer(), + speed => float(), + speed_max => float(), + speed_last5m => float() +}. -type handler_name() :: atom(). -type metric_id() :: binary(). @@ -116,7 +126,7 @@ get(Name, Id, Metric) -> get_speed(Name, Id) -> gen_server:call(Name, {get_speed, Id}). --spec(get_metrics(handler_name(), metric_id()) -> map()). +-spec(get_metrics(handler_name(), metric_id()) -> metrics()). get_metrics(Name, Id) -> #{max := Max, current := Current, last5m := Last5M} = get_speed(Name, Id), #{matched => get_matched(Name, Id), diff --git a/apps/emqx_resource/include/emqx_resource.hrl b/apps/emqx_resource/include/emqx_resource.hrl index 2c3b440c8..e5eb1785f 100644 --- a/apps/emqx_resource/include/emqx_resource.hrl +++ b/apps/emqx_resource/include/emqx_resource.hrl @@ -21,11 +21,12 @@ -type resource_spec() :: map(). -type resource_state() :: term(). -type resource_data() :: #{ - id => instance_id(), - mod => module(), - config => resource_config(), - state => resource_state(), - status => started | stopped + id := instance_id(), + mod := module(), + config := resource_config(), + state := resource_state(), + status := started | stopped, + metrics := emqx_plugin_libs_metrics:metrics() }. -type resource_group() :: binary(). -type after_query() :: {[OnSuccess :: after_query_fun()], [OnFailed :: after_query_fun()]} |