From 188a81913ebd2319dfc90ebbb3403bddd5951b3c Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Wed, 23 Aug 2023 10:39:00 +0800 Subject: [PATCH] test: add prometheus api test --- .../src/emqx_prometheus_config.erl | 2 +- .../test/emqx_prometheus_SUITE.erl | 8 +++---- .../test/emqx_prometheus_api_SUITE.erl | 23 ++++++++++++++++--- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/apps/emqx_prometheus/src/emqx_prometheus_config.erl b/apps/emqx_prometheus/src/emqx_prometheus_config.erl index abd3427d3..00dad47f9 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus_config.erl +++ b/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, diff --git a/apps/emqx_prometheus/test/emqx_prometheus_SUITE.erl b/apps/emqx_prometheus/test/emqx_prometheus_SUITE.erl index 77d9902a2..3f9e743f3 100644 --- a/apps/emqx_prometheus/test/emqx_prometheus_SUITE.erl +++ b/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" >>). diff --git a/apps/emqx_prometheus/test/emqx_prometheus_api_SUITE.erl b/apps/emqx_prometheus/test/emqx_prometheus_api_SUITE.erl index e29d46720..c7d336554 100644 --- a/apps/emqx_prometheus/test/emqx_prometheus_api_SUITE.erl +++ b/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),