[关闭]
@zhangning16 2018-01-30T08:58:20.000000Z 字数 2021 阅读 412

Node服务接入ump监控系统教程

Node


总览

UMP地址
目前接入的监控有:
1. URL存活状态。
2. 服务器性能监控
3. 接口的调用记录,成功率,响应时长。
4. 系统存活监控

URL存活状态监控

监控介绍:URL存活状态监控可以用来帮助我们判断接口的健康程度,主要用来判断接口是否存活,以及每次的响应时间。
接入流程
1. url 1
2. url 1
3. url 1
4. url 1
5. 创建成功之后,会出现相应的列表项,点击该项,会出现如图所示的列表,这样该接口就成功的接入了url 1

服务器性能监控

监控介绍:可以查看cup使用率,内存使用率,以及网络指标,硬盘指标,容器指标等服务器相关的信息。
接入流程

系统存活监控

监控介绍:监控系统是否存活。
接入流程:无需手动接入,直接点击查看

接口调用监控

监控介绍:包括接口的调用记录,成功率,响应时长等。
接入流程
方法监控接入流程包括两部分:ump里的设置,node代码里的设置

第一部分:ump系统里的操作




第二部分:需要在代码层面接入。

整个流程很简单,按照ump要求的格式,输出日志就行。每条日志的格式如下:

  1. {
  2. "time":"该条日志产生的时间",
  3. "key":"你再ump里面配置的key,每个接口都要配置一个独一无二的umpKey",
  4. "hostname": "你的服务器ip",
  5. "processState": "接口调用是否正常,0是正常,1是异常,用来计算接口可用率",
  6. "elapsedTime": "这次请求的响应耗时"
  7. }

step1. 第一步对Date函数进行扩展,转换成日志需要的时间 格式:yyyyMMddHHmmssSSS

  1. Date.prototype.Format = function (fmt) { //author: tony
  2. var o = {
  3. "M+": this.getMonth() + 1, //月份
  4. "d+": this.getDate(), //日
  5. "h+": this.getHours(), //小时
  6. "m+": this.getMinutes(), //分
  7. "s+": this.getSeconds(), //秒
  8. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  9. "S": this.getMilliseconds() //毫秒
  10. };
  11. if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1,(this.getFullYear() + "").substr(4 - RegExp.$1.length));
  12. for (var k in o)
  13. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  14. return fmt;
  15. };

step2. 写一个公用方法,使用时需要根据你的ip,修改这段代码里的‘hostname’字段。这个方法做了一件事:往日志文件('/export/home/tomcat/UMP-Monitor/logs/ceshiapitp.log')写记录,具体的umpkey,processState,elapsedTime在调用时以参数传入。注意:日志文件命名需要以tp.log结尾。

  1. // 按照ump接入格式,进行写操作,参数依次是,umpKey, 接口是否成功,相应时间
  2. const logUmp = (umpKey, isOK, useTime) => {
  3. fs.appendFile(
  4. '/export/home/tomcat/UMP-Monitor/logs/ceshiapitp.log',
  5. `{"time":"${(new Date()).Format("yyyyMMddhhmmssS")}","key":"${umpKey}","hostname":"10.187.119.93","processState":"${isOK}","elapsedTime":"${useTime}"}\n`,
  6. (err) => {
  7. if (err) throw err;
  8. console.log('The file has been saved!');
  9. }
  10. );
  11. }
  12. };

step3. 在需要接入监控的地方调用写日志方法(logUmp),比如这样:

  1. logUmp('smart.assistant.api.getGoods.json',"0",response.elapsedTime);

step4.
这时候调用我们的接口,就会产生相应的ump日志,我们在ump里就可以看到可视化的数据图。这时候就说明我们的方法接入成功了!比如这样:

step5.
如果看不到数据,可以去http://lt-desktop.jd.com/#?ip=你的服务器ip,查看/export/home/tomcat/UMP-Monitor/logs/ceshiapitp.log这个ump日志文件,看是否写入数据成功.正确的日志格式如图:
umplog

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注