New Relic の NerdGraph と Jira Automation を使って Errors inbox のステータスを連動させてみた

　New Relic の Errors inbox と Jira を連携し、エラーを迅速にチケット化して対応する方法を解説します。ステータス連動の課題をNerdGraph APIとJira Automationで解決し、エラー管理を効率化する方法を紹介します。
 
# NerdGraph API とは？
NerdGraph API は、New Relic のデータや機能に対して直接的にアクセスできる GraphQL ベースの API です。この API を利用することで、Errors inbox のステータスも含め、さまざまなデータ操作が可能になります。

# 今回のポイント
この記事で紹介しているポイントは、次の２つです。
1. **New Relic の Errors inbox のステータスを NerdGraph を使って変更する方法がわかる**
 New Relic の NerdGraph を使って Errors inbox のステータスを変更する方法を紹介します。
2. **Jira Automation を使って NerdGraph を実行する方法がわかる**
  Jira Automation を使ってチケットのステータス変更時に NerdGraph を実行して Errors inbox のステータスを変更する方法を紹介します。

:::note info
最新のアップデートの詳細はこちら
[New Relic アップデート一覧
](https://newrelic.com/jp/blog/nerdlog/new-relic-update  "New Relic アップデート一覧")
:::

:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::

# New Relic の NerdGraph を使って Errors inbox のステータスを変更する
## クエリと変数の確認
　Errors inbox のステータスを変更するのに使用する GraphQL クエリと変数を確認します。NerdGraph API Explorer を使うと簡単にGraphQL クエリを作成することができます。

https://docs.newrelic.com/jp/docs/apis/nerdgraph/get-started/nerdgraph-explorer/

```graphql:NerdGraph -Errors inboxのステータス変更-
mutation {
  errorsInboxUpdateErrorGroupState(
    id: $errorGroupID
    state: RESOLVED
  ) {
    state
  }
}
```
変数に ErrorGroupID を使用して対象の　ErrorGroup を特定し、 state を ``RESOLVED`` に設定しています。

# Jira Automation を使って NerdGraph を実行する
　Jira Automation を使ってチケットのステータス変更時に NerdGraph を実行して Errors inbox のステータスを変更するために下記の設定を行います。
　1. Jira に ErrorGroupID をセットするカスタムフィールドを追加する
　2. ErrorGroupID を Jira へ連携する
　3. Jira Automation のルールを作成する

## Jira に ErrorGroupID をセットするカスタムフィールドを追加する
　ErrorGroupID をセットするための Jira のカスタムフィールドを作成します。カスタムフィールドの作成方法は、下記の記事を参考にしてください。

https://qiita.com/MarthaS/items/28f0cb95e2a3435bb844

## ErrorGroupID を Jira へ連携する
　Errors inbox から Jira へ連携する際に ErrorGroupID を連携します。Errors inbox から Jira へ連携する方法は、下記の記事を確認してください。

https://qiita.com/MarthaS/items/27fbf951cc5b72695318

　テンプレート変数の``{{ errorGroup.id }}`` を使って New Relic からJira のカスタムフィールドに ErrorGroupID を設定します。
作成したカスタムフィールドを Add another field で追加して、テンプレート変数を使用して ErrorGroupID を入力します。
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3043202/2adec59c-0bbc-cc00-d050-1ac05d831d96.png">
## Jira Automation のルールを作成する
　まず Jira の管理画面から「プロジェクト設定」に移動し、「自動化」を選択します。**ルールを作成**から自動化のルールを新しく作成します。
 今回は NerdGraph 実行するために必要な最小限のルールを作成しています。課題のステータスが完了に変更されたことをトリガーにしてルールを実行します。
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3043202/57eed67a-25fe-0b2e-b631-91c1b9ef4ed6.png">
 
　ErrorGroupID が空白の場合は、NerdGraph を実行しないように条件を設定します。
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3043202/b62eb832-2468-b5ec-7169-a59fe5c0ec7a.png">
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3043202/331bc066-4290-6526-b604-f681e30092f6.png">

　最後に Web リクエストを送信して NerdGraph API を実行します。USリージョンを使用している場合のNerdGraphのエンドポイントは、``https://api.newrelic.com/graphql``です。
 <img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3043202/f455d5b5-1dc1-d413-6208-1d0f50e62920.png">

　Web リクエストの本文はカスタムデータを使用し、下記のクエリを設定します。id の変数はカスタムフィールドから取得して設定します。Jira のスマート値を使うとフィールドの値を取得できます。
```:Web リクエストの本文
{
	"query": "mutation {errorsInboxUpdateErrorGroupState(id : \"{{issue.customfield_XXXXX}}\", state : RESOLVED) {state}}"
}
```
ヘッダーに ``API-Key`` を追加し、New Relic の **API ユーザーキー**を設定します。

これで設定は完了です。

 新しく Errors inbox で Jira へ連携してください。作成された課題をJira 上でステータス変更すると New Relic の Errors inbox のステータスが``Resolve``に変更されます。

# まとめ
　この手順で、New Relic の Errors inbox と Jira を効果的に連携させ、エラーの検出から修正までのプロセスをスムーズに行うことができます。NerdGraph API と Jira Automation の組み合わせは、エラー管理を自動化し、チーム全体での作業効率を向上させる優れた方法です。

　これにより、エラーの見逃しを防ぎ、より迅速な対応が可能となるだけでなく、チームが本来注力すべきビジネスロジックや開発に集中することができるようになります。

　New Relicでは、**新しい機能やその活用方法**について、QiitaやXで発信しています！
**無料でアカウント作成**も可能なのでぜひお試しください！

:::note info
New Relic株式会社の[X(旧Twitter)](https://x.com/NewRelicJapan) や [Qiita OrganizationOrganization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::

:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/66d6a010-e4fe-4004-a09b-c01eaad5a614.png)](https://newrelic.com/jp/contact-sales)