The application monitor appmon
is a graphical node and
application viewer. The tool shows an overview of all
applications on all nodes, as well as the process tree of any
application on any node.
It starts the node window and will dynamically monitor all known Erlang nodes.
The node window monitors nodes. The window is named appmon. There is a menu-bar at the top, and below that each known node is shown in its own area, separated by a thin line. A node is represented by its name as the root of its application tree. The node name represents the application controller on this node. The name itself is a menu, where operations on the node can be performed (rebooting it for instance), by clicking. To the far left is a load meter for each node. Load can be measured as processor time/elapsed time, or as the length of the runtime queue, by selecting the appropriate option from the Options menu. Below the node name, the application controller, is a tree of applications. A clicking on one of these applications starts the application monitor window.
The node window has a menu-bar with the following options:
Each application controller visible in the node window can be selected by mouse click and produces a menu with the following options:
The listbox window lists the nodes and applications that are shown in the appmon window. This window can be used when there are so many applications in the appmon window that it will be hard to read their names.
The List Box window is opened by a single click on Options: List Box. A clicking on Close closes the window.
The application window monitors an application. The name of the window is the application name and the node name. The window shows a menu-bar, a toolbar and the application tree.
The Applicaton window can be opened from the appmon window by a single click on the application, or from the listbox window by dubbel clicking on the application name or by marking the application and click on the Load button.
Application trees come in two varieties:
In supervision mode, the tree-gathering and algorithm building assume conformance to supervision implementation. Otherwise it works for standard Erlang.
The application window menu-bar contains the following options:
The application toolbar controls the actions of the mouse pointer. Clicking on a process in the application window have different meaning depending on which tool is selected. The procedure is to first press a button - T for trace, for example - and then click on the process that should be traced.
The application window toolbar contains the following options:
sys:trace
call and not all processes respond to
this.Appmon consists of the following modules:
appmon
appmon_lb
appmon_a
appmon_dg
appmon_place
appmon_txt
appmon_info
Appmon is a distributed program, but all graphics are handled on a
central node and GS
need only be loaded on this
single node. All real monitoring is done in a single module
(appmon_info
), which runs on each node acting as an
information centre. The various windows, the node window, the listbox
window and the application window, then subscribe to information.
In summary then, only the appmon_info
module must be
accessible by the clients, the rest of the appmon modules are
only needed at the server.
If the node window does not show all the nodes expected, then check the following:
nodes()
command in the shell? If not, do
net_adm:ping(NodeName)
to add nodes to the Erlang distribution.
If the application window does not show the supervision tree, then check that the application have a real application master. It is absolutely necessary that the top process behaves as a supervisor when the supervision view is used.