Storm UI & Logs
针对storm 1.1.3
版本 ,使用KafkaSpoutConfig作为spout 解析StormUI.
主页面
Cluster Summary
集群摘要信息。
Version | Supervisors | slots Used | Free slots | Total slots | Executors | Tasks |
---|---|---|---|---|---|---|
1.1.3 | 3 | 6 | 6 | 12 | 22 | 22 |
-
Version
:stormUI安装节点上的Storm版本 -
Supervisors
: 集群中Supervisors的个数 -
used、free、total slots
: slots 在Supervisors节点conf中配置,一个solt占用一个端口. 一个工作进程woker占用一个solt. -
Executors
: 线程数 -
Tasks
: 任务数
Nimbus Summary
Nimbus节点摘要。
Host | Port | Status | Version | UpTime |
---|---|---|---|---|
s156 | 6627 | Leader | 1.1.3 | 56d 18h 51m 10s |
s160 | 6627 | Offline | Not applicable | Not applicable |
-
Status
:Nimbus在1.x
支持了HA -
Port
: nimbus占用端口数。
点击链接可以查看
nimbus.log
(前提是nimbus节点启用了> storm logviewer服务).
Topology Summary
-
Name
: 部署topology设置的id
点击链接可以查看 拓扑信息。
-
Status
: 状态有ACTIVIE,KILLED,INACTIVE,REBALANCING -
Replication count
: 复制此拓扑代码的nimbus主机数。 -
Num workers
: 可以通过Config.TOPOLOGY_WORKERS: 这个配置项设置用于运行 topology(拓扑)的 worker 数量.
-
Assigned Mem
: 分配给该topoloy的内存之和(每个worker分配内存 * Num workers = Assigned Mem
)
单个 worker 的内存配置可由 Config.WORKER_HEAP_MEMORY_MB 和 Config.TOPOLOGY_WORKER_MAX_HEAP_SIZE_MB 指定,默认为 768M,
另外再加上默认 64M 的 logwritter 进程内存空间,则有 832M。
Supervisor Summary
Supervisor 概述
Host | Id | Uptime | slots | Used slots | Avail slots | Used Mem(MB) | Version |
---|---|---|---|---|---|---|---|
s158(log) | e3ab8f3f-128b-4e5e-aee3-854fcfaac831 | 18d 17h 36m 24s | 4 | 3 | 1 | 832 | 1.1.3 |
-
Host
: supervisor主机名
点击
s157
链接跳转至supervisor详情页面
点击log
链接查看supervisor.log
(前提是该节点启用了logviewer服务)
-
Id
:系统自动生成的supervisorId
点击链接效果
同点击s157
, 查看该supervisor信息。
Nimbus Configuration
nimbus配置文件信息,略
Supervisor 页面
Supervisor页面较简单,主要讲述下Worker resources
Worker resources
-
Topology Name
: 拓扑名称。跳转至topology详情页面
-
Host
: supervisor 主机名,跳转至supervisor详情页面
-
Port
: 占用slot端口号,查看 topology-id/port/worker.log
,
如:http://s158:8000/log?file=scada-55-1540810065/6700/worker.log。
用来查看$supervisor_home/logs/workers-artifacts/$file 对应的日志文件。
-
Components
: 在这个worker上面运行的组件数,以及每个组件的任务数。 点击链接,跳转至组件详情页面.
Topology页面
Topology summary
-
id
: 每次部署topology,会给设置一个唯一的id,
Topology actions
Topology 运行状态,可以手动更改.
Topology stats
-
Window
: 过去10m、3h、1d和all time的运行状况
点击连接,可查看各个window时期的 topology运行状况
-
Emitted
: OutputCollector的emit方法的次数.。如果有多个组件,则每个组件都会emit tuple,并不是最开始的“任务”数
-
Transferred
: transferred tuple数。如果一个bolt A使用all group的方式(每一个bolt都要接收到)向bolt B发射tuple, 此时bolt B启动了n个task, 那么trasferred显示的数量将是emitted的n倍.
-
complete latency(ms)
: 一个tuple从发出到ack的平均时间。如果没有设置ack,则返回0 -
Acked
: 成功确认 tuple数 -
Failed
: 失败tuple数。
Kafka Spouts Lag
-
Latest Offset
: kafka 该分区最大偏移量。 -
Spout Committed Offset1
: spout所在consumerGroup的当前偏移量 -
Lag
: 落后偏移量
Spouts (All time)
点击上述的
window链接
,可以查看各个时间段的spout信息。
-
complete latency(ms)
: 一个tuple从spout发出
,到最终处理完毕接收到ack的时间。
Bolts (All time)
-
Capacity (last 10m)
: 计算公式为:Capacity = executed *
Execute latency /时间区间 `。如果这个值越接近1,bolt或executor一直在调用execute,说明并行度不够。 -
Execute latency(ms)
: execute方法处理tuple中花费的平均时间。 execute方法可以在不发送元组的Ack
的情况下完成。 -
Executed
: tuple 处理数 -
Process latency(ms)
:tuple从收到到被ack花费的平均时间。 -
acked
:该bolt收到ack的元组数。
Execute latency(ms)
和Process latency(ms)
表示处理消息的时效性Capacity
表示处理能力是否已经饱和
Worker Resources
参照上述 Worker Resources内容
Topology Visualization
Logs
日志在storm中对于跟踪状态、操作、错误信息和调试信息至关重要.
日志的位置
所有supervisor的日志都会配置在${storm.log.dir}
这个目录下面,${storm.log.dir} 默认指向的是\${storm.home}/logs
目录,所有的worker日志的位置在worker-artifacts
目录下面以分级的方式存在.
例如:${workers-artifacts}/${topolopgyId}/${port}/workder.log
storm UI 进行日志搜索
为了改善Storm的调试,storm提供了log search功能,它支持在某些日志文件或者所有拓扑的日志文件中搜索.
启用log search,各个节点(nimbus+ supervisor)需要使用命令:storm logviewer
开始日志搜索服务。
全局搜索
url格式${storm_ui_addr}/deep_search_result.html?id=${topology_id}&search=${search}
topology内搜索
url格式${storm_ui_addr}/deep_search_result.html?id=${topology_id}&search=${search}
指定worker文件搜索
url格式${supervisor_logview_addr}/logviewer_search.html?file=${file_name}&search=${search}
-
supervisor_logview_addr
: supervisor节点启动的logviewer地址 -
file_name
: 它的组成由{topology-id}/{port}/worker.log
supervisor.log
url格式${supervisor_logview_addr}/daemonlog.html?file=supervisor.log
nimbus.log
url格式${nimbus_logview_addr}/daemonlog?file=nimbus.log
-
nimbus_logview_addr
: nimbus节点启动的logviewer地址