diff --git a/apps/emqx/src/emqx_metrics.erl b/apps/emqx/src/emqx_metrics.erl index 529b1b431..8aabd7ac8 100644 --- a/apps/emqx/src/emqx_metrics.erl +++ b/apps/emqx/src/emqx_metrics.erl @@ -337,11 +337,17 @@ all() -> %% @doc Get metric value -spec val(metric_name()) -> non_neg_integer(). val(Name) -> - case ets:lookup(?TAB, Name) of - [#metric{idx = Idx}] -> - CRef = persistent_term:get(?MODULE), - counters:get(CRef, Idx); - [] -> + try + case ets:lookup(?TAB, Name) of + [#metric{idx = Idx}] -> + CRef = persistent_term:get(?MODULE), + counters:get(CRef, Idx); + [] -> + 0 + end + %% application will restart when join cluster, then ets not exist. + catch + error:badarg -> 0 end. diff --git a/apps/emqx_conf/etc/emqx_conf.conf b/apps/emqx_conf/etc/emqx_conf.conf index 7d608031d..6f5478c52 100644 --- a/apps/emqx_conf/etc/emqx_conf.conf +++ b/apps/emqx_conf/etc/emqx_conf.conf @@ -13,6 +13,7 @@ node { cookie: emqxsecretcookie data_dir: "{{ platform_data_dir }}" etc_dir: "{{ platform_etc_dir }}" + applications: "{{ emqx_machine_boot_apps }}" } log {