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

Storm UI & Logs

  • 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

Storm UI & Logs

  • 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

Storm UI & Logs

  • id : 每次部署topology,会给设置一个唯一的id,

Topology actions

Topology 运行状态,可以手动更改.

Storm UI & Logs


Topology stats

Storm UI & Logs

  • 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

Storm UI & Logs

  • Latest Offset : kafka 该分区最大偏移量。
  • Spout Committed Offset1: spout所在consumerGroup的当前偏移量
  • Lag: 落后偏移量

Spouts (All time)

点击上述的window链接,可以查看各个时间段的spout信息。
Storm UI & Logs

  • complete latency(ms) : 一个tuple从spout发出,到最终处理完毕接收到ack的时间。

Bolts (All time)

Storm UI & Logs

  • 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

Storm UI & Logs



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功能,它支持在某些日志文件或者所有拓扑的日志文件中搜索.
Storm UI & Logs

启用log search,各个节点(nimbus+ supervisor)需要使用命令:storm logviewer 开始日志搜索服务。

全局搜索

url格式
${storm_ui_addr}/deep_search_result.html?id=${topology_id}&search=${search}

Storm UI & Logs

topology内搜索

url格式
${storm_ui_addr}/deep_search_result.html?id=${topology_id}&search=${search}

Storm UI & Logs

指定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

Storm UI & Logs

supervisor.log

url格式
${supervisor_logview_addr}/daemonlog.html?file=supervisor.log

Storm UI & Logs

nimbus.log

url格式
${nimbus_logview_addr}/daemonlog?file=nimbus.log

  • nimbus_logview_addr : nimbus节点启动的logviewer地址

Storm UI & Logs