前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求

Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求

原创
作者头像
Fundebug
修改2019-07-31 10:29:12
2.2K0
修改2019-07-31 10:29:12
举报
文章被收录于专栏:FundebugFundebug

摘要: 性能问题也是BUG,也需要监控。

Fundebug后端Node.js异常监控服务

Fundebug是专业的应用异常监控平台,我们Node.js插件fundebug-nodejs可以提供全方位的异常监控,支持ExpressKoa以及Hapi框架。

从用户的角度理解,性能问题某种程度上也是BUG,它可能是数据库的索引问题,可能是代码算法问题,也可能是业务逻辑的设计有问题。为了帮助大家快速定位性能BUG,fundebug-nodejs插件更新至0.2.0,支持监控Express慢请求。

不过,Fundebug暂时无意于提供全面的性能监控服务,我们将继续专注于BUG监控。

监控Express慢请求

监控Express慢请求,需要配置阈值httpTimeout,并且添加ExpressTimeoutHandler中间件。

代码语言:txt
复制
fundebug.httpTimeout = 1000;
app.use(fundebug.ExpressTimeoutHandler());

注意,Fundebug的慢请求监控中间件ExpressTimeoutHandler必须放在其他中间件之前。

这样,所有花费时间超过阈值1000ms的请求都会上报到Fundebug。

fundebug-express-demo

关于Express如何接入Fundebug异常监控服务,不妨查看我们的Demo项目fundebug-express-demo

代码语言:txt
复制
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所捕获的超时请求如下:

版权声明

转载时请注明作者Fundebug以及本文地址:

https://blog.fundebug.com/2019/07/30/fundebug-nodejs-0-2-0/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fundebug后端Node.js异常监控服务
  • 监控Express慢请求
  • fundebug-express-demo
  • 版权声明
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档