bearcat-jstrace 让检测线上方法调用性能成为可能

Bearcat-Jstrace是一款基于jstrace和Bearcat AOP的高性能监控工具,能够动态地跟踪Node.js应用中的方法调用性能。通过简单的配置即可监控特定的方法调用,如所有以Dao结尾的数据访问层方法,帮助开发者轻松地定位性能瓶颈。

概述

tj 实现了一个 jstrace,可以用于动态的对node进行类似于dtrace,ktap的trace分析,可以动态检测线上api接口的访问性能,用于express中tj也实现了一个中间件express-jstrace,但是express-jstrace更像一个filter,只能检测req res的性能,通过bearcat提供的强大的AOP支持, 让监控线上方法调用性能成为可能

实现

bearcat-jstrace 即是基于jstrace和bearcat aop的实现, 使用起来也是相当的简单,你只需要覆盖定义下 bearcat-jstrace 内部实现的 jstraceAspect 的AOP pointcut 定义即可实现定制化,比如你想监控所有的Dao方法调用(这里有一个归约就是所有的Dao方法命名以Dao结尾), 那么你需要在 bearcat 的 context.json 里面这样配置即可:

"beans": [{ "id": "jstraceAspect", "func": "node_modules.bearcat-jstrace.lib.aspect.jstraceAspect", "aop": [{ "pointcut": "around:\\w+Dao.*?", "advice": "doJstrace", "runtime": true }] }]

默认情况下会对所有的Service方法进行监控

Probes

默认的jstrace探测点命名为:

  • bearcat:method:start
  • bearcat:method:end

监测使用

编写trace.js

var m = {}; exports.local = function(traces) { traces.on('bearcat:method:start', function(trace) { console.log(JSON.stringify(trace)); }); traces.on('bearcat:method:end', function(trace) { console.log(JSON.stringify(trace)); }); };
npm install -g jstrace
jstrace trace.js

即可进行监控

Note: 默认情况下监控的是方法, trace 里有method代表监控的方法, 监控的对象默认是无的,如果你想有监控的对象,那么需要在被监控的目标对象中,定义traceName, 比如

HelloService.prototype.traceName = "HelloService";

**TODO
**

  • 可视化与数据分析统计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值