Explorar o código

test: add prometheus api test

zhongwencool %!s(int64=2) %!d(string=hai) anos
pai
achega
188a81913e

+ 1 - 1
apps/emqx_prometheus/src/emqx_prometheus_config.erl

@@ -52,7 +52,7 @@ post_config_update(_ConfPath, _Req, _NewConf, _OldConf, _AppEnvs) ->
     ok.
 
 update_prometheus(AppEnvs) ->
-    {ok, PrevCollectors} = application:get_env(prometheus, collectors),
+    PrevCollectors = prometheus_registry:collectors(default),
     CurCollectors = proplists:get_value(collectors, proplists:get_value(prometheus, AppEnvs)),
     lists:foreach(
         fun prometheus_registry:deregister_collector/1,

+ 4 - 4
apps/emqx_prometheus/test/emqx_prometheus_SUITE.erl

@@ -30,12 +30,12 @@
     "  headers = { Authorization = \"some-authz-tokens\"}\n"
     "  job_name = \"${name}~${host}\"\n"
     "  enable = true\n"
-    "  vm_dist_collector = enabled\n"
-    "  mnesia_collector = enabled\n"
+    "  vm_dist_collector = disabled\n"
+    "  mnesia_collector = disabled\n"
     "  vm_statistics_collector = disabled\n"
     "  vm_system_info_collector = disabled\n"
-    "  vm_memory_collector = enabled\n"
-    "  vm_msacc_collector = enabled\n"
+    "  vm_memory_collector = disabled\n"
+    "  vm_msacc_collector = disabled\n"
     "}\n"
 >>).
 

+ 20 - 3
apps/emqx_prometheus/test/emqx_prometheus_api_SUITE.erl

@@ -81,13 +81,30 @@ t_prometheus_api(_) ->
     ),
     #{<<"enable">> := Enable} = Conf,
     ?assertEqual(Enable, undefined =/= erlang:whereis(emqx_prometheus)),
-    NewConf = Conf#{<<"interval">> => <<"2s">>, <<"vm_statistics_collector">> => <<"disabled">>},
+    NewConf = Conf#{<<"interval">> => <<"2s">>, <<"vm_statistics_collector">> => <<"enabled">>},
     {ok, Response2} = emqx_mgmt_api_test_util:request_api(put, Path, "", Auth, NewConf),
 
     Conf2 = emqx_utils_json:decode(Response2, [return_maps]),
     ?assertMatch(NewConf, Conf2),
-    ?assertEqual({ok, []}, application:get_env(prometheus, vm_statistics_collector_metrics)),
-    ?assertEqual({ok, all}, application:get_env(prometheus, vm_memory_collector_metrics)),
+
+    EnvCollectors = application:get_env(prometheus, collectors, []),
+    PromCollectors = prometheus_registry:collectors(default),
+    ?assertEqual(lists:sort(EnvCollectors), lists:sort(PromCollectors)),
+    ?assert(lists:member(prometheus_vm_statistics_collector, EnvCollectors), EnvCollectors),
+
+    lists:foreach(
+        fun({C, Enabled}) ->
+            ?assertEqual(Enabled, lists:member(C, EnvCollectors), EnvCollectors)
+        end,
+        [
+            {prometheus_vm_dist_collector, false},
+            {prometheus_vm_system_info_collector, false},
+            {prometheus_vm_memory_collector, false},
+            {prometheus_mnesia_collector, false},
+            {prometheus_vm_msacc_collector, false},
+            {prometheus_vm_statistics_collector, true}
+        ]
+    ),
 
     NewConf1 = Conf#{<<"enable">> => (not Enable)},
     {ok, _Response3} = emqx_mgmt_api_test_util:request_api(put, Path, "", Auth, NewConf1),