1. 概述
本文主要分享运维界面的第四部分,操作视角。
SkyWalking WEBUI :https://github.com/apache/incubator-skywalking-ui
在我们打开 SkyWalking WEBUI 的 Service Tree ( service/serviceTree.html ) 页时,如下图:

- 以操作为维度进行展示。
 - 黄色部分,时间进度条,调用 「2. AllInstanceLastTimeGetHandler」 接口,获得应用实例最后心跳时间。大多情况下,我们进入该界面,看的是从最后心跳时间开始的操作情况。
 - 红色部分,应用筛选器,调用 「3. ApplicationsGetHandler」 接口,获得应用列表。
 - 紫色部分,入口操作( EntryService )分页列表,调用 「4. EntryServiceGetHandler」 接口,获得数据。
 - 蓝色部分,【点击单个操作】,获得指定操作的关联操作调用统计树列表,调用 「5. ServiceTreeGetByIdHandler」 接口,获得数据。
 
基情提示:运维界面相关 HTTP 接口,逻辑简单易懂,笔者写的会比较简略一些。
2. AllInstanceLastTimeGetHandler
同《SkyWalking 源码分析 —— 运维界面(一)之应用视角》「2. AllInstanceLastTimeGetHandler」 相同。
3. ApplicationsGetHandler
同《SkyWalking 源码分析 —— 运维界面(二)之应用实例视角》「3. ApplicationsGetHandler」 相同。
4. EntryServiceGetHandler
org.skywalking.apm.collector.ui.jetty.handler.servicetree.EntryServiceGetHandler ,实现 JettyHandler 接口,获得入口操作( EntryService )分页列表的逻辑处理器。
- #pathSpec() ,路径定义,"/service/entry" 。
 - 响应示例:
 

- 
#doGet() 方法,代码如下:
 - 
第 66 至 71 行:解析
applicationId参数。 - 
第 73 至 85 行:解析
startTime和endTime参数。 - 
第 88 至 99 行:解析
from和size分页参数。- 
第 73 行:调用 ServiceTreeService#loadEntryService(...) 方法,获得入口操作( EntryService )分页列表。代码如下:
- 第 44 行:调用 ServiceEntryEsUIDAO#load(...) 方法,查询 ServiceEntry 分页 JSON 数组。
 
 - 
第 63 至 69 行:设置应用编码。
 
 - 
 
5. ServiceTreeGetByIdHandler
org.skywalking.apm.collector.ui.jetty.handler.servicetree.ServiceTreeGetByIdHandler ,实现 JettyHandler 接口,获得指定操作的关联操作调用统计树列表的逻辑处理器。
- #pathSpec() ,路径定义,"/service/tree/entryServiceId" 。
 - 响应示例:
 

- 
#doGet() 方法,代码如下:
 - 
第 61 至 66 行:解析
entryServiceId参数。 - 
第 60 至 74 行:解析
startTime和endTime参数。- 第 94 行:调用 ServiceTreeService#loadServiceTree(entryServiceId, startTime, endTime) 方法,获得指定操作的关联操作调用统计树列表,涉及 ServiceReference 数据表。代码比较简单易懂( 笔者太懒了 ),胖友自己阅读理解。
 

 
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: