あまり日本語の記事も見当たらなかったので、New Relicの公式ドキュメントを見ながら作業をした備忘録となります。
New Relic APMを追加
herokuコマンドでも、画面のConfigure Add-onsからでもよいので、New Relicのアドオンを追加します。
(後でNew Relicの管理画面に行くので、画面からの方が楽かも…?)
Java Agentを導入
通常であればキーはnewrelic.ymlをjarと同じディレクトリに配置して読み込ませますが、キーのgit管理を避けるためJava Agentを導入します。
アプリ名を登録
NEW_RELIC_APP_NAMEというキーでHerokuのConfig Varsにアプリ名を登録します。
settings.gradleや、pomならartifactIdに記載したものでよいと思います。
heroku config:set NEW_RELIC_APP_NAME="APP_NAME"
キーを登録
キーはNew Relicの管理画面から取得できます。
APMを選択して
Javaを選択するとこの画面になるので、「Reveal license key」を押下してキーを取得します。
そしてNEW_RELIC_LICENSE_KEYというキーで登録します。
heroku config:set NEW_RELIC_LICENSE_KEY="LICENSE_KEY"
Gradle設定
Mavenの場合は公式ドキュメント側に記載されている通りで、Gradleの場合は以下で動作を確認できました。
dependencies {
.....
compileOnly 'com.newrelic.agent.java:newrelic-java:5.7.0'
}
(記載時点では5.7.0が最新でした。)
newrelic.jar導入
jarは先ほどのNew Relicの管理画面から取得してきます。
リンクを押下するとzipが落ちてくるので、解凍して「newrelic.jar」のみプロジェクトのドコかに配置します。
(Procfileに記載するので、どこでもいいと思います。)
Procfileの変更
最後にProcfileにjavaagentオプションを追加します。
例えばSpringbootで、newrelic.jarをプロジェクト直下に配置した場合は
web: java -jar build/libs/app-0.0.1-SNAPSHOT.jar
↓↓↓↓↓
web: java -javaagent:newrelic.jar -jar build/libs/app-0.0.1-SNAPSHOT.jar
となります。
deploy
あとはデプロイすれば、最長でも5分後にはこのような画面となり、アプリを選択するとWeb transactions timeなどが見れるようになります。
お疲れ様でした。
余談
思ったよりもメモリを使うようです。。。
私のアプリの場合はSpring Batchも動かしているからか、**Error R14 (Memory quota exceeded)**が発生したため、運用を諦めました。
ジワジワと使用されるメモリが増えてきます。