21、SkyWalking 源码分析 运维界面(一)之应用视角

1. 概述

本文主要分享运维界面的第一部分,应用视角

SkyWalking WEBUI :https://github.com/apache/incubator-skywalking-ui

在我们打开 SkyWalking WEBUI 的首页时,如下图:

 

  • 以应用为维度进行展示。
  • 紫色部分,时间进度条,调用 「2. AllInstanceLastTimeGetHandler」 接口,获得应用实例最后心跳时间。大多情况下,我们进入该界面,看的是从最后心跳时间开始的应用调用情况。
  • 红色部分,应用调用拓扑图,初始化以 [ 实例最后心跳时间前一小时 , 实例最后心跳时间 ] 调用 「3. TraceDagGetHandler」 接口,获得数据,而后每 2 秒刷新一次,30 次刷新后,即过了 1 分钟后,数据范围向前走一分钟,为 [ 实例最后心跳时间前一小时 + 一分钟 , 实例最后心跳时间 + 一分钟 ]。
  • 通过进度条的【播放/暂停按钮】可以切换到暂停模式,切换时间范围,查看时间范围为一小时内的应用调用拓扑图。注意,一定要切换到【暂时模式】才可调整时间范围,在【播放模式】下,每次自动请求都会重设时间范围。

基情提示:运维界面相关 HTTP 接口,逻辑简单易懂,笔者写的会比较简略一些。

2. AllInstanceLastTimeGetHandler

org.skywalking.apm.collector.ui.jetty.handler.time.AllInstanceLastTimeGetHandler ,实现 JettyHandler 接口,获得应用实例最后心跳时间处理器。代码如下:

  • #pathSpec() ,路径定义,"/time/allInstance" 。
  • 响应示例:

 

3. TraceDagGetHandler

org.skywalking.apm.collector.ui.jetty.handler.TraceDagGetHandler ,实现 JettyHandler 接口,获得应用拓扑图数据逻辑处理器。

  • #pathSpec() ,路径定义,"traceDag" 。
  • 响应示例: