fix(prometheus): Don't add DS metrics when feature is disabled

This commit is contained in:
ieQu1 2024-04-01 23:41:29 +02:00
parent b379f331de
commit f14c253dea
No known key found for this signature in database
GPG Key ID: 488654DF3FED6FDE
2 changed files with 21 additions and 8 deletions

View File

@ -212,14 +212,30 @@ collect_mf(?PROMETHEUS_DEFAULT_REGISTRY, Callback) ->
ok = add_collect_family(Callback, cert_metric_meta(), ?MG(cert_data, RawData)),
ok = add_collect_family(Callback, mria_metric_meta(), ?MG(mria_data, RawData)),
ok = add_collect_family(
Callback, emqx_ds_builtin_metrics:prometheus_meta(), ?MG(ds_data, RawData)
),
ok = maybe_add_ds_collect_family(Callback, RawData),
ok = maybe_license_add_collect_family(Callback, RawData),
ok;
collect_mf(_Registry, _Callback) ->
ok.
maybe_add_ds_collect_family(Callback, RawData) ->
case emqx_persistent_message:is_persistence_enabled() of
true ->
add_collect_family(
Callback, emqx_ds_builtin_metrics:prometheus_meta(), ?MG(ds_data, RawData)
);
false ->
ok
end.
maybe_collect_ds_data(Mode) ->
case emqx_persistent_message:is_persistence_enabled() of
true ->
#{ds_data => emqx_ds_builtin_metrics:prometheus_collect(Mode)};
false ->
#{}
end.
%% @private
collect(<<"json">>) ->
RawData = emqx_prometheus_cluster:raw_data(?MODULE, ?GET_PROM_DATA_MODE()),
@ -254,7 +270,7 @@ add_collect_family(Name, Data, Callback, Type) ->
%% behaviour
fetch_from_local_node(Mode) ->
{node(), #{
{node(), (maybe_collect_ds_data(Mode))#{
stats_data => stats_data(Mode),
vm_data => vm_data(Mode),
cluster_data => cluster_data(Mode),
@ -267,7 +283,6 @@ fetch_from_local_node(Mode) ->
emqx_olp_data => emqx_metric_data(olp_metric_meta(), Mode),
emqx_acl_data => emqx_metric_data(acl_metric_meta(), Mode),
emqx_authn_data => emqx_metric_data(authn_metric_meta(), Mode),
ds_data => emqx_ds_builtin_metrics:prometheus_collect(Mode),
mria_data => mria_data(Mode)
}}.

View File

@ -89,9 +89,7 @@ init_per_group(new_config, Config) ->
Apps = emqx_cth_suite:start(
[
%% coverage olp metrics
{emqx,
"overload_protection.enable = true\n"
"session_persistence.enable = true"},
{emqx, "overload_protection.enable = true"},
{emqx_license, "license.key = default"},
{emqx_prometheus, #{config => config(default)}}
],