るいすのブログ

オタクエンジニアの雑記

Systemdで動かすNode.jsでnewrelic agentを使う


また Systemd の話です。

https://luispc.com/memo/2017/08/01/9481

https://luispc.com/memo/2017/08/19/9542

今回はバックエンドに newrelic を導入しようとしたところ、 うまく動作しなかったため解決策を載せておきます。

 

原因

Systemd のせいです。 newrelic のモジュールはアプリケーションフォルダに、ログファイルを吐き出すんですが モジュールがこれを見つけることができない(cgroupsのせいで /newrelic-log.txt を見る)ため

 

解決

newrelicのサイトに行くとnewrelic.jsを配置しないといけないわけですが

exports.config = {
  app_name: [process.env.NEWRELIC_APP_NAME],
  license_key: process.env.NEWRELIC_LICENSE_KEY,
  logging: {
    level: 'info'
  }
};

こんな感じになってると思います。

モジュールを見ていくと分かったんですけど これ以外にも設定できる項目がたくさんあります。

今回はログをきちんと見つけられるように絶対パスで指定します。

exports.config = {
  app_name: [process.env.NEWRELIC_APP_NAME],
  license_key: process.env.NEWRELIC_LICENSE_KEY,
  logging: {
    level: 'info',
    filepath: '/home/node/Web-API/newrelic_agent.log', ←追加
  }
};