扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Fundebug后端Node.js插件更新至0.2.0是否支持监控Express慢请求,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的北碚网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
摘要:性能问题也是BUG,也需要监控。
Fundebug后端Node.js异常监控服务
Fundebug是专业的应用异常监控平台,我们Node.js插件fundebug-nodejs可以提供全方位的异常监控,支持Express、Koa以及Hapi框架。
从用户的角度理解,性能问题某种程度上也是BUG,它可能是数据库的索引问题,可能是代码算法问题,也可能是业务逻辑的设计有问题。为了帮助大家快速定位性能BUG,fundebug-nodejs插件更新至0.2.0,支持监控Express慢请求。
不过,Fundebug暂时无意于提供全面的性能监控服务,我们将继续专注于BUG监控。
监控Express慢请求,需要配置阈值httpTimeout,并且添加ExpressTimeoutHandler中间件。
fundebug.httpTimeout = 1000; app.use(fundebug.ExpressTimeoutHandler());
注意,Fundebug的慢请求监控中间件ExpressTimeoutHandler必须放在其他中间件之前。
这样,所有花费时间超过阈值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必须放在其他中间件之后。
Fundebug所捕获的超时请求如下:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流