-
Notifications
You must be signed in to change notification settings - Fork 2.2k
dubbo monitor simple
min edited this page Nov 6, 2018
·
1 revision
- 启动
com.alibaba.dubbo.monitor.simple.MonitorStarter#main
- 需要进行监控的服务,在xml中配置
<dubbo:monitor protocol="registry"/>
- 打开监控页面
http://localhost:8080
可以看到服务调用相关的统计
- dubbo-monitor-simple启动的时候,发布服务:
com.alibaba.dubbo.monitor.MonitorService
(实现类:com.alibaba.dubbo.monitor.simple.SimpleMonitorService
),只实现了collect
方法,将RPC调用过来的URL存到queue
里面 -
com.alibaba.dubbo.monitor.simple.SimpleMonitorService
启动了两个线程,分别执行write
和draw
方法,write
从queue
里面取出URL进行统计分析,结果写文件,draw
方法把这些结果画成折线图,存本地图片文件 -
com.alibaba.dubbo.monitor.simple.pages.ChartsPageHandler
和com.alibaba.dubbo.monitor.simple.pages.StatisticsPageHandler
负责在页面上渲染展示这些数据
- Dubbo服务在配置了
<dubbo:monitor protocol="registry"/>
标签后,调用经过com.alibaba.dubbo.monitor.support.MonitorFilter
时,会进行结果收集操作。 - 最终在调用到
com.alibaba.dubbo.monitor.dubbo.DubboMonitor#collect
,该方法将调用过程中的统计信息存放在statisticsMap
中。并且,有另一个线程定期(默认为60秒)调用dubbo-monitor-simple暴露的com.alibaba.dubbo.monitor.MonitorService服务,将这些信息发送给monitor。
Dubbo-montitor-simple实现的过程借助了dubbo服务调用:Monitor端暴露服务,Dubbo应用通过配置去消费这些服务,消费的过程就是自身服务数据上报的过程。
Dubbo-monitor-simple的代码在本项目的master分支