2. Observer

2观察员

2.1简介

Observer是一个用于观察Erlang系统特性的图形工具。Observer显示系统信息,应用程序主管树,进程信息,ETS表,Mnesia表,并包含Erlang跟踪的前端。

2.2开始

从独立节点运行观察器以最小化系统观察到的影响。

例子:

% erl -sname observer -hidden -setcookie MyCookie -run observer

使用菜单节点选择要观察的节点。菜单视图>刷新间隔控制视图的更新频率。刷新间隔是为每个查看器设置的,因此您可以为每个查看器设置不同的设置。为了最小化系统影响,只更新活动查看器。其他视图在激活时更新。

鼠标按钮的行为如预期。使用左键单击选择对象,右键单击以获得使用最多的选项的菜单,然后双击以显示有关所选对象的信息。在包含多列的大多数浏览器中,可以通过左键单击列标题来更改排序顺序。

2.3系统标签

选项卡系统显示关于活动的Erlang节点及其运行时系统的一般信息,例如生成配置,系统功能和总体使用统计信息。

2.4负荷图表选项卡

Tab Load Charts显示活动Erlang节点上当前资源使用情况的图形。

Scheduler Utilization显示了每个调度程序的调度程序使用情况,其中每个调度程序使用的都是唯一的颜色。

图表Memory Usage显示了每个类别具有唯一颜色的总内存使用情况和每个内存类别的使用情况。类别如下:

Total

所有内存类别的总和。

Processes

使用的所有进程内存之和。

Atom

原子表使用的大小。

Binary

分配的所有off-heap二进制文件的总和。

Code

分配给代码存储的内存。

Ets

用于所有ETS表的已用内存。

图形IO Usage显示了系统当前的I/O负载。

2.5内存分配器选项卡

标签内存分配器显示载体大小和当前内存载体的详细信息。有关内存载体的详细信息,请参阅erts_alloc应用程序ERTS中的模块。

Max Carrier size列显示自从最后一个节点更改或应用程序启动以来观察者看到的最大值,即切换节点将重置最大列。对数值进行采样,以便可能存在比所示值更高的值。

2.6申请表格

选项卡应用程序提供应用程序信 在左侧列表中选择一个应用程序以显示其主管树。树中的右键单击选项如下所示:

过程信息

打开所选进程的详细信息窗口,包括:

处理信息

显示过程信息。

讯息

显示进程消息。

字典

显示进程字典。

堆栈跟踪

显示进程当前堆栈跟踪。

国家

显示进程状态。

原木

如果启用并可用,则显示流程SASL日志条目。

跟踪过程

将选定的进程标识符添加到选项卡。跟踪概述加上进程驻留的节点。

跟踪命名过程

添加进程的注册名称。当在许多节点上进行跟踪时,这可能很有用,因为使用该名称的进程随后会在所有跟踪节点上进行跟踪。

跟踪过程树

将选定的进程和下面的所有进程添加到选项卡Trace Overview中

跟踪命名过程树

将选定的进程和下面的所有进程(右)添加到选项卡中。跟踪概述...

2.7进程选项卡

标签过程在列中列出处理信息。对于每个进程,将显示以下信息:

PID

进程标识符。

红人

在此过程中执行的削减数。这可以表示为累积值,也可以表示为上次更新后的值。

记忆

进程的大小,以字节为单位,通过调用获得process_info(Pid,memory)

MsgQ

进程的消息队列长度。

期权过程信息在鼠标指针下打开进程上的详细信息窗口,包括:

处理信息

显示过程信息。

讯息

显示进程消息。

字典

显示过程字典。

堆栈跟踪

显示进程当前堆栈跟踪。

状态

显示进程状态。

原木

如果启用并可用,则显示流程SASL日志条目。

日志需要应用程序SASL在观察节点上启动,并使用log_mf_h日志处理程序。Observed节点必须是Erlang / OTP R16B02或更高版本。该rb服务器不能点击菜单时所观察到的节点上启动日志>切换日志查看。rb退出或更改观察节点时,服务器在观察节点上停止。

选项跟踪选定的进程将选定的进程标识符添加到选项卡跟踪概览以及进程驻留的节点。

选项跟踪通过名称选择的进程添加进程的注册名称。当在多个节点上完成跟踪时,这可能很有用,因为具有该名称的进程会在所有跟踪的节点上进行跟踪。

选项杀死进程通过发送带有原因的退出信号,粗暴地杀死鼠标指针下的进程kill

2.8端口标签

标签港口在列中列出端口信息。对于每个端口,将显示以下信息:

ID

端口标识符。

连通

拥有端口的进程的进程标识符。

名称

港口的注册名称(如有的话)。

控制

通过设置的命令的名称erlang:open_port/2

端口的内部索引。

选项端口信息在鼠标指针下打开端口的详细信息窗口。除上述信息外,还显示链接和监视器。

选项跟踪所选端口将选定的端口标识符以及端口所在的节点添加到选项卡跟踪概览

选项按名称跟踪选定的端口端口的注册名称添加到选项卡跟踪概览。当在许多节点上完成跟踪时,这可能很有用,因为具有该名称端口随后会在所有跟踪的节点上进行跟踪。

选项关闭erlang:port_close/1在鼠标指针下的端口上执行。

2.9表查看器选项卡

选项卡表查看器列出表格。默认情况下,显示ETS表,而不显示由OTP应用程序创建的不可读专用ETS表和表。使用菜单视图查看“系统”ETS表,不可读的ETS表或Mnesia表。

双击查看表格内容,或者右键单击并选择选项Show Table Content。要查看表格信息,选择表格并激活菜单视图>表格信息,或者右键单击并选择选项表格信息。

您可以使用regular expressions和搜索对象,并编辑或删除它们。

2.10跟踪总览标签

选项卡跟踪概览处理跟踪。通过选择要跟踪的进程或端口以及如何跟踪它们来跟踪。对于流程,您可以跟踪消息,函数调用,调度,垃圾收集和处理相关事件,例如spawnexit和其他许多人。对于端口,您可以跟踪消息,计划和端口相关事件。

要跟踪函数调用,还需要设置跟踪模式跟踪模式选择要跟踪的函数调用。跟踪功能调用的数量可以通过匹配规格进一步减少。匹配规格也可用于触发跟踪消息中的更多信息。

您还可以在消息上设置匹配规格。默认情况下,如果跟踪消息,则跟踪由进程或端口发送和/或接收的所有消息。匹配规范可用于减少跟踪消息的数量和/或触发跟踪消息中的更多信息。

跟踪模式仅适用于跟踪的进程和端口。

从“ 应用程序”或“ 进程”选项卡添加进程端口端口选项卡添加。一个特殊的标识符,即在跟踪启动后启动的所有进程端口,可以添加按钮分别添加'新'进程添加'新'端口

添加进程或端口时,会显示带有跟踪选项的窗口。选定的选项为所选进程/端口设置。要更改选项,请右键单击进程或端口并选择编辑进程选项。要从列表中删除进程端口,请右键单击并分别选择“ 删除进程”或“ 删除端口”

由进程/端口标识符添加的进程和端口添加这些进程/端口驻留在节点列表中的节点。通过单击添加节点按钮或右键单击节点列表并选择添加节点,可以添加更多节点。要删除节点,请选择它们,然后右键单击并选择删除节点

如果追踪函数调用,则必须通过单击添加追踪模式添加追踪模式。选择一个模块,功能和匹配规格。如果未选择功能,则会跟踪模块中的所有功能。

追踪消息也可以添加追踪模式。点击添加跟踪模式按钮并选择发送的消息收到的消息,以及匹配规范。

工具中提供了一些基本的匹配规格,您可以提供自己的匹配规格。在中描述了匹配规范的语法ERTS User's Guide。为了简化匹配规范的编写,他们也可以写成fun/1。有关详细信息,请参阅ms_transform应用程序STDLIB中的模块。

单击按钮开始追踪以开始追踪。默认情况下,跟踪输出被写入新窗口。当窗口关闭时,或者单击“ 停止跟踪”按钮时,跟踪停止。跟踪输出可以通过菜单选项>输出来改变。跟踪设置(包括匹配规范)可以保存到文件或从文件加载。

有关跟踪的详细信息,请参阅dbg应用程序Runtime_Tools ERTS User's Guide中的模块ms_transform以及应用程序STDLIB 中和模块中的“匹配Erlang中的规范”一节。