From 4b23930fceaa27c3c9149ead6c3e71eedee502e3 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Mon, 15 Jan 2024 10:14:51 +0800 Subject: [PATCH] fix(prometheus): license expiry and schema_registry only for ee --- apps/emqx_prometheus/src/emqx_prometheus.erl | 29 +++++++++++++++---- .../src/emqx_prometheus_data_integration.erl | 19 ++++++++---- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/apps/emqx_prometheus/src/emqx_prometheus.erl b/apps/emqx_prometheus/src/emqx_prometheus.erl index 7c3283043..286243c0c 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus.erl +++ b/apps/emqx_prometheus/src/emqx_prometheus.erl @@ -175,11 +175,9 @@ collect_mf(?PROMETHEUS_DEFAULT_REGISTRY, Callback) -> Metrics = emqx_metrics:all(), Stats = emqx_stats:getstats(), VMData = emqx_vm_data(), - LicenseData = emqx_license_data(), ClusterData = emqx_cluster_data(), CertsData = emqx_certs_data(), %% TODO: license expiry epoch and cert expiry epoch should be cached - _ = [add_collect_family(Name, LicenseData, Callback, gauge) || Name <- emqx_license()], _ = [add_collect_family(Name, CertsData, Callback, gauge) || Name <- emqx_certs()], _ = [add_collect_family(Name, Stats, Callback, gauge) || Name <- emqx_stats:names()], _ = [add_collect_family(Name, VMData, Callback, gauge) || Name <- emqx_vm()], @@ -192,6 +190,7 @@ collect_mf(?PROMETHEUS_DEFAULT_REGISTRY, Callback) -> _ = [add_collect_family(Name, Metrics, Callback, counter) || Name <- emqx_metrics_olp()], _ = [add_collect_family(Name, Metrics, Callback, counter) || Name <- emqx_metrics_acl()], _ = [add_collect_family(Name, Metrics, Callback, counter) || Name <- emqx_metrics_authn()], + ok = maybe_collect_family_license(Callback), ok; collect_mf(_Registry, _Callback) -> ok. @@ -201,13 +200,11 @@ collect(<<"json">>) -> Metrics = emqx_metrics:all(), Stats = emqx_stats:getstats(), VMData = emqx_vm_data(), - LicenseData = emqx_license_data(), %% TODO: FIXME! %% emqx_metrics_olp()), %% emqx_metrics_acl()), %% emqx_metrics_authn()), - #{ - license => maps:from_list([collect_stats(Name, LicenseData) || Name <- emqx_license()]), + (maybe_collect_license())#{ certs => collect_certs_json(emqx_certs_data()), stats => maps:from_list([collect_stats(Name, Stats) || Name <- emqx_stats:names()]), metrics => maps:from_list([collect_stats(Name, VMData) || Name <- emqx_vm()]), @@ -237,6 +234,24 @@ collect_metrics(Name, Metrics) -> add_collect_family(Name, Data, Callback, Type) -> Callback(create_mf(Name, _Help = <<"">>, Type, ?MODULE, Data)). +-if(?EMQX_RELEASE_EDITION == ee). +maybe_collect_family_license(Callback) -> + LicenseData = emqx_license_data(), + _ = [add_collect_family(Name, LicenseData, Callback, gauge) || Name <- emqx_license()], + ok. + +maybe_collect_license() -> + LicenseData = emqx_license_data(), + #{license => maps:from_list([collect_stats(Name, LicenseData) || Name <- emqx_license()])}. + +-else. +maybe_collect_family_license(_) -> + ok. + +maybe_collect_license() -> + #{}. +-endif. + %%-------------------------------------------------------------------- %% Collector %%-------------------------------------------------------------------- @@ -707,6 +722,7 @@ emqx_cluster_data() -> {nodes_stopped, length(Stopped)} ]. +-if(?EMQX_RELEASE_EDITION == ee). emqx_license() -> [ emqx_license_expiry_at @@ -716,6 +732,9 @@ emqx_license_data() -> [ {expiry_at, emqx_license_checker:expiry_epoch()} ]. +-else. + +-endif. emqx_certs() -> [ diff --git a/apps/emqx_prometheus/src/emqx_prometheus_data_integration.erl b/apps/emqx_prometheus/src/emqx_prometheus_data_integration.erl index 5039cb9b6..092ed3a71 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus_data_integration.erl +++ b/apps/emqx_prometheus/src/emqx_prometheus_data_integration.erl @@ -86,11 +86,10 @@ collect_mf(?PROMETHEUS_DATA_INTEGRATION_REGISTRY, Callback) -> Rules = emqx_rule_engine:get_rules(), _ = [add_collect_family(Name, rules_data(Rules), Callback, gauge) || Name <- rules()], _ = [add_collect_family(Name, actions_data(Rules), Callback, gauge) || Name <- actions()], - _ = [add_collect_family(Name, schema_registry_data(), Callback, gauge) || Name <- schema_registry()], _ = [add_collect_family(Name, connectors_data(), Callback, gauge) || Name <- connectors()], _ = [add_collect_family(Name, rule_specific_data(Rules), Callback, gauge) || Name <- rule_specific()], _ = [add_collect_family(Name, action_specific_data(), Callback, gauge) || Name <- action_specific()], - + ok = maybe_collect_family_schema_registry(Callback), ok; collect_mf(_, _) -> ok. @@ -108,6 +107,18 @@ add_collect_family(Name, Data, Callback, Type) -> collect_metrics(Name, Metrics) -> collect_di(Name, Metrics). +-if(?EMQX_RELEASE_EDITION == ee). +maybe_collect_family_schema_registry(Callback) -> + _ = [ + add_collect_family(Name, schema_registry_data(), Callback, gauge) + || Name <- schema_registry() + ], + ok. +-else. +maybe_collect_family_schema_registry(_) -> + ok. +-endif. + %%-------------------------------------------------------------------- %% Collector %%-------------------------------------------------------------------- @@ -306,11 +317,7 @@ schema_registry_data() -> emqx_schema_registry_count => erlang:map_size(emqx_schema_registry:list_schemas()) }. -else. -schema_registry() -> - []. -schema_registry_data() -> - #{}. -endif. %%====================