Add ensure/2 funcs to avoid needless logs (#3483)
This commit is contained in:
parent
f456f40c59
commit
ea2a424ce2
|
@ -30,6 +30,8 @@
|
|||
|
||||
-export([ new/1
|
||||
, new/2
|
||||
, ensure/1
|
||||
, ensure/2
|
||||
, all/0
|
||||
]).
|
||||
|
||||
|
@ -204,6 +206,17 @@ new(gauge, Name) ->
|
|||
new(counter, Name) ->
|
||||
create(counter, Name).
|
||||
|
||||
-spec(ensure(metric_name()) -> ok).
|
||||
ensure(Name) ->
|
||||
ensure(counter, Name).
|
||||
|
||||
-spec(ensure(gauge|counter, metric_name()) -> ok).
|
||||
ensure(Type, Name) when Type =:= gauge; Type =:= counter ->
|
||||
case ets:lookup(?TAB, Name) of
|
||||
[] -> create(Type, Name);
|
||||
_ -> ok
|
||||
end.
|
||||
|
||||
%% @private
|
||||
create(Type, Name) ->
|
||||
case gen_server:call(?SERVER, {create, Type, Name}) of
|
||||
|
|
|
@ -50,7 +50,7 @@ name(16#11) -> no_subscription_existed;
|
|||
name(16#18) -> continue_authentication;
|
||||
name(16#19) -> re_authenticate;
|
||||
name(16#80) -> unspecified_error;
|
||||
name(16#81) -> malformed_Packet;
|
||||
name(16#81) -> malformed_packet;
|
||||
name(16#82) -> protocol_error;
|
||||
name(16#83) -> implementation_specific_error;
|
||||
name(16#84) -> unsupported_protocol_version;
|
||||
|
|
|
@ -91,7 +91,9 @@
|
|||
|
||||
-type(ver() :: ?MQTT_PROTO_V3
|
||||
| ?MQTT_PROTO_V4
|
||||
| ?MQTT_PROTO_V5).
|
||||
| ?MQTT_PROTO_V5
|
||||
| non_neg_integer()).
|
||||
|
||||
-type(qos() :: ?QOS_0 | ?QOS_1 | ?QOS_2).
|
||||
-type(qos_name() :: qos0 | at_most_once |
|
||||
qos1 | at_least_once |
|
||||
|
@ -107,7 +109,7 @@
|
|||
-type(conninfo() :: #{socktype := socktype(),
|
||||
sockname := peername(),
|
||||
peername := peername(),
|
||||
peercert := esockd_peercert:peercert(),
|
||||
peercert := nossl | undefined | esockd_peercert:peercert(),
|
||||
conn_mod := module(),
|
||||
proto_name := binary(),
|
||||
proto_ver := ver(),
|
||||
|
@ -116,7 +118,7 @@
|
|||
username := username(),
|
||||
conn_props := properties(),
|
||||
connected := boolean(),
|
||||
connected_at := erlang:timestamp(),
|
||||
connected_at := non_neg_integer(),
|
||||
keepalive := 0..16#FFFF,
|
||||
receive_maximum := non_neg_integer(),
|
||||
expiry_interval := non_neg_integer(),
|
||||
|
|
|
@ -42,6 +42,24 @@ t_new(_) ->
|
|||
1 = emqx_metrics:val('metrics.test.total')
|
||||
end).
|
||||
|
||||
t_ensure(_) ->
|
||||
with_metrics_server(
|
||||
fun() ->
|
||||
ok = emqx_metrics:ensure('metrics.test'),
|
||||
ok = emqx_metrics:ensure('metrics.test'),
|
||||
0 = emqx_metrics:val('metrics.test'),
|
||||
ok = emqx_metrics:inc('metrics.test'),
|
||||
1 = emqx_metrics:val('metrics.test'),
|
||||
ok = emqx_metrics:ensure(counter, 'metrics.test.cnt'),
|
||||
0 = emqx_metrics:val('metrics.test.cnt'),
|
||||
ok = emqx_metrics:inc('metrics.test.cnt'),
|
||||
1 = emqx_metrics:val('metrics.test.cnt'),
|
||||
ok = emqx_metrics:ensure(gauge, 'metrics.test.total'),
|
||||
0 = emqx_metrics:val('metrics.test.total'),
|
||||
ok = emqx_metrics:inc('metrics.test.total'),
|
||||
1 = emqx_metrics:val('metrics.test.total')
|
||||
end).
|
||||
|
||||
t_all(_) ->
|
||||
with_metrics_server(
|
||||
fun() ->
|
||||
|
|
Loading…
Reference in New Issue