摘要: 性能问题也是BUG,也须要监控。javascript
Fundebug是专业的应用异常监控平台,咱们Node.js插件fundebug-nodejs能够提供全方位的异常监控,支持Express、Koa以及Hapi框架。html
从用户的角度理解,性能问题某种程度上也是BUG,它多是数据库的索引问题,多是代码算法问题,也多是业务逻辑的设计有问题。为了帮助你们快速定位性能BUG,fundebug-nodejs插件更新至0.2.0,支持监控Express慢请求。java
不过,Fundebug暂时无心于提供全面的性能监控服务,咱们将继续专一于BUG监控。node
监控Express慢请求,须要配置阈值httpTimeout,而且添加ExpressTimeoutHandler中间件。git
fundebug.httpTimeout = 1000; app.use(fundebug.ExpressTimeoutHandler());
注意,Fundebug的慢请求监控中间件ExpressTimeoutHandler必须放在其余中间件以前。github
这样,全部花费时间超过阈值1000ms的请求都会上报到Fundebug。算法
关于Express如何接入Fundebug异常监控服务,不妨查看咱们的Demo项目fundebug-express-demo。数据库
const express = require("express"); const app = express(); const port = 5000; const Promise = require("bluebird"); const fundebug = require("fundebug-nodejs"); fundebug.apikey = "APIKEY"; fundebug.httpTimeout = 1000; app.use(fundebug.ExpressTimeoutHandler()); app.get("/error", () => { throw new Error("test"); }); app.get("/timeout", async (req, res) => { await Promise.delay(1500); res.sendStatus(200); }); app.use(function(err, req, res, next) { res.status(500); next(err); }); app.use(fundebug.ExpressErrorHandler); app.listen(port, () => console.log(`Example app listening on port ${port}!`));
其中,ExpressTimeoutHandler必须放在其余中间件以前,而ExpressErrorHandler必须放在其余中间件以后。express
Fundebug所捕获的超时请求以下:npm
Fundebug专一于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有阳光保险、核桃编程、荔枝FM、掌门1对一、微脉、青团社等众多知名企业。欢迎你们免费试用!
转载时请注明做者Fundebug以及本文地址:
https://blog.fundebug.com/2019/07/30/fundebug-nodejs-0-2-0/