应用数据归集
自动发现的流程:
MonitorAgent的start方法中:
- 创建并启动AppServerMonitorDetector实例,调用run方法来获取所有的JVM进程,并启动对应数据的抓取任务。
- 创建AppServerProfileDataCatchWorker实例并开启一个线程采集profile数据。
- 启动MDFListener来接收第三方推送的MDF或MDF数组 实现实时数据的采集接收。
定时抓取的流程:
主要包括AppServerMonitorDataCatchWorker(Tomcat)、MSCPMonitorDataCatchWorker(MSCP)和 JavaMonitorDataCatchWorker(JavaSE)三种,以Tomcat为例:
AppServerMonitorDataCatchWorker的run方法中:
- 调用doCaptureMonitorData方法获取Monitor对应的所有MBean,并将所有MBean放入mdf中。
- 调用detector.runHandlers方法对数据进行处理。
- 调用doCaptureProfileData方法获取profile对应的所有MBean,并将所有MBean放入pmdf中。
- 调用apdc.putData方法对profile数据进行展示。
其中,MBean被分为不同的类型:
AppServer/MSCP 查询的MBean:
profile: "com.creditease:feature=profiles,*"
monitor: "com.creditease:feature=monitors,*"Java 查询的MBean:
"java.lang.management" ClassLoadingMXBean
MemoryMXBean
MemoryPoolMXBean
“com.sun.management."
GarbageCollectorMXBean
ThreadMXBean
OperatingSystemMXBean
UnixOperatingSystemMXBean