Просмотр исходного кода

feat(emqx): Add backtrace_depth configuration

Zaiming Shi 4 лет назад
Родитель
Сommit
a4b30ea77c
3 измененных файлов с 14 добавлено и 2 удалено
  1. 2 0
      etc/emqx.conf
  2. 5 0
      priv/emqx.schema
  3. 7 2
      src/emqx_app.erl

+ 2 - 0
etc/emqx.conf

@@ -301,6 +301,8 @@ node.crash_dump = {{ platform_log_dir }}/crash.dump
 node.dist_listen_min = 6369
 node.dist_listen_max = 6369
 
+node.backtrace_depth = 16
+
 ## CONFIG_SECTION_BGN=rpc ======================================================
 
 ## RPC Mode.

+ 5 - 0
priv/emqx.schema

@@ -334,6 +334,11 @@ end}.
   hidden
 ]}.
 
+{mapping, "node.backtrace_depth", "emqx.backtrace_depth", [
+  {default, 16},
+  {datatype, integer}
+]}.
+
 %%--------------------------------------------------------------------
 %% RPC
 %%--------------------------------------------------------------------

+ 7 - 2
src/emqx_app.erl

@@ -33,6 +33,7 @@
 %%--------------------------------------------------------------------
 
 start(_Type, _Args) ->
+    set_backtrace_depth(),
     print_otp_version_warning(),
     print_banner(),
     ekka:start(),
@@ -40,8 +41,7 @@ start(_Type, _Args) ->
     ok = start_autocluster(),
     ok = emqx_plugins:init(),
     _ = emqx_plugins:load(),
-    emqx_boot:is_enabled(listeners)
-      andalso (ok = emqx_listeners:start()),
+    emqx_boot:is_enabled(listeners) andalso (ok = emqx_listeners:start()),
     register(emqx, self()),
     ok = emqx_alarm_handler:load(),
     print_vsn(),
@@ -53,6 +53,11 @@ stop(_State) ->
     emqx_boot:is_enabled(listeners)
       andalso emqx_listeners:stop().
 
+set_backtrace_depth() ->
+    Depth = application:get_env(?APP, backtrace_depth, 16),
+    _ = erlang:system_flag(backtrace_depth, Depth),
+    ok.
+
 %%--------------------------------------------------------------------
 %% Print Banner
 %%--------------------------------------------------------------------