如何在node + koa app上配置newrelic
how to configure newrelic on node + koa app
我有一个使用 node.js、koa、koa-router 的应用程序。
我想在我的应用程序中添加newrelic,但它不支持koa。
所以我尝试使用 koa-newrelic (https://github.com/AfterShip/koa-newrelic) 但它仍然不起作用。
我仍然得到 /*
的所有交易。
谁有这方面的经验?
我的同事帮我解决了这个问题。
解决方法如下
1.declare 在这里自定义 koa 新遗物
//****************** myKoaNewRelic.js *****************
'use strict'
module.exports = function monitor(router, newrelic) {
return function* monitor(next) {
const route = this.params[0]
for (const layer of router.stack) {
if (layer.path !== '(.*)') {
const method = (layer.methods.indexOf('HEAD') !== -1) ? layer.methods[1] : layer.methods[0]
if (route.match(layer.regexp) && method === this.request.method) {
newrelic.setControllerName(layer.path, method)
}
}
}
yield next
}
}
2.update 主要 index.js 像这样
//****************** index.js *****************
'use strict'
const newrelic = require('newrelic')
const koaNewrelic = require('./myKoaNewRelic')
const app = require('koa')()
const router = require('koa-router')()
router.use(koaNewrelic(router, newrelic))
// DO SOME STUFF
我有一个使用 node.js、koa、koa-router 的应用程序。 我想在我的应用程序中添加newrelic,但它不支持koa。
所以我尝试使用 koa-newrelic (https://github.com/AfterShip/koa-newrelic) 但它仍然不起作用。
我仍然得到 /*
的所有交易。
谁有这方面的经验?
我的同事帮我解决了这个问题。
解决方法如下
1.declare 在这里自定义 koa 新遗物
//****************** myKoaNewRelic.js *****************
'use strict'
module.exports = function monitor(router, newrelic) {
return function* monitor(next) {
const route = this.params[0]
for (const layer of router.stack) {
if (layer.path !== '(.*)') {
const method = (layer.methods.indexOf('HEAD') !== -1) ? layer.methods[1] : layer.methods[0]
if (route.match(layer.regexp) && method === this.request.method) {
newrelic.setControllerName(layer.path, method)
}
}
}
yield next
}
}
2.update 主要 index.js 像这样
//****************** index.js *****************
'use strict'
const newrelic = require('newrelic')
const koaNewrelic = require('./myKoaNewRelic')
const app = require('koa')()
const router = require('koa-router')()
router.use(koaNewrelic(router, newrelic))
// DO SOME STUFF