test: add prometheus api test

This commit is contained in:
zhongwencool 2023-08-23 10:39:00 +08:00
parent ae10415fc3
commit 188a81913e
3 changed files with 25 additions and 8 deletions

View File

@ -52,7 +52,7 @@ post_config_update(_ConfPath, _Req, _NewConf, _OldConf, _AppEnvs) ->
ok. ok.
update_prometheus(AppEnvs) -> 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)), CurCollectors = proplists:get_value(collectors, proplists:get_value(prometheus, AppEnvs)),
lists:foreach( lists:foreach(
fun prometheus_registry:deregister_collector/1, fun prometheus_registry:deregister_collector/1,

View File

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

View File

@ -81,13 +81,30 @@ t_prometheus_api(_) ->
), ),
#{<<"enable">> := Enable} = Conf, #{<<"enable">> := Enable} = Conf,
?assertEqual(Enable, undefined =/= erlang:whereis(emqx_prometheus)), ?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), {ok, Response2} = emqx_mgmt_api_test_util:request_api(put, Path, "", Auth, NewConf),
Conf2 = emqx_utils_json:decode(Response2, [return_maps]), Conf2 = emqx_utils_json:decode(Response2, [return_maps]),
?assertMatch(NewConf, Conf2), ?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)}, NewConf1 = Conf#{<<"enable">> => (not Enable)},
{ok, _Response3} = emqx_mgmt_api_test_util:request_api(put, Path, "", Auth, NewConf1), {ok, _Response3} = emqx_mgmt_api_test_util:request_api(put, Path, "", Auth, NewConf1),