Browse Source

Merge pull request #11584 from zhongwencool/telemetry-error-on-windows

fix: telemetry report error on windows
zhongwencool 2 năm trước cách đây
mục cha
commit
9521e11d39

+ 1 - 1
apps/emqx_telemetry/src/emqx_telemetry.app.src

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

+ 1 - 2
apps/emqx_telemetry/src/emqx_telemetry.erl

@@ -416,10 +416,9 @@ read_raw_build_info() ->
     file:read_file(Filename).
 
 vm_specs() ->
-    SysMemData = memsup:get_system_memory_data(),
     [
         {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()}.

+ 6 - 0
apps/emqx_telemetry/test/emqx_telemetry_SUITE.erl

@@ -70,6 +70,9 @@ end_per_suite(_Config) ->
     meck:unload(emqx_authz),
     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) ->
     DataDir = ?config(data_dir, Config),
     mock_httpc(),
@@ -198,6 +201,9 @@ init_per_testcase(_Testcase, Config) ->
     mock_httpc(),
     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) ->
     meck:unload([httpc, emqx_telemetry]),
     application:stop(emqx_gateway),

+ 1 - 1
apps/emqx_telemetry/test/emqx_telemetry_api_SUITE.erl

@@ -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_telemetry_schema, ?BASE_CONF),
     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
     ),
 

+ 1 - 0
changes/ce/fix-11584.en.md

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