Skip to content

dubbo monitor simple

min edited this page Nov 6, 2018 · 1 revision

dubbo-monitor-simple

基本用法

  • 启动com.alibaba.dubbo.monitor.simple.MonitorStarter#main
  • 需要进行监控的服务,在xml中配置<dubbo:monitor protocol="registry"/>
  • 打开监控页面http://localhost:8080可以看到服务调用相关的统计

实现原理

dubbo-monitor-simple
  • dubbo-monitor-simple启动的时候,发布服务:com.alibaba.dubbo.monitor.MonitorService(实现类:com.alibaba.dubbo.monitor.simple.SimpleMonitorService),只实现了collect方法,将RPC调用过来的URL存到queue里面
  • com.alibaba.dubbo.monitor.simple.SimpleMonitorService启动了两个线程,分别执行writedraw方法,writequeue里面取出URL进行统计分析,结果写文件,draw方法把这些结果画成折线图,存本地图片文件
  • com.alibaba.dubbo.monitor.simple.pages.ChartsPageHandlercom.alibaba.dubbo.monitor.simple.pages.StatisticsPageHandler负责在页面上渲染展示这些数据
Dubbo应用
  • 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分支