Merge pull request #10062 from terry-xiaoyu/emqx-telementry-timeout
fix: change timeout of gen_server:calls for emqx_telemetry to infinity
This commit is contained in:
commit
9eb908f572
|
@ -1,6 +1,6 @@
|
||||||
{application, emqx_telemetry,
|
{application, emqx_telemetry,
|
||||||
[{description, "EMQ X Telemetry"},
|
[{description, "EMQ X Telemetry"},
|
||||||
{vsn, "4.3.4"}, % strict semver, bump manually!
|
{vsn, "4.3.5"}, % strict semver, bump manually!
|
||||||
{modules, []},
|
{modules, []},
|
||||||
{registered, [emqx_telemetry_sup]},
|
{registered, [emqx_telemetry_sup]},
|
||||||
{applications, [kernel,stdlib]},
|
{applications, [kernel,stdlib]},
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
%% -*- mode: erlang -*-
|
%% -*- mode: erlang -*-
|
||||||
%% Unless you know what you are doing, DO NOT edit manually!!
|
%% Unless you know what you are doing, DO NOT edit manually!!
|
||||||
{VSN,
|
{VSN,
|
||||||
[{"4.3.3",[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
|
[{<<"4\\.3\\.[0-4]">>,
|
||||||
{<<"4\\.3\\.[0-2]">>,
|
|
||||||
[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
|
[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
|
||||||
{<<".*">>,[]}],
|
{<<".*">>,[]}],
|
||||||
[{"4.3.3",[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
|
[{<<"4\\.3\\.[0-4]">>,
|
||||||
{<<"4\\.3\\.[0-2]">>,
|
|
||||||
[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
|
[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]},
|
||||||
{<<".*">>,[]}]}.
|
{<<".*">>,[]}]}.
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
|
|
||||||
enabled :: undefined | boolean(),
|
enabled :: undefined | boolean(),
|
||||||
|
|
||||||
url :: string(),
|
url :: undefined | string(),
|
||||||
|
|
||||||
report_interval :: undefined | non_neg_integer(),
|
report_interval :: undefined | non_neg_integer(),
|
||||||
|
|
||||||
|
@ -90,6 +90,8 @@
|
||||||
|
|
||||||
-define(TELEMETRY, emqx_telemetry).
|
-define(TELEMETRY, emqx_telemetry).
|
||||||
|
|
||||||
|
-define(HTTP_TIMEOUT, 10).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Mnesia bootstrap
|
%% Mnesia bootstrap
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -115,19 +117,19 @@ stop() ->
|
||||||
gen_server:stop(?MODULE).
|
gen_server:stop(?MODULE).
|
||||||
|
|
||||||
enable() ->
|
enable() ->
|
||||||
gen_server:call(?MODULE, enable).
|
gen_server:call(?MODULE, enable, infinity).
|
||||||
|
|
||||||
disable() ->
|
disable() ->
|
||||||
gen_server:call(?MODULE, disable).
|
gen_server:call(?MODULE, disable, infinity).
|
||||||
|
|
||||||
is_enabled() ->
|
is_enabled() ->
|
||||||
gen_server:call(?MODULE, is_enabled).
|
gen_server:call(?MODULE, is_enabled, infinity).
|
||||||
|
|
||||||
get_uuid() ->
|
get_uuid() ->
|
||||||
gen_server:call(?MODULE, get_uuid).
|
gen_server:call(?MODULE, get_uuid, infinity).
|
||||||
|
|
||||||
get_telemetry() ->
|
get_telemetry() ->
|
||||||
gen_server:call(?MODULE, get_telemetry).
|
gen_server:call(?MODULE, get_telemetry, infinity).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% gen_server callbacks
|
%% gen_server callbacks
|
||||||
|
@ -353,15 +355,18 @@ report_telemetry(State = #state{url = URL}) ->
|
||||||
Data = get_telemetry(State),
|
Data = get_telemetry(State),
|
||||||
case emqx_json:safe_encode(Data) of
|
case emqx_json:safe_encode(Data) of
|
||||||
{ok, Bin} ->
|
{ok, Bin} ->
|
||||||
httpc_request(post, URL, [], Bin),
|
_ = httpc_request(post, URL, [], Bin),
|
||||||
?tp(debug, telemetry_data_reported, #{});
|
?tp(debug, telemetry_data_reported, #{});
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
%% debug? why?
|
%% debug? why?
|
||||||
?tp(debug, telemetry_data_encode_error, #{data => Data, reason => Reason})
|
?tp(debug, telemetry_data_encode_error, #{data => Data, reason => Reason})
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
%% we might set url = undefined in testcase
|
||||||
|
httpc_request(_, undefined, _, _) ->
|
||||||
|
ignore;
|
||||||
httpc_request(Method, URL, Headers, Body) ->
|
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 = [],
|
Options = [],
|
||||||
httpc:request(Method, {URL, Headers, "application/json", Body}, HTTPOptions, Options).
|
httpc:request(Method, {URL, Headers, "application/json", Body}, HTTPOptions, Options).
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ t_uuid(_) ->
|
||||||
{ok, UUID2} = emqx_telemetry:get_uuid(),
|
{ok, UUID2} = emqx_telemetry:get_uuid(),
|
||||||
emqx_telemetry:stop(),
|
emqx_telemetry:stop(),
|
||||||
emqx_telemetry:start_link([{enabled, true},
|
emqx_telemetry:start_link([{enabled, true},
|
||||||
{url, "https://telemetry.emqx.io/api/telemetry"},
|
{url, undefined},
|
||||||
{report_interval, 7 * 24 * 60 * 60}]),
|
{report_interval, 7 * 24 * 60 * 60}]),
|
||||||
{ok, UUID3} = emqx_telemetry:get_uuid(),
|
{ok, UUID3} = emqx_telemetry:get_uuid(),
|
||||||
?assertEqual(UUID2, UUID3).
|
?assertEqual(UUID2, UUID3).
|
||||||
|
@ -80,7 +80,7 @@ t_send_after_enable(_) ->
|
||||||
ok = snabbkaffe:start_trace(),
|
ok = snabbkaffe:start_trace(),
|
||||||
try
|
try
|
||||||
ok = emqx_telemetry:enable(),
|
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
|
after
|
||||||
ok = snabbkaffe:stop()
|
ok = snabbkaffe:stop()
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Reference in New Issue