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慢请求
监控Express慢请求,需要配置阈值httpTimeout,并且添加ExpressTimeoutHandler中间件。
fundebug.httpTimeout = 1000;
app.use(fundebug.ExpressTimeoutHandler());
注意,Fundebug的慢请求监控中间件ExpressTimeoutHandler必须放在其他中间件之前。
这样,所有花费时间超过阈值1000ms的请求都会上报到Fundebug。
fundebug-express-demo
关于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所捕获的超时请求如下:

参考
关于Fundebug
Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有阳光保险、核桃编程、荔枝FM、掌门1对1、微脉、青团社等众多知名企业。欢迎大家免费试用!

版权声明
转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2019/07/30/fundebug-nodejs-0-2-0/
Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求的更多相关文章
- Fundebug前端JavaScript插件更新至1.2.0
		
摘要: Fundebug的前端JavaScript错误监控插件更新至1.2.0:支持监控WebSocket连接错误:修复了监控unhandledrejection错误的BUG,即未用catch处理的P ...
 - Fundebug 微信小游戏异常监控插件更新至 0.5.0,支持监控 HTTP 慢请求
		
摘要: 支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug是专业微信小游戏 BUG 监控服务,可以第一时间捕获线上环境中小游戏的异常.错误或者 BUG, ...
 - Fundebug前端异常监控插件更新至 1.9.0,支持监控 HTTP 慢请求
		
摘要: 1.9.0新增 httpTimeout 配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug提供专业的前端异常监控服务,可以第一时间捕获 ...
 - Fundebug前端JavaScript插件更新至1.8.0,兼容低版本的Android浏览器
		
摘要: 兼容低版本Android浏览器,请大家及时更新. Fundebug前端BUG监控服务 Fundebug是专业的程序BUG监控平台,我们JavaScript插件可以提供全方位的BUG监控,可以帮 ...
 - Fundebug微信小程序错误监控插件更新至1.1.0,新增test()与notifyHttpError()方法
		
摘要: 1.1.0新增fundebug.test()和fundebug.notifyHttpError()方法,同时大小压缩至15K. Fundebug是专业的小程序BUG监控服务,可以第一时间为您捕 ...
 - Fundebug前端JavaScript插件更新至1.6.0,新增test()方法用于测试
		
摘要: 1.6.0新增fundebug.test()方法用于测试,请大家及时更新. 默认情况下,Fundebug 插件能够自动捕获未处理的错误(uncaught error).另外,开发者也可以通过使 ...
 - Fundebug上线Node.js错误监控啦
		
作为全栈JavaScript错误实时监测平台,Fundebug的Node.js实时错误监测服务上线啦,我们能够帮助开发者及时,高效地发现并且解决Node.js错误,从而提高开发效率,并提升用户体验. ...
 - 【转】高效利用Fundebug追踪Node.js日志发现问题
		
不管使用哪个语言做项目开发,我们都会自觉地用日志来做相关记录.比如,HTTP请求,报错信息.某些关键节点埋点记录等等.在Java中有大名鼎鼎的Log4J,于是在Node.js中也有了log4js. 日 ...
 - Node.js 从零开发 web server博客项目[express重构博客项目]
		
web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...
 
随机推荐
- 使用Urllib下载图片
			
urllib下载图片 urllib3下载图片 Urllib下载图片 from urllib import request import re import os # 妹子图首页 下载首页的几张 url ...
 - 不懂这个别说是刷机高手!安卓Recovery你知多少
			
[PConline 应用]玩过安卓刷机的朋友相信都听说过Recovery,在刷机前,第一步往往是解锁手机,第二部就是刷入Recovery了.利用Recovery读取第三方Rom并刷入系统,才能实现刷机 ...
 - python 连接数据库,查询结果写入数据到excel
			
使用Python链接数据库查询数据,并将查询结果写入到Excel中,实现方法上主要有两步,第一,查数据,第二,写Excel. 一.导入需要的包 import time import xlwt from ...
 - .gitignore 文件没起作用
			
场景 修改了.gitignore文件, 但是查看状态还是没有忽略 解决 *. 清除git缓存, 注意最后有一个点 git rm -r --cache . 再之后就可以正常使用了, 基本恢复正常, 被忽 ...
 - gn gen ninja
 - 接口测试中GET和POST两种基本HTTP请求方法的区别
			
面试时,可以回答(一般答前4条就行): GET参数通过url传递,POST放在request body中 GET请求在url中传递的参数是有长度限制的,而POST没有 GET比POST更不安全,因为参 ...
 - Java:String,int相互转化
			
int转String int a: a + “” String.valueOf(a) Interger.toString(a) 一般使用以上几种方法进行转化 第一种方法效率不好,ja ...
 - blue bossa
			
blue bossa
 - 【BZOJ3876】[AHOI2014&JSOI2014] 支线剧情(无源汇有上下界网络流)
			
点此看题面 大致题意: 有一张\(DAG\),经过每条边有一定时间,从\(1\)号点出发,随时可以返回\(1\)号点,求经过所有边的最短时间. 无源汇有上下界网络流 这是无源汇有上下界网络流的板子题. ...
 - Asp.Net Core AsyncLocal 异步上下文
			
引子 阅读以下代码,并尝试分析 代码解析 在主线程中,线程Id为1,为线程变量赋值 变量==d6ff 开启一个新的task,此时线程Id为4,变量==d6ff,并调用Task1 开启一个同步Task3 ...