Node.js 调试指南

 主页   资讯   文章   代码   电子书 

NewRelic 是一个老牌的应用性能监测工具,提供 14 天免费试用,本节将讲解如何使用 NewRelic 监控 Node.js 程序的性能。

测试代码如下:

app.js

require('newrelic')

const crypto = require('crypto')
const express = require('express')
const app = express()
const createUser = require('./routes/users').createUser

app.get('/', (req, res) => {
  const salt = crypto.randomBytes(128).toString('base64')
  const hash = crypto.pbkdf2Sync(String(Math.random()), salt, 10000, 512, 'sha512').toString('hex')
  res.json({ salt, hash })
})

app.get('/error', (req, res, next) => {
  next(new Error('error!!!'))
})

app.post('/users/:user', async (req, res) => {
  const user = await createUser(req.params.user, 18)
  res.json(user)
})

app.listen(3000)

routes/users.js

const Mongolass = require('mongolass')
const mongolass = new Mongolass('mongodb://localhost:27017/test')
const User = mongolass.model('User')

exports.createUser = async function (ctx) {
  const name = ctx.query.name || 'default'
  const age = +ctx.query.age || 18
  const user = await createUser(name, age)
  ctx.status = user
}

async function createUser (name, age) {
  const user = (await User.create({
    name,
    age
  })).ops[0]
  return user
}

5.1.1 使用 NewRelic

首先,注册一个 NewRelic 账号。创建一个应用,如下所示:

选择 APM,进入下一步,选择 Node.js 应用,并拿到 license key:

在 Node.js 中使用 NewRelic 的步骤如下:

$ npm i newrelic --save # 安装 NewRelic 的 Node.js SDK
$ cp node_modules/newrelic/newrelic.js . # 将默认配置文件拷贝到项目根目录下

修改 newrelic.js,app_name 填写我们的应用名(例如:api),license_key 填写刚才生成的 license key。

启动测试程序,并发起几个请求,稍等几分钟,NewRelic 的后台将会收到并展示一些数据(例如:吞吐量,请求的 Urls,错误率、Apdex score 等),如下所示:

试用版的功能有限,升级到付费版可解锁更多功能,例如:数据库分析、错误分析甚至 Node.js VM 监控(CPU、内存、GC、Event Loop)等等。

类似的其他 APM 有:

用法大同小异,这里就不一一介绍了。

5.1.2 参考链接

  • https://newrelic.com/

上一节:4.5 supervisor-hot-reload

下一节:5.2 Elastic APM