系统监控需求
功能监控指标 | 性能监控指标 | 系统监控指标 |
请求发生时间 | 每(一定时间)内接受的请求数目 | CPU利用率 |
调用模块名称 | 每(一定时间)内成功处理的请求数目 | 内存利用率 |
调用者 | 每(一定时间)内处理失败的请求数目 | 网络 |
方法调用顺序 | 每(一定时间)总的请求数量 | 硬盘 |
方法调用花费时间 | 每(一定时间)请求平均响应时间 | |
方法入参 | ||
方法执行结果 |
这里先讲解接口日志:
格式
20150325000810429,null,HandSunFund,marketQuery,根据申请编号查询行情1 S006,9,success,成功,UserID=null,arguments=[{fundcode=700007| startdate=20150223| applyrecordno=30| enddate=20150325| function=S006}],returning={returnlist=null| message=未知错误| totalrecords=0| code=1000}
20150325000810439,null,HandSunFund,querySupermoneymarket,根据申请编号查询行情2 (S059),31,success,成功,UserID=null,arguments=[{fundcode=700007| startDate=20150223| recordNo=30| endDate=20150325| function=S059}],returning={returnlist=null| message=未知错误| totalrecords=0| code=1000}
20150325001810528,null,HandSunFund,marketQuery,根据申请编号查询行情3 S006,11,success,成功,UserID=null,arguments=[{fundcode=700007| startdate=20150223| applyrecordno=30| enddate=20150325| function=S006}],returning={returnlist=null| message=未知错误| totalrecords=0| code=1000}
20150325001810540,null,HandSunFund,querySupermoneymarket,根据申请编号查询行情4 (S059),51,success,成功,UserID=null,arguments=[{fundcode=700007| startDate=20150223| recordNo=30| endDate=20150325| function=S059}],returning={returnlist=null| message=未知错误| totalrecords=0| code=1000}
以下为实现方式:
一、配置spring的切面声明
在文件applicationContext-server.xml中添加
<aop:aspectj-autoproxy/>
二、引入以下几个日志类
LogAspect.java
@Aspect
@Component
@SuppressWarnings("rawtypes")
public class LogAspect {
//@Before("@target(logMoAnn)&&@annotation(logMeAnn)")
protected void before(JoinPoint pjp,LogMonitorable logMoAnn,LogMethod logMeAnn,LogPo logPo){
try
{
//LogPo基类属性设置
setCommonLogPropBeforeMethod(pjp,logMoAnn,logMeAnn,logPo);
//LogPo扩展属性设置
logPo.setPropertiesBeforeMethod(pjp,logMoAnn,logMeAnn);
}catch( Exception ex){
ex.printStackTrace();
}
}
//@AfterReturning(value="@target(logMoAnn)&&@annotation(logMeAnn)",returning="rtn")
protected void afterMethod(JoinPoint pjp,LogMonitorable logMoAnn,LogMethod logMeAnn, Object rtn,LogPo logPo){
try{
//LogPo基类属性设置
setCommonLogPropAfterMethod(pjp,logPo,logMeAnn,rtn);
//LogPo扩展属性设置
logPo.setPropertiesAfterReturning(pjp,logMoAnn,logMeAnn,rtn);
LogWriter.write(logPo);
}catch(Exception ex){
ex.printStackTrace();
}
}
//@AfterThrowing(value="@target(logMoAnn)&