您好,登錄后才能下訂單哦!
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所捕獲的超時請求如下:
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。