该应用程序未列在观察者中

时间:2016-05-14 06:25:55

标签: elixir phoenix-framework

尽管phenix服务器正常启动,但我无法在观察者的应用程序列表中看到它。

我做的是:

elixir -S mix phoenix.server

而且,它是另一个终端:

iMac:~ Apple$ iex
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.2.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :observer.start
:ok

以下是我的应用启动方式:

defmodule Rumbl do
  use Application

  # See http://elixir-lang.org/docs/stable/elixir/Application.html
  # for more information on OTP Applications
  def start(_type, _args) do
    import Supervisor.Spec, warn: false

    children = [
      # Start the endpoint when the application starts
      supervisor(Rumbl.Endpoint, []),
      # Start the Ecto repository
      supervisor(Rumbl.Repo, []),
      # Here you could define other workers and supervisors as children
      # worker(Rumbl.Worker, [arg1, arg2, arg3]),
    ]

    # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
    # for other strategies and supported options
    opts = [strategy: :one_for_one, name: Rumbl.Supervisor]
    Supervisor.start_link(children, opts)
  end

  # Tell Phoenix to update the endpoint configuration
  # whenever the application is updated.
  def config_change(changed, _new, removed) do
    Rumbl.Endpoint.config_change(changed, removed)
    :ok
  end
end

观察员: enter image description here

那么,为什么我无法在观察者中看到它?

修改

我在观察者中点击了节点,然后"启用分发"然后节点出现了,但是一旦我选择了rumbl节点,我就会收到一个错误:

11:17:11.379 [error] [node: :rumbl@iMac, call: {:observer_backend, :sys_info, []}, reason: {:badrpc, :nodedown}]

虽然该节点已启动并正在运行:

$ elixir --name rumbl -S mix phoenix.server
[info] Running Rumbl.Endpoint with Cowboy using http on port 4000
14 May 11:10:33 - info: compiled 5 files into 2 files, copied 3 in 2.9 sec
[info] GET /
[debug] Processing by Rumbl.PageController.index/2
  Parameters: %{}
  Pipelines: [:browser]
[info] Sent 200 in 104ms

我试图再次选择rumbl @ iMac,然后我收到错误:

Child (unknown) crashed exiting:  <0.67.0> {{badmatch,{badrpc,nodedown}},
                                            [{observer_app_wx,handle_info,2,
                                              [{file,"observer_app_wx.erl"},
                                               {line,283}]},
                                             {wx_object,handle_msg,5,
                                              [{file,"wx_object.erl"},
                                               {line,432}]},
                                             {proc_lib,init_p_do_apply,3,
                                              [{file,"proc_lib.erl"},
                                               {line,240}]}]}
iex(2)> 
11:19:56.534 [error] ** wx object server #PID<0.67.0> terminating 
** Last message in was {:active, :rumbl@iMac}
** When Server state == {:state, #PID<0.59.0>, {:wx_ref, 327, :wxPanel, []},
 {:wx_ref, 330, :wxListBox, []}, {:wx_ref, 333, :wxScrolledWindow, []},
 {:paint, {:wx_ref, 342, :wxFont, []}, {:wx_ref, 346, :wxPen, []},
  {:wx_ref, 343, :wxBrush, []}, {:wx_ref, 344, :wxBrush, []},
  {:wx_ref, 345, :wxPen, []}}, :elixir,
 {:app,
  {{:box, 16, 47, 57, 23, {:str, 5, 5, '<0.35.0>', #PID<0.35.0>}},
   [{{:box, 89, 47, 58, 23, {:str, 5, 5, '<0.36.0>', #PID<0.36.0>}},
     [{{:box, 163, 47, 58, 23, {:str, 5, 5, 'elixir_sup', #PID<0.37.0>}},
       [{{:box, 237, 12, 103, 23,
          {:str, 5, 5, 'elixir_code_server', #PID<0.39.0>}}, []},
        {{:box, 237, 47, 72, 23, {:str, 5, 5, 'elixir_config', #PID<0.38.0>}},
         []},
        {{:box, 237, 82, 80, 23, {:str, 5, 5, 'elixir_counter', #PID<0.40.0>}},
         []}]}]}]}, :undefined, [], {356, 117}}, :undefined, :undefined, true}
** Reason for termination == 
** {{:badmatch, {:badrpc, :nodedown}},
 [{:observer_app_wx, :handle_info, 2, [file: 'observer_app_wx.erl', line: 283]},
  {:wx_object, :handle_msg, 5, [file: 'wx_object.erl', line: 432]},
  {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}]}


11:19:56.549 [error] GenServer :appmon_info terminating
** (MatchError) no match of right hand side value: {:badrpc, :nodedown}
    observer_app_wx.erl:283: :observer_app_wx.handle_info/2
    wx_object.erl:432: :wx_object.handle_msg/5
    (stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:EXIT, #PID<0.67.0>, {{:badmatch, {:badrpc, :nodedown}}, [{:observer_app_wx, :handle_info, 2, [file: 'observer_app_wx.erl', line: 283]}, {:wx_object, :handle_msg, 5, [file: 'wx_object.erl', line: 432]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}]}}
State: {:state, #PID<0.67.0>, [], 20507, [#PID<0.67.0>]}

固定

当我启用&#34;启用分发&#34;时,我输入了在rumbl节点中使用的相同cookie:

elixir --sname rumbl --cookie secret_token -S mix phoenix.server

然后,我选择了rumbl节点并列出了所有应用程序!

1 个答案:

答案 0 :(得分:2)

默认情况下,Observer显示与Observer在同一节点上运行的应用程序。通过使用elixir -S ...启动服务器,然后在新的:observer.start中运行iex,您就可以生成2个节点。

您可以通过为该节点提供--name(或--sname)来查看其他节点的数据:

elixir --name rumbl -S mix phoenix.server

然后从&#34; Nodes&#34;中选择该节点。观察者菜单。