Close

Jira と Statuspage による自動インシデント管理

Kev Zettler の顔写真
Kev Zettler

フル スタック Web 開発者、DevOps

Jira Automation ルールを使用して、Statuspage を Jira 課題に自動同期する方法について説明します。

所要時間

読む時間 5 分。

対象者

あなたは Jira Software の経験豊富なユーザーで、Statuspage アカウントを持っています。

前提条件

アクティブな Jira プロジェクトに加え、カスタム タスク タイプ「インシデント」とカスタム フィールド「インシデント ID」が必要です。こちらから Jira を開始してください。

ここでは、API アクセスが有効になっている Statuspage アカウントが必要です。次の自動化ルールを設定するには、Statuspage API キーとページ コードも必要です。Statuspage API キーを見つける方法については「Statuspage API ガイド」をご確認ください。こちらから Statuspage を開始してください。

ステップ 1. 自動化を追加する

[自動化を追加] ボタンをクリックして [課題] オプションを選択します。

クリック: 自動化を追加、選択: 課題

[Issue created (課題作成時)] を検索して選択します。

新しいトリガー。トリガーは、ルールの実行を開始します。トリガーは、イベントのリッスンや実行をスケジュールできます。

[保存] をクリックして続行します。

課題作成時。ルールは、課題が作成されたときに実行されます。このトリガーは設定不要です。

ステップ 2. 新しい条件を作成する

次に、[課題フィールドの条件] を検索して選択します。

[New condition (新しい条件)] で [課題フィールドの条件] を選択します。これによって、課題フィールドが特定の条件を満たしているかを確認します。

[課題フィールドの条件] を使用して課題タイプがインシデントであるかどうかを確認し、それに応じて対応します。[課題タイプ] フィールドが [インシデント] と等しくなるように [課題フィールドの条件] を設定します。[保存] をクリックして続行します。

[課題フィールドの条件] を使用して課題タイプがインシデントであるかどうかを確認し、それに応じて対応します。[課題タイプ] フィールドが [インシデント] と等しくなるように [課題フィールドの条件] を設定します。[保存] をクリックして続行します。

ステップ 3. Web リクエストを送信する

[Web リクエストを送信] を選択します。これによって、Statuspage がアップデートされます。

新しいアクション。[Web リクエストを送信] を選択します

[Web リクエストを送信] アクションを設定するには、Statuspage API キーとページ コードが必要です。これらの値は Statuspage のドキュメントに記載されています。[Web リクエストを送信] は、機密性の高い入力値を含む高度なアクションです。本ガイドの後半で、このアクションは追加のルールにおいて再現されて、この設定を参照します。

[Webhook URL] フィールドに、Statuspage インシデント エンドポイントの URL を入力します。
https://api.StatusPage.io/v1/pages/your-page-code/incidents

自分のページ コードのプレースホルダーを Statuspage ページ コードに置き換えます。ヘッダー セクションで、2 つのヘッダー フィールドに Authorization:OAuth と API キーを入力します。

[HTTP メソッド] を POST に、[Webhook body (Webhook 本文)] をカスタム データに設定します。

追加のコンポーネントで Web リクエスト レスポンスの値を使用するため、[応答を待機] チェック ボックスを必オンにしてください。

[カスタム データ] フィールドには、Statuspage API のインシデント ペイロードを定義するコードが含まれています。このコードはスマート値を使用して課題の要約を抽出し、ペイロードに追加します。次のスクリーンショットは、[Web リクエストを送信] アクションの完全な設定を示しています。[保存] をクリックして続行します。

Web リクエストを送信

ステップ 4. [課題を編集] アクションを作成する

最後に、[課題を編集] アクションを検索して選択します。

新しいアクション: 課題を編集

[課題を編集] アクションは、Statuspage リクエストからインシデント ID を抽出してインシデント ID カスタム フィールドに保管します。インシデント ID は、スマート値を使用して抽出されます。次のスクリーンショットは、この [課題を編集] コンポーネントを設定する方法を示しています。

課題を編集。課題のフィールドの値を設定する

次のスクリーンショットは、このルールの最終的な要約を示しています。

ルールの最終的な要約

これで、このルールを有効にする準備が整いました。このルールの名前を入力して [オンにする] をクリックします。このルールのデータは、次のルールを作成するために使用されます。

課題にコメントされた際に Statuspage をアップデートする

次のルールは、「インシデント」の課題タイプにコメントが残されたときにトリガーします。Statuspage に対して Web リクエストが行われて、対応するインシデントがコメントの内容とともにアップデートされます。次の図は、このルールのコンポーネントに関する要約を示しています。

インシデントの Statuspage コメント

このルールで確認する重要なコンポーネントは [Web リクエストを送信] アクションです。このアクションは以前のルールからコピーされていますが、いくつかの変更が加えられています。

Webhook URL が /{{issue.incident_id}} とともに追加されました。スマート値は、課題からインシデント ID カスタム フィールドをプルして、Web リクエストのターゲットとして Statuspage に渡すために使用されます。

これで、[HTTP メソッド] が POST ではなく PATCH に設定されました。これによって、新しいインシデントを作成するのではなく、既存のインシデントをアップデートするように Statuspage に指示します。

[カスタム データ] フィールドが変更されて、スマート値を使用したコードを含むようになりました。このコードは、課題からコメント本文を抽出して、インシデントのコンテンツ本文に配置します。

インシデントの Statuspage コメント
Web リクエストを送信

課題が完了にトランジションした際に Statuspage インシデントを閉じる

最後のルールは、これまでのルールをすべて結び付ける内容です。このルールは、対応する Jira 課題が完了に移動した際に、インシデントが解決済みであることを Statuspage に伝えます。次の図は、ルールの要約を示しています。

インシデントの Statuspage コメント

Web リクエスト コンポーネントは、先行するルールから再度コピーされて変更されています。

Web リクエストを送信

[カスタム データ] フィールドが変更されて、インシデントのステータスが「解決済み」に設定されました。これが、以前のコメント ルールからの唯一の変更点です。

これで、これらのルールを使用する準備が整いました。インシデント タイプの課題を作成して上記の操作のトリガーを実行することで、ルールをテストできます。ルールの動作は、自動化監査ログで監視できます。このログでは、ルールの動作に関するログと情報が提供されます。本ガイドで説明した自動化ルールは、高度な Web リクエスト API 使用ルールの優れた一例です。

Automation テンプレート ライブラリにはその他の何百もの例が記載されているので、ご確認ください。

Kev Zettler
Kev Zettler

Kev はフル スタック Web 開発者のリーダーであり、10 年以上もアジャイル手法で製品やチームを構築する経験を持つシリアル アントレプレナーです。DevOps、仮想通貨、VR/AR などの新たなオープン ソース技術に熱心に貢献し、それについて著書を執筆し、教育を行っています。時間がある時には、インディーズ ゲーム開発ジャムに参加しています。


この記事を共有する
次のトピック

おすすめコンテンツ

次のリソースをブックマークして、DevOps チームのタイプに関する詳細や、アトラシアンの DevOps についての継続的な更新をご覧ください。

DevOps のイラスト

DevOps コミュニティ

DevOps のイラスト

DevOps ラーニング パス

マップのイラスト

無料で始める

DevOps ニュースレター購読

Thank you for signing up