はじめに
- 基本的に無料で試せます。
- 間違っている部分があれば教えてください。
- 「もっとこうやるといいよ」や「こんなのもあるよ」と教えてもらえると喜びます
今回やること
アプリケーションエラー発生 -> New Relicが検知 -> Jiraチケット作成
もう少し詳しく
- New Relic APMでエラー発生
- New Relic Alert Conditionがトリガーになって
- New Relic Workflowが起動 -> Webhook(HTTPリクエスト)を自動で発行
- Jira チケット作成!
制限事項
- Jira Softwareの無料プランの都合でユーザー数10人
- ストレージは2GBまで
- New Relicの無料プランの都合でデータ保持期間(最大13日)
- 通知数も制限があるみたい
PoCなので一旦OK
手順
TL;DR
4ステップ
- JiraのアカウントとAPIトークン作成
- Spring Bootプロジェクト作成
- New Relicのアカウント作成とアプリ連携
- New RelicとJira連携
Jira側の設定
Jira Software アカウント登録(無料)
- https://www.atlassian.com/ja/software/jira にアクセス
- 適当なメールアドレスでサインアップ
- 「Jira Software」の「Free」プランを選ぶ(最大10ユーザー)
- プロジェクト作成(例:名前 PoC, key POC)
- 作成されたらURLを確認(例:https://your-domain.atlassian.net)
(ブラウザのURLに書いてる)
このURLが Jira APIのベースURL(Webhook POST先)になります!
JiraのAPIトークン作成
- 以下のURLにアクセス(Atlassian公式)
https://id.atlassian.com/manage-profile/security/api-tokens - 「APIトークンを作成」をクリック
- ラベルに NewRelicPoC などと入力して作成
- トークン期限は適当に入力
- トークンが表示されるので、必ずコピーして控えておく
後から再表示できません
監視するSpring Bootアプリケーション作成
Springアプリケーション作成
アクセスしたらエラーを吐くようにする
1.build.gradleにnewrelicを追加
implementation 'com.newrelic.agent.java:newrelic-api:8.10.0'
2.com.example.demoディレクトリにTestController.javaを作る
// TestController.java
package com.example.demo;
import com.newrelic.api.agent.NewRelic;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test-error")
public String testError() {
try {
throw new RuntimeException("PoCビジネスエラー発生!");
} catch (Exception e) {
NewRelic.noticeError(e); // New Relic に通知
throw e;
}
}
}
JARファイル作成
./gradlew bootRun # 起動
./gradlew bootJar # JARファイルを生成
New Relic側の設定
New Relic アカウント登録(無料)
- https://newrelic.com/signup にアクセス
- メールアドレス・パスワードを登録
- 「Standard(無料プラン)」を選択
国:Japan でOK(電話番号は任意)
アプリ→New Relic連携
監視するアプリケーションの設定
今回はSpring bootアプリケーションにします。
手順はそれほど変わらないので作りたいアプリに応じて進めてください。
基本は画面ぽちぽちするだけなので読み飛ばしてもOK。APM画面まできたら次のステップへ行ってください。
-
Tell us about your stackで「Java」を選択し、Nextボタンをクリック
-
Instrument your hostsはサーバー監視。今回はスキップする
Don't have access to hostをクリック

-
Select instrumentation method
どの方法でJava AgentをSpring Bootアプリに導入するか
「On a host」 を選んで、ローカルで Spring Boot アプリに Java Agent を直接読み込ませる方式にする

-
Enter your credentials
license keyやuser key
両方Create a new keyを選択し、キーを控えておく -
Tell us about your application
好みで選択してください。私の環境はMacなのでLinuxを選択。
Choose your frameworkはSpring Bootにする -
Choose your download option
Java Agentのダウンロードするステップ。
指示通りでOK。 -
Finish your installation (Spring Boot)
表示されているjavaコマンドをターミナルで実行
java -javaagent:/full/path/to/newrelic.jar -jar app.jar
- /full/path/to/newrelic.jarにはnewrelic.jarフルパスを入れること
手順通りなら/opt/newrelic/newrelic.jarになるはず - app.jarはちゃんと自分の作ったアプリのjar名を指定すること
- Optional: Connect logs and infrastructure
スキップ - Optional: Connect your repository
スキップ - Test the connection
java -javaagent:/opt/newrelic/newrelic.jar -jar demo-0.0.1-SNAPSHOT.jar
などでアプリを起動した状態でテストする。
Infrastructure agentやOn-host logsは、今は無視してOK。
(オプションスキップしてるので)

アプリ→New Relic連携確認
New Relic側でエラーが出ているか確認する
アプリを起動させてアクセスする
curl http://localhost:8080/test-error
New RelicのAPM&Services Errorsでこんな風に出ていたらOK
New RelicとJira連携
New Relicでエラー検知 -> Jiraでチケット作成するようにする
アラートポリシーの作成
- 左メニューのAlerts選択 -> Create alert condition
- Use guide mode
- Tell us where to look
デフォルトでOK - Tell us what to watch
- Select the entities to watch (max 20)
自分の作ったアプリを選択 - Select a metric to monitor
Error rateを選択
クエリはこんな感じにしておく
- Select the entities to watch (max 20)
SELECT percentage(count(*), WHERE error IS true) AS 'Error rate (%)' FROM Transaction
WebhooksでJira連携設定
- Alerts Workflowsを開いて「+ Create a workflow」ボタンをクリック
- Configure your workflow
適当なワークフロー名 - Filter data
Basicフィルターで、次のように設定:- Policy:自分が作ったアラートポリシー
他は空欄でOK(必要に応じてPriorityなど設定可能)
- Policy:自分が作ったアラートポリシー
- Notify:Jira
- Name:自由
- URL:Jira側の設定の時に確認したベースURL
- Username:Jiraアカウント作成時のメールアドレス
- API token:作成したAPIトークン
- Two-way integration:オン
Test connectionが成功すればOK
- Project:作っておいたJiraプロジェクト
- 他はお好みでOK
test workflowでJiraにチケットができていればOK

最終動作確認
test-errorにアクセス
openのインシデントがあったらcloseしておく。
New Relicでは既存のインシデントが開いている間は、同じ条件の新しいアラートは発火しません。
curl http://localhost:8080/test-error
Tips
Notify Jira右側の三点リーダー Notify when...をこんな風にしとくと
New RelicでincidentをcloseするとJiraチケットもcloseされる










