0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[PoC]New Relicでエラーを検知したらJiraチケットを作る

0
Last updated at Posted at 2025-06-22

はじめに

  • 基本的に無料で試せます。
  • 間違っている部分があれば教えてください。
  • 「もっとこうやるといいよ」や「こんなのもあるよ」と教えてもらえると喜びます

今回やること

アプリケーションエラー発生 -> New Relicが検知 -> Jiraチケット作成

もう少し詳しく

  1. New Relic APMでエラー発生
  2. New Relic Alert Conditionがトリガーになって
  3. New Relic Workflowが起動 -> Webhook(HTTPリクエスト)を自動で発行
  4. Jira チケット作成!

制限事項

  • Jira Softwareの無料プランの都合でユーザー数10人
  • ストレージは2GBまで
  • New Relicの無料プランの都合でデータ保持期間(最大13日)
  • 通知数も制限があるみたい
    PoCなので一旦OK

手順

TL;DR

4ステップ

  1. JiraのアカウントとAPIトークン作成
  2. Spring Bootプロジェクト作成
  3. New Relicのアカウント作成とアプリ連携
  4. 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をクリック
    image.png

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

  • 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。
(オプションスキップしてるので)
image.png

アプリ→New Relic連携確認

New Relic側でエラーが出ているか確認する

アプリを起動させてアクセスする

curl http://localhost:8080/test-error

New RelicのAPM&Services Errorsでこんな風に出ていたらOK

image.png

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 percentage(count(*), WHERE error IS true) AS 'Error rate (%)' FROM Transaction
  • Set thresholds
    こんな感じにする
    image.png

  • Add details
    image.png

  • 動作確認
    何回かtest-errorにアクセスして、こんな感じでIncedentsが上がってくればOK。
    image.png

WebhooksでJira連携設定

  • Alerts Workflowsを開いて「+ Create a workflow」ボタンをクリック
  • Configure your workflow
    適当なワークフロー名
  • Filter data
    Basicフィルターで、次のように設定:
    • Policy:自分が作ったアラートポリシー
      他は空欄でOK(必要に応じてPriorityなど設定可能)
  • Notify:Jira
    • Name:自由
    • URL:Jira側の設定の時に確認したベースURL
    • Username:Jiraアカウント作成時のメールアドレス
    • API token:作成したAPIトークン
    • Two-way integration:オン
      Test connectionが成功すればOK
  • Project:作っておいたJiraプロジェクト
  • 他はお好みでOK

image.png

test workflowでJiraにチケットができていればOK
image.png

最終動作確認

test-errorにアクセス

openのインシデントがあったらcloseしておく。
New Relicでは既存のインシデントが開いている間は、同じ条件の新しいアラートは発火しません。

curl http://localhost:8080/test-error

Incidentが発生し・・・
image.png

workflowが回って・・・
image.png

Jiraチケット作成!!
image.png

Tips

image.png

Notify Jira右側の三点リーダー Notify when...をこんな風にしとくと
New RelicでincidentをcloseするとJiraチケットもcloseされる

image.png
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?