2016-08-11 3 views
0

node.js、koa、koa-routerを使用するアプリケーションがあります。 私のアプリケーションにnewrelicを追加したいのですが、koaをサポートしていません。ノード+ koaアプリケーションでnewrelicを設定する方法

私はkoa-newrelic(https://github.com/AfterShip/koa-newrelic)を利用しようとしましたが、まだ動作しません。

私はまだすべての取引で/*を取得します。

これについての経験はありますか?

+0

よう

1.declareカスタムKOA新しい遺物を下回っているあなたはKOA-newrelicまたはKOAを試してみました-router-newrelic? –

+0

しかし、それはその時に動作しません。私はそれが今働いているかどうかわからない。 –

答えて

1

私の同僚は私にこの問題の解決に役立ちます。

ソリューションはここ

//****************** 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 
関連する問題