fix(telemtry): report only in official version
This commit is contained in:
parent
f879e8e09b
commit
353ceafbb6
|
@ -157,7 +157,12 @@ init([Opts]) ->
|
||||||
[#telemetry{uuid = UUID, enabled = Enabled} | _] ->
|
[#telemetry{uuid = UUID, enabled = Enabled} | _] ->
|
||||||
State#state{enabled = Enabled, uuid = UUID}
|
State#state{enabled = Enabled, uuid = UUID}
|
||||||
end,
|
end,
|
||||||
{ok, ensure_report_timer(NState), {continue, first_report}}.
|
case official_version(emqx_version()) of
|
||||||
|
true ->
|
||||||
|
{ok, ensure_report_timer(NState), {continue, first_report}};
|
||||||
|
false ->
|
||||||
|
{ok, NState#state{enabled = false}}
|
||||||
|
end.
|
||||||
|
|
||||||
handle_call(enable, _From, State = #state{uuid = UUID}) ->
|
handle_call(enable, _From, State = #state{uuid = UUID}) ->
|
||||||
mnesia:dirty_write(?TELEMETRY, #telemetry{id = ?UNIQUE_ID,
|
mnesia:dirty_write(?TELEMETRY, #telemetry{id = ?UNIQUE_ID,
|
||||||
|
@ -217,6 +222,14 @@ code_change(_OldVsn, State, _Extra) ->
|
||||||
%% Internal functions
|
%% Internal functions
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
official_version(Version) ->
|
||||||
|
case re:run(Version,
|
||||||
|
"^\\d+\\.\\d+(?:(-(?:alpha|beta|rc)\\.[1-9][0-9]*)|\\.\\d+)$",
|
||||||
|
[{capture, none}]) of
|
||||||
|
match -> true;
|
||||||
|
nomatch -> false
|
||||||
|
end.
|
||||||
|
|
||||||
ensure_report_timer(State = #state{report_interval = ReportInterval}) ->
|
ensure_report_timer(State = #state{report_interval = ReportInterval}) ->
|
||||||
State#state{timer = emqx_misc:start_timer(ReportInterval, time_to_report_telemetry_data)}.
|
State#state{timer = emqx_misc:start_timer(ReportInterval, time_to_report_telemetry_data)}.
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,20 @@ t_uuid(_) ->
|
||||||
{ok, UUID3} = emqx_telemetry:get_uuid(),
|
{ok, UUID3} = emqx_telemetry:get_uuid(),
|
||||||
?assertEqual(UUID2, UUID3).
|
?assertEqual(UUID2, UUID3).
|
||||||
|
|
||||||
|
t_official_version(_) ->
|
||||||
|
true = emqx_telemetry:official_version("0.0.0"),
|
||||||
|
true = emqx_telemetry:official_version("1.1.1"),
|
||||||
|
true = emqx_telemetry:official_version("10.10.10"),
|
||||||
|
false = emqx_telemetry:official_version("0.0.0.0"),
|
||||||
|
false = emqx_telemetry:official_version("1.1.a"),
|
||||||
|
true = emqx_telemetry:official_version("0.0-alpha.1"),
|
||||||
|
true = emqx_telemetry:official_version("1.1-alpha.1"),
|
||||||
|
true = emqx_telemetry:official_version("10.10-alpha.10"),
|
||||||
|
false = emqx_telemetry:official_version("1.1-alpha.0"),
|
||||||
|
true = emqx_telemetry:official_version("1.1-beta.1"),
|
||||||
|
true = emqx_telemetry:official_version("1.1-rc.1"),
|
||||||
|
false = emqx_telemetry:official_version("1.1-alpha.a").
|
||||||
|
|
||||||
t_get_telemetry(_) ->
|
t_get_telemetry(_) ->
|
||||||
{ok, TelemetryData} = emqx_telemetry:get_telemetry(),
|
{ok, TelemetryData} = emqx_telemetry:get_telemetry(),
|
||||||
OTPVersion = bin(erlang:system_info(otp_release)),
|
OTPVersion = bin(erlang:system_info(otp_release)),
|
||||||
|
|
Loading…
Reference in New Issue