diff --git a/lib-ce/emqx_modules/src/emqx_mod_trace_api.erl b/lib-ce/emqx_modules/src/emqx_mod_trace_api.erl index 0b2963af6..5cc3f07a8 100644 --- a/lib-ce/emqx_modules/src/emqx_mod_trace_api.erl +++ b/lib-ce/emqx_modules/src/emqx_mod_trace_api.erl @@ -70,20 +70,36 @@ func => stream_log_file, descr => "download trace's log"}). +-define(NOT_STARTED, {error, module_not_loaded}). list_trace(Path, Params) -> - return(emqx_trace_api:list_trace(Path, Params)). + case is_started() of + true -> return(emqx_trace_api:list_trace(Path, Params)); + false -> return(?NOT_STARTED) + end. create_trace(Path, Params) -> - return(emqx_trace_api:create_trace(Path, Params)). + case is_started() of + true -> return(emqx_trace_api:create_trace(Path, Params)); + false -> return(?NOT_STARTED) + end. delete_trace(Path, Params) -> - return(emqx_trace_api:delete_trace(Path, Params)). + case is_started() of + true -> return(emqx_trace_api:delete_trace(Path, Params)); + false -> return(?NOT_STARTED) + end. clear_traces(Path, Params) -> - return(emqx_trace_api:clear_traces(Path, Params)). + case is_started() of + true -> return(emqx_trace_api:clear_traces(Path, Params)); + false -> return(?NOT_STARTED) + end. disable_trace(#{name := Name}, Params) -> - return(emqx_trace_api:update_trace(#{name => Name, operation => disable}, Params)). + case is_started() of + true -> return(emqx_trace_api:update_trace(#{name => Name, operation => disable}, Params)); + false -> return(?NOT_STARTED) + end. download_zip_log(Path, Params) -> case emqx_trace_api:download_zip_log(Path, Params) of @@ -96,3 +112,6 @@ stream_log_file(Path, Params) -> {ok, File} -> return({ok, File}); {error, Reason} -> return({error, 'NOT_FOUND', Reason}) end. + +is_started() -> + undefined =/= erlang:whereis(emqx_trace). diff --git a/lib-ce/emqx_modules/src/emqx_modules.appup.src b/lib-ce/emqx_modules/src/emqx_modules.appup.src index 99cb389c8..45a9194ad 100644 --- a/lib-ce/emqx_modules/src/emqx_modules.appup.src +++ b/lib-ce/emqx_modules/src/emqx_modules.appup.src @@ -2,12 +2,14 @@ {VSN, [{"4.4.0", [{load_module, emqx_mod_presence, brutal_purge, soft_purge, []}, - {load_module, emqx_mod_sup, brutal_purge, soft_purge, []}]}, + {load_module, emqx_mod_sup, brutal_purge, soft_purge, []}, + {load_module, emqx_mod_trace_api, brutal_purge, soft_purge, []}]}, {<<".*">>, []} ], [{"4.4.0", [{load_module, emqx_mod_presence, brutal_purge, soft_purge, []}, - {load_module, emqx_mod_sup, brutal_purge, soft_purge, []}]}, + {load_module, emqx_mod_sup, brutal_purge, soft_purge, []}, + {load_module, emqx_mod_trace_api, brutal_purge, soft_purge, []}]}, {<<".*">>, []} ] }.