как настроить newrelic в приложении node + koa

У меня есть приложение, использующее node.js, koa, koa-router. Я хочу добавить newrelic в свое приложение, но оно не поддерживает koa.

Поэтому я попытался использовать koa-newrelic (https://github.com/AfterShip/koa-newrelic) но все равно не работает.

я все еще получаю /* для всех транзакций.

у кого есть опыт по этому поводу?


person Alongkorn Chetasumon    schedule 11.08.2016    source источник
comment
Вы пробовали koa-newrelic или koa-router-newrelic?   -  person Bhoomtawath Plinsut    schedule 11.01.2017
comment
да, но это не работает в то время. Я не уверен, работает это сейчас или нет.   -  person Alongkorn Chetasumon    schedule 11.01.2017


Ответы (1)


мой коллега помогает мне решить эту проблему.

решение ниже

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.обновите основной 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
person Alongkorn Chetasumon    schedule 28.09.2016