瀏覽代碼

fix(mgmt): fix stats api by applying filter to running_nodes

Ivan Dyachkov 2 年之前
父節點
當前提交
3d7ceb01a0
共有 2 個文件被更改,包括 14 次插入2 次删除
  1. 1 1
      apps/emqx_management/src/emqx_management.app.src
  2. 13 1
      apps/emqx_management/src/emqx_mgmt_api_stats.erl

+ 1 - 1
apps/emqx_management/src/emqx_management.app.src

@@ -2,7 +2,7 @@
 {application, emqx_management, [
     {description, "EMQX Management API and CLI"},
     % strict semver, bump manually!
-    {vsn, "5.0.16"},
+    {vsn, "5.0.17"},
     {modules, []},
     {registered, [emqx_management_sup]},
     {applications, [kernel, stdlib, emqx_plugins, minirest, emqx, emqx_ctl]},

+ 13 - 1
apps/emqx_management/src/emqx_mgmt_api_stats.erl

@@ -129,7 +129,19 @@ list(get, #{query_string := Qs}) ->
         _ ->
             Data = [
                 maps:from_list(emqx_mgmt:get_stats(Node) ++ [{node, Node}])
-             || Node <- mria:running_nodes()
+             || Node <- running_nodes()
             ],
             {200, Data}
     end.
+
+%%%==============================================================================================
+%% Internal
+
+running_nodes() ->
+    Nodes = erlang:nodes([visible, this]),
+    RpcResults = erpc:multicall(Nodes, emqx, is_running, [], 15000),
+    [
+        Node
+     || {Node, IsRunning} <- lists:zip(Nodes, RpcResults),
+        IsRunning =:= {ok, true}
+    ].