diff --git a/apps/emqx_modules/src/emqx_telemetry.erl b/apps/emqx_modules/src/emqx_telemetry.erl index 3aa7829e7..3da9a6d9d 100644 --- a/apps/emqx_modules/src/emqx_telemetry.erl +++ b/apps/emqx_modules/src/emqx_telemetry.erl @@ -256,7 +256,7 @@ uptime() -> nodes_uuid() -> Nodes = lists:delete(node(), mria_mnesia:running_nodes()), lists:foldl(fun(Node, Acc) -> - case emqx_modules_proto_v1:get_uuid(Node) of + case emqx_telemetry_proto_v1:get_uuid(Node) of {badrpc, _Reason} -> Acc; {ok, UUID} -> diff --git a/apps/emqx_modules/src/emqx_telemetry_api.erl b/apps/emqx_modules/src/emqx_telemetry_api.erl index 887de4305..bc5404099 100644 --- a/apps/emqx_modules/src/emqx_telemetry_api.erl +++ b/apps/emqx_modules/src/emqx_telemetry_api.erl @@ -153,15 +153,10 @@ enable_telemetry(Enable) -> enable_telemetry(Node, Enable) end, mria_mnesia:running_nodes()). -enable_telemetry(Node, Enable) when Node =:= node() -> - case Enable of - true -> - emqx_telemetry:enable(); - false -> - emqx_telemetry:disable() - end; -enable_telemetry(Node, Enable) -> - rpc_call(Node, ?MODULE, enable_telemetry, [Node, Enable]). +enable_telemetry(Node, true) -> + is_ok(emqx_telemetry_proto_v1:enable_telemetry(Node)); +enable_telemetry(Node, false) -> + is_ok(emqx_telemetry_proto_v1:disable_telemetry(Node)). get_telemetry_status() -> #{enabled => emqx_telemetry:get_status()}. @@ -170,8 +165,8 @@ get_telemetry_data() -> {ok, TelemetryData} = emqx_telemetry:get_telemetry(), TelemetryData. -rpc_call(Node, Module, Fun, Args) -> - case rpc:call(Node, Module, Fun, Args) of +is_ok(Result) -> + case Result of {badrpc, Reason} -> {error, Reason}; Result -> Result end. diff --git a/apps/emqx_modules/src/proto/emqx_modules_proto_v1.erl b/apps/emqx_modules/src/proto/emqx_telemetry_proto_v1.erl similarity index 76% rename from apps/emqx_modules/src/proto/emqx_modules_proto_v1.erl rename to apps/emqx_modules/src/proto/emqx_telemetry_proto_v1.erl index b9cfaa7f5..81aa07b65 100644 --- a/apps/emqx_modules/src/proto/emqx_modules_proto_v1.erl +++ b/apps/emqx_modules/src/proto/emqx_telemetry_proto_v1.erl @@ -14,13 +14,15 @@ %% limitations under the License. %%-------------------------------------------------------------------- --module(emqx_modules_proto_v1). +-module(emqx_telemetry_proto_v1). -behaviour(emqx_bpapi). -export([ introduced_in/0 , get_uuid/1 + , enable_telemetry/1 + , disable_telemetry/1 ]). -include_lib("emqx/include/bpapi.hrl"). @@ -31,3 +33,11 @@ introduced_in() -> -spec get_uuid(node()) -> {ok, binary()} | emqx_rpc:badrpc(). get_uuid(Node) -> rpc:call(Node, emqx_telemetry, get_uuid, []). + +-spec enable_telemetry(node()) -> _. +enable_telemetry(Node) -> + rpc:call(Node, emqx_telemetry, enable, []). + +-spec disable_telemetry(node()) -> _. +disable_telemetry(Node) -> + rpc:call(Node, emqx_telemetry, disable, []). diff --git a/apps/emqx_modules/test/emqx_telemetry_SUITE.erl b/apps/emqx_modules/test/emqx_telemetry_SUITE.erl index a32895fc1..43c262989 100644 --- a/apps/emqx_modules/test/emqx_telemetry_SUITE.erl +++ b/apps/emqx_modules/test/emqx_telemetry_SUITE.erl @@ -43,11 +43,13 @@ t_uuid(_) -> {ok, UUID2} = emqx_telemetry:get_uuid(), emqx_telemetry:disable(), emqx_telemetry:enable(), + emqx_telemetry_proto_v1:disable_telemetry(node()), + emqx_telemetry_proto_v1:enable_telemetry(node()), {ok, UUID3} = emqx_telemetry:get_uuid(), - {ok, UUID4} = emqx_modules_proto_v1:get_uuid(node()), + {ok, UUID4} = emqx_telemetry_proto_v1:get_uuid(node()), ?assertEqual(UUID2, UUID3), ?assertEqual(UUID3, UUID4), - ?assertMatch({badrpc, nodedown}, emqx_modules_proto_v1:get_uuid('fake@node')). + ?assertMatch({badrpc, nodedown}, emqx_telemetry_proto_v1:get_uuid('fake@node')). t_official_version(_) -> true = emqx_telemetry:official_version("0.0.0"),