一种办公管理系统性能监控平台技术方案

技术编号:14235492 阅读:57 留言:0更新日期:2016-12-21 09:18
本发明专利技术公开了一种办公管理系统性能监控平台,包括日志采集子系统、日志分析子系统和警告、干预子系统;日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;日志分析子系统包括性能瓶颈分析模块、线程执行分析模块和内存分析模块;警告、干预子系统,包括警告模块和强制干预模块。本发明专利技术可以对正在运行的生成系统进行及时分析,不需要部署,不用引入第三方的特殊依赖,只需要使用系统本来就运行其上的jdk的自带工具就可以实现,同时通过开发一下的日志分析工具,可以时候对日志进行智能分析,协助排查宕机问题和性能问题的原因,完成数据的监控和采集,对系统性能影响很小,保证生产系统不会受到监控工具本身的影响。

Performance monitoring platform for office management system

The invention discloses an office management system performance monitoring platform, including log collection subsystem, log analysis subsystem and warning and intervention system; log collection subsystem is divided into memory log collection module, data acquisition module and SQL execution thread log log collection module; log analysis performance bottleneck analysis thread of execution analysis module and memory analysis the modules, including the subsystem; warning and intervention system, including warning module and compulsory intervention module. The invention can timely analysis of the generation system is running, do not need to be deployed, without special dependence on the introduction of third party, only need to use the system is running on the JDK tools can be achieved at the same time, through the development of a log analysis tool to log intelligent analysis to assist the investigation, reason downtime and performance problems, the completion of data acquisition and monitoring, it has little effect on the system performance, which affects the production system of the tool itself is not monitored.

【技术实现步骤摘要】

本专利技术涉及一种基于java代理的一种sql语句的监控方法,以及继续线程日志的性能、宕机分析方法,尤其是指一种办公管理系统性能监控平台
技术介绍
由于现有的公司的办公管理系统越来越复杂,用户的并发量也越来越大,使系统不稳定,容易宕机。因此系统的稳定性变得越来越重要,需要有一套好的机制来监控系统的运行状况,同时也需要有一套分析方法,能够事后快速定位宕机问题的原因,及时的修补标准产品的重大宕机bug,以保证系统的稳定性。当前已有的用于解决该稳定的工具为:第三方的jprofiler、btrace,这些工具比较重量级,部署复杂,甚至需要大量开发。现有技术中,由于没有很好的图形化界面,主要是通过命令行以及一些日志分析工具进行问题分析,主要通过用户技术开发人员分析系统宕机和性能问题。
技术实现思路
为了解决上述问题,本专利技术提供了一种办公管理系统性能监控平台,其目的在于解决现有技术不能很好地对办公系统的稳定性进行监控、分析的问题。一种办公管理系统性能监控平台,包括日志采集子系统、日志分析子系统和警告、干预子系统;所述日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;其中,内存日志采集模块,使用JVM Management API采集当前系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间。SQL执行日志采集模块,采用java代理,动态修改字节码。考虑到要监控系统运行的sql语句,必须修改系统的数据库包装类,而不同的OA软件版本该包装类可能不一样,如果直接修改,就没办法通过直接覆盖的方式部署性能监控平台,因此通过字节码方式,动态的在运行期在保障类的excelSql的方法前后加上统计代码,统计SQL语句执行的时间,以及返回的数据量,通过两个过滤条件来过滤日志:时间超过10秒的sql和返回数据量操作10000条的sql,其中10和10000都是可配置的,打印日志的同时打印出当时的线程堆栈,判断sql语句具体在代码的位置。以上的日志采集的信息包含了系统运行的所有状态信息,通过分析这些日志就可以判断出当前系统运行的状态,以及系统性能和宕机问题的原因。所述日志分析子系统包括性能瓶颈分析模块、线程执行分析模块和内存分析模块;其中,性能瓶颈分析模块,基于Jprofiler工具通过分析一段时间的线程日志,判断程序执行的瓶颈点,一次来协助开发人员对程序进行优化。算法使用的基本原理是:通过统计一段时间的线程日志中和某个程序(要分析的程序)的相关线程,找到这些线程正在运行的代码行(正在运行的点),然后统计出这些运行点的数量,由于线程基本上是随机获取的,因此有如下原理:某个运行点(代码行)出现的次数越多,代表其运行的越慢(或者运行的次数越多),瓶颈度越大,按照数量倒排序就可以统计出上面的瓶颈参考信息,同时结合堆栈的层级结构,就可以把瓶颈信息以树形的结构展示出来。线程执行分析模块,基于longtime工具进行分析。给定一段时间的线程日志,分析出这段时间运行比较慢的程序,以及这些运行较慢的程序的相关信息,通过图形的方式直观表现,统计出程序连续的执行时间。算法的基本原理是:如果在同一个线程里(线程号相等)而且连续的两个线程日志中发现相同的程序,则认为这个程序在这两个线程日志中间的时间里也一直存在于这个线程内,因为web应用服务器的线程池里一般有1000多个线程,新的请求是随机的,一个请求第一次在某个线程,结束后下个请求会随机再分配一个线程处理,如果是两个不同的程序,连续紧接着被分配到同一个线程的概率只有1/1000*1000,如果连续三次,则概率为1/1000*1000*1000,概率极小,因此通过离散的线程日志,可以统计出程序连续的执行时间。内存分析模块,分析JVM内存,根据内存的老年代的变化曲线判定系统是否已经内存溢出,计算老年代的占比是否正常,若垃圾回收后占比大于90%,则表示内存即将溢出,进行预警,若垃圾回收后占比大于99%,则系统已经宕机,需要立即通知或强制干预重启系统。所述警告、干预子系统,包括警告模块和强制干预模块,其中,警告模块通过SMS短信发送代理接口进行短信的提醒发送,通过办公系统提供的webservice接口动态创建内部流程进行提醒。强制干预模块通过Resin提供的Resin.restart() 方法进行web应用服务器的重启操作。通过警告和强制干预,可以最小化的降低系统异常对用户造成的影响。本专利技术对比现有技术具有以下优势:1、可以对正在运行的生成系统进行及时分析,2、不需要部署,不用引入第三方的特殊依赖,只需要使用系统本来就运行其上的 jdk的自带工具就可以实现,同时通过开发一下的日志分析工具,可以时候对日志进行智能分析,协助排查宕机问题和性能问题的原因,完成数据的监控和采集,3、对系统性能影响很小,保证生产系统不会受到监控工具本身的影响。附图说明图1为办公管理系统性能监控平台的示意图。具体实施方式本专利技术的具体实施方式如下:一种办公管理系统性能监控平台,包括日志采集子系统、日志分析子系统和警告、干预子系统;所述日志采集子系统分为内存日志采集模块1、线程日志采集模块2和SQL执行日志采集模块3;其中,内存日志采集模块1,使用JVM Management API采集当前系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间。使用如下方法即可获得:ManagementFactory.getMemoryPoolMXBeans().get(0);List beans = ManagementFactory.getMemoryPoolMXBeans();String bname;for (MemoryPoolMXBean bean : beans) { bname = bean.getName().toLowerCase(); if (bname.indexOf(\Eden Space\.toLowerCase()) != -1) { MemoryUsage usage = bean.getUsage(); this.mb.setECommitted(usage.getCommitted() / 1024L); this.mb.setEUsed(usage.getUsed() / 1024L);本文档来自技高网...
一种办公管理系统性能监控平台

【技术保护点】
一种办公管理系统性能监控平台,其特征在于:包括日志采集子系统、日志分析子系统和警告、干预子系统;所述日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;其中,内存日志采集模块,使用JVM Management API采集当前系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间;线程日志采集模块,通过ManagementFactory.getThreadMXBean().getAllThreadIds() 可得到所有线程的信息;SQL执行日志采集模块,采用java代理,动态修改字节码,在保障类的excelSql的方法前后加上统计代码,统计SQL语句执行的时间,以及返回的数据量,通过两个过滤条件来过滤日志:时间超过10秒的sql和返回数据量操作10000条的sql,其中10和10000都是可配置的,打印日志的同时打印出当时的线程堆栈,判断sql语句具体在代码的位置;所述日志分析子系统包括性能瓶颈分析模块、线程执行分析模块和内存分析模块;其中,性能瓶颈分析模块,基于Jprofiler工具通过分析一段时间的线程日志,判断程序执行的瓶颈点;线程执行分析模块,基于longtime工具统计出程序连续的执行时间;内存分析模块,分析JVM内存,根据内存的老年代的变化曲线判定系统是否已经内存溢出,计算老年代的占比,若垃圾回收后占比大于90%,则表示内存即将溢出,进行预警,若垃圾回收后占比大于99%,则系统已经宕机,需要立即通知或强制干预重启系统;所述警告、干预子系统,包括警告模块和强制干预模块,其中,警告模块通过SMS短信发送代理接口进行短信的提醒发送,通过办公系统提供的webservice接口动态创建内部流程进行提醒;强制干预模块通过Resin提供的Resin.restart() 方法进行web应用服务器的重启操作。...

【技术特征摘要】
1.一种办公管理系统性能监控平台,其特征在于:包括日志采集子系统、日志分析子系统和警告、干预子系统;所述日志采集子系统分为内存日志采集模块、线程日志采集模块和SQL执行日志采集模块;其中,内存日志采集模块,使用JVM Management API采集当前系统的JVM的内存信息,采集的信息包括:采集时间、临时代、年轻代、年老代、持久代、各代GC的次数和时间;线程日志采集模块,通过ManagementFactory.getThreadMXBean().getAllThreadIds() 可得到所有线程的信息;SQL执行日志采集模块,采用java代理,动态修改字节码,在保障类的excelSql的方法前后加上统计代码,统计SQL语句执行的时间,以及返回的数据量,通过两个过滤条件来过滤日志:时间超过10秒的sql和返回数据量操作10000条的sql,其中10和10000都是可配置的,打印日志的同时打印...

【专利技术属性】
技术研发人员:韦利东
申请(专利权)人:上海泛微网络科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1