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

测试代码如下:

app.js

  1. require('newrelic')
  2. const crypto = require('crypto')
  3. const express = require('express')
  4. const app = express()
  5. const createUser = require('./routes/users').createUser
  6. app.get('/', (req, res) => {
  7. const salt = crypto.randomBytes(128).toString('base64')
  8. const hash = crypto.pbkdf2Sync(String(Math.random()), salt, 10000, 512, 'sha512').toString('hex')
  9. res.json({ salt, hash })
  10. })
  11. app.get('/error', (req, res, next) => {
  12. next(new Error('error!!!'))
  13. })
  14. app.post('/users/:user', async (req, res) => {
  15. const user = await createUser(req.params.user, 18)
  16. res.json(user)
  17. })
  18. app.listen(3000)

routes/users.js

  1. const Mongolass = require('mongolass')
  2. const mongolass = new Mongolass('mongodb://localhost:27017/test')
  3. const User = mongolass.model('User')
  4. exports.createUser = async function (ctx) {
  5. const name = ctx.query.name || 'default'
  6. const age = +ctx.query.age || 18
  7. const user = await createUser(name, age)
  8. ctx.status = user
  9. }
  10. async function createUser (name, age) {
  11. const user = (await User.create({
  12. name,
  13. age
  14. })).ops[0]
  15. return user
  16. }

5.1.1 使用 NewRelic

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

NewRelic - 图1

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

NewRelic - 图2

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

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

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

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

NewRelic - 图3

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

类似的其他 APM 有:

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

5.1.2 参考链接

上一节:4.5 supervisor-hot-reload

下一节:5.2 Elastic APM