fix: change timeout of gen_server:calls for emqx_telemetry to infinity

This commit is contained in:
Shawn 2023-03-03 13:34:28 +08:00
parent 230f2ee542
commit 8ecdc72920
4 changed files with 18 additions and 15 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_telemetry,
[{description, "EMQ X Telemetry"},
{vsn, "4.3.4"}, % strict semver, bump manually!
{vsn, "4.3.5"}, % strict semver, bump manually!
{modules, []},
{registered, [emqx_telemetry_sup]},
{applications, [kernel,stdlib]},

View File

@ -1,11 +1,9 @@
%% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!!
{VSN,
[{"4.3.3",[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.[0-2]">>,
[{<<"4\\.3\\.[0-4]">>,
[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
{<<".*">>,[]}],
[{"4.3.3",[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.[0-2]">>,
[{<<"4\\.3\\.[0-4]">>,
[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
{<<".*">>,[]}]}.

View File

@ -75,7 +75,7 @@
enabled :: undefined | boolean(),
url :: string(),
url :: undefined | string(),
report_interval :: undefined | non_neg_integer(),
@ -90,6 +90,8 @@
-define(TELEMETRY, emqx_telemetry).
-define(HTTP_TIMEOUT, 10).
%%--------------------------------------------------------------------
%% Mnesia bootstrap
%%--------------------------------------------------------------------
@ -115,19 +117,19 @@ stop() ->
gen_server:stop(?MODULE).
enable() ->
gen_server:call(?MODULE, enable).
gen_server:call(?MODULE, enable, infinity).
disable() ->
gen_server:call(?MODULE, disable).
gen_server:call(?MODULE, disable, infinity).
is_enabled() ->
gen_server:call(?MODULE, is_enabled).
gen_server:call(?MODULE, is_enabled, infinity).
get_uuid() ->
gen_server:call(?MODULE, get_uuid).
gen_server:call(?MODULE, get_uuid, infinity).
get_telemetry() ->
gen_server:call(?MODULE, get_telemetry).
gen_server:call(?MODULE, get_telemetry, infinity).
%%--------------------------------------------------------------------
%% gen_server callbacks
@ -353,15 +355,18 @@ report_telemetry(State = #state{url = URL}) ->
Data = get_telemetry(State),
case emqx_json:safe_encode(Data) of
{ok, Bin} ->
httpc_request(post, URL, [], Bin),
_ = httpc_request(post, URL, [], Bin),
?tp(debug, telemetry_data_reported, #{});
{error, Reason} ->
%% debug? why?
?tp(debug, telemetry_data_encode_error, #{data => Data, reason => Reason})
end.
%% we might set url = undefined in testcase
httpc_request(_, undefined, _, _) ->
ignore;
httpc_request(Method, URL, Headers, Body) ->
HTTPOptions = [{timeout, timer:seconds(10)}, {ssl, [{verify, verify_none}]}],
HTTPOptions = [{timeout, timer:seconds(?HTTP_TIMEOUT)}, {ssl, [{verify, verify_none}]}],
Options = [],
httpc:request(Method, {URL, Headers, "application/json", Body}, HTTPOptions, Options).

View File

@ -42,7 +42,7 @@ t_uuid(_) ->
{ok, UUID2} = emqx_telemetry:get_uuid(),
emqx_telemetry:stop(),
emqx_telemetry:start_link([{enabled, true},
{url, "https://telemetry.emqx.io/api/telemetry"},
{url, undefined},
{report_interval, 7 * 24 * 60 * 60}]),
{ok, UUID3} = emqx_telemetry:get_uuid(),
?assertEqual(UUID2, UUID3).
@ -80,7 +80,7 @@ t_send_after_enable(_) ->
ok = snabbkaffe:start_trace(),
try
ok = emqx_telemetry:enable(),
?assertMatch({ok, _}, ?block_until(#{?snk_kind := telemetry_data_reported}, 2000, 100))
?assertMatch({ok, _}, ?block_until(#{?snk_kind := telemetry_data_reported}, 15000, 100))
after
ok = snabbkaffe:stop()
end.