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} | _] ->
|
||||
State#state{enabled = Enabled, uuid = UUID}
|
||||
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}) ->
|
||||
mnesia:dirty_write(?TELEMETRY, #telemetry{id = ?UNIQUE_ID,
|
||||
|
@ -217,6 +222,14 @@ code_change(_OldVsn, State, _Extra) ->
|
|||
%% 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}) ->
|
||||
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(),
|
||||
?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(_) ->
|
||||
{ok, TelemetryData} = emqx_telemetry:get_telemetry(),
|
||||
OTPVersion = bin(erlang:system_info(otp_release)),
|
||||
|
|
Loading…
Reference in New Issue