Fundebug后端Node.js插件更新至0.2.0是否支持監(jiān)控Express慢請求,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站制作、成都網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的北碚網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
摘要:性能問題也是BUG,也需要監(jiān)控。
Fundebug后端Node.js異常監(jiān)控服務
Fundebug是專業(yè)的應用異常監(jiān)控平臺,我們Node.js插件fundebug-nodejs可以提供全方位的異常監(jiān)控,支持Express、Koa以及Hapi框架。
從用戶的角度理解,性能問題某種程度上也是BUG,它可能是數(shù)據(jù)庫的索引問題,可能是代碼算法問題,也可能是業(yè)務邏輯的設計有問題。為了幫助大家快速定位性能BUG,fundebug-nodejs插件更新至0.2.0,支持監(jiān)控Express慢請求。
不過,F(xiàn)undebug暫時無意于提供全面的性能監(jiān)控服務,我們將繼續(xù)專注于BUG監(jiān)控。
監(jiān)控Express慢請求,需要配置閾值httpTimeout,并且添加ExpressTimeoutHandler中間件。
fundebug.httpTimeout = 1000; app.use(fundebug.ExpressTimeoutHandler());
注意,F(xiàn)undebug的慢請求監(jiān)控中間件ExpressTimeoutHandler必須放在其他中間件之前。
這樣,所有花費時間超過閾值1000ms的請求都會上報到Fundebug。
關于Express如何接入Fundebug異常監(jiān)控服務,不妨查看我們的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所捕獲的超時請求如下:
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。