fix: telemetry report error on windows

This commit is contained in:
zhongwencool 2023-09-11 14:38:04 +08:00
parent 19abb7c99e
commit 887a74a6cb
5 changed files with 10 additions and 4 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_telemetry, [ {application, emqx_telemetry, [
{description, "Report telemetry data for EMQX Opensource edition"}, {description, "Report telemetry data for EMQX Opensource edition"},
{vsn, "0.1.1"}, {vsn, "0.1.2"},
{registered, [emqx_telemetry_sup, emqx_telemetry]}, {registered, [emqx_telemetry_sup, emqx_telemetry]},
{mod, {emqx_telemetry_app, []}}, {mod, {emqx_telemetry_app, []}},
{applications, [ {applications, [

View File

@ -416,10 +416,9 @@ read_raw_build_info() ->
file:read_file(Filename). file:read_file(Filename).
vm_specs() -> vm_specs() ->
SysMemData = memsup:get_system_memory_data(),
[ [
{num_cpus, erlang:system_info(logical_processors)}, {num_cpus, erlang:system_info(logical_processors)},
{total_memory, proplists:get_value(total_memory, SysMemData)} {total_memory, emqx_mgmt:vm_stats('total.memory')}
]. ].
-spec mqtt_runtime_insights(state()) -> {map(), state()}. -spec mqtt_runtime_insights(state()) -> {map(), state()}.

View File

@ -70,6 +70,9 @@ end_per_suite(_Config) ->
meck:unload(emqx_authz), meck:unload(emqx_authz),
ok. ok.
init_per_testcase(t_get_telemetry_without_memsup, Config) ->
ok = application:stop(os_mon),
init_per_testcase(t_get_telemetry, Config);
init_per_testcase(t_get_telemetry, Config) -> init_per_testcase(t_get_telemetry, Config) ->
DataDir = ?config(data_dir, Config), DataDir = ?config(data_dir, Config),
mock_httpc(), mock_httpc(),
@ -198,6 +201,9 @@ init_per_testcase(_Testcase, Config) ->
mock_httpc(), mock_httpc(),
Config. Config.
end_per_testcase(t_get_telemetry_without_memsup, Config) ->
application:start(os_mon),
end_per_testcase(t_get_telemetry, Config);
end_per_testcase(t_get_telemetry, _Config) -> end_per_testcase(t_get_telemetry, _Config) ->
meck:unload([httpc, emqx_telemetry]), meck:unload([httpc, emqx_telemetry]),
application:stop(emqx_gateway), application:stop(emqx_gateway),

View File

@ -32,7 +32,7 @@ init_per_suite(Config) ->
ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF), ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF),
ok = emqx_common_test_helpers:load_config(emqx_telemetry_schema, ?BASE_CONF), ok = emqx_common_test_helpers:load_config(emqx_telemetry_schema, ?BASE_CONF),
ok = emqx_mgmt_api_test_util:init_suite( ok = emqx_mgmt_api_test_util:init_suite(
[emqx_conf, emqx_authn, emqx_authz, emqx_telemetry], [emqx_conf, emqx_authn, emqx_management, emqx_authz, emqx_telemetry],
fun set_special_configs/1 fun set_special_configs/1
), ),

View File

@ -0,0 +1 @@
Fixed telemetry reporting error on Windows when os_mon module is unavailable.