文章40 | 阅读 30634 | 点赞0
本文主要分享运维界面的第一部分,应用视角。
SkyWalking WEBUI :https://github.com/apache/incubator-skywalking-ui
在我们打开 SkyWalking WEBUI 的首页时,如下图:
org.skywalking.apm.collector.ui.jetty.handler.time.AllInstanceLastTimeGetHandler
,实现 JettyHandler 接口,获得应用实例最后心跳时间处理器。代码如下:
#pathSpec()
,路径定义,"/time/allInstance"
。#doGet()
方法,代码如下:
第 55 至 59 行:调用 TimeSynchronousService#allInstanceLastTime()
方法,获得应用实例最后心跳时间。
InstanceEsUIDAO#lastHeartBeatTime()
第 61 至 65 行:减 5 秒,因为应用心跳是最频繁的,防止其他信息还没上传。
第 68 至 69 行:返回数据。
org.skywalking.apm.collector.ui.jetty.handler.TraceDagGetHandler
,实现 JettyHandler 接口,获得应用拓扑图数据逻辑处理器。
#pathSpec()
,路径定义,"traceDag"
。#doGet()
方法,代码如下:
第 73 行:调用 TraceDagService#load(startTime, endTime)
方法,获得应用拓扑图数据。代码如下:
第 53 行:调用 NodeComponentEsUIDAO#load(startTime, endTime)
方法,获得 NodeComponent JSON 数组。
第 56 行:调用 NodeMappingEsUIDAO#load(startTime, endTime)
方法,获得 NodeMapping JSON 数组。
第 59 行:调用 NodeReferenceEsUIDAO#load(startTime, endTime)
方法,获得 NodeReference JSON 数组。
第 62 行:调用 TraceDagDataBuilder#build(nodeCompArray, nodesMappingArray, resSumArray)
方法,使用获得的 NodeComponent 、NodeMapping 、NodeReference 数据,构建应用拓扑图。逻辑较为繁琐,笔者已经添加注释,胖友调试一下,很容易明白滴。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_42073629/article/details/119703703
内容来源于网络,如有侵权,请联系作者删除!