メインコンテンツまでスキップ

通報前ワークフロー

1. 通報前ワークフローとは

通報前ワークフローはシステムにおけるインシデントや障害が発生した際に、自動的にシステムの状況を判定して AMC による通報の有無を決定することができる機能です。
この機能により、パターンマッチ後に事前に設定したワークフローを実行し、システムの対処が必要な場合のみ通報を行うことができるようになります。

2. 通報前ワークフローの設定方法

パターン管理の通報前ワークフロー設定からワークフローの登録、編集、削除を行うことができます。
通報前ワークフロー設定のワークフロー選択ボタンを押下するとワークフロー設定画面が開きます。

caution

通報前ワークフローはパターンタイプが単発、集約、件数指定の場合のみご利用いただけます。

2-1-1. ワークフローのログイン画面

ワークフロー機能を利用する際にログイン画面が表示されることがあります。

info

はじめてワークフロー機能を利用する場合や、一定時間経過した場合にログインが必要となります。

項目名説明補足
ユーザー名ワークフロー機能にログインするためのIDを指定します。AMCへログインしているユーザと同じIDを入力してください。
パスワードワークフロー機能にログインするためのパスワードを指定します。AMCへログインする際に利用しているものと同一となります。

2-1-2. ワークフロー一覧画面

ワークフロー機能のログインが完了すると、プロジェクトにて作成済みのワークフローが一覧として表示されます。
パターンの通報前ワークフローとして指定する場合は、ワークフロー一覧テーブルの選択ボタンを押下してください。

新しいワークフローを作成する場合は、ワークフロー一覧テーブルの右上にある+ボタンを押下すると登録画面に移動します。
作成済みのワークフローの編集を行う場合は、ワークフローの名前を押下して編集画面に移動します。

2-1-3. ワークフロー登録、編集画面

ワークフロー登録、編集画面は「基本情報」、「YAML」、「ワークフロー」の3つのタブで構成されます。

2-1-3-1. 基本情報

基本情報タブではワークフローの以下の情報を設定します。

項目名説明補足
名前ワークフローの名前を入力します。後から変更することが可能です。

2-1-3-2. YAML

YAMLタブではワークフローの定義をYAML形式のテキストで入力することができます。 ここで入力した内容はワークフロータブと連動します。

info

ワークフローの定義内容にエラーがある場合、他のタブへ切り替えることはできません。

2-1-3-3. ワークフロー

ワークフローの定義をGUI編集する画面です。 ここで定義した内容はYAMLタブと連動します。
フローの設定方法についてフローの登録方法を参照してください。

info

ワークフローの定義内容にエラーがある場合、他のタブへ切り替えることはできません。

3. 通報前ワークフローの実行結果の確認方法

エスカレーション履歴詳細の通報前ワークフローでワークフローの実行結果を確認できます。
ワークフロー実行後にAMCからの通報を停止する方法はワークフローの実行結果に応じて通報停止する方法を参照してください。

3.1. ワークフロー実行結果詳細

ワークフロー実行結果詳細は「ワークフロー」タブと「詳細情報」タブから構成されます。

「ワークフロー」タブではワークフロー図として実行結果を表示します。ワークフローに分岐が存在する場合、どの分岐で処理が実行されたかを確認することができます。 処理が正常終了したノードは緑、エラーが発生したノードは赤、実行されていないノードはグレーの線で表示されます。

「詳細情報」タブではワークフローへのインプットパラメータや出力を参照することができます。

4. ワークフローの実行結果に応じて通報停止する方法

通報前ワークフローの終了ノードに通報停止メッセージを設定することでパターンに設定しているすべての通報を停止させることができます。
ワークフローによりシステムが正常に稼働していることが確認できた場合に不要な通報を行わないように制御できます。

ワークフローの終了ノードについてこちらを参照してください。

4-1. 通報停止メッセージ

ワークフローの終了ノードに下記のメッセージを設定することで通報を停止することができます。

{
"amc_do_report": false
}

4-2. 通報停止時のエスカレーション履歴詳細の表示

ワークフローによって通報停止が行われた場合は、エスカレーション履歴詳細の通報前ワークフロー結果に「成功(通報停止)」と表示されます。

4-3. 通報停止を行うワークフローのサンプル

通報前にシステムの稼働状態をチェックし、システムが正常に稼働できていない場合に通報を行うサンプルは下記です。

ワークフロー表示

HTTPステータスチェック部品を利用して、通報前にシステムの稼働状態をチェックします。

ステータスチェックが成功の場合の終了ノードに通報停止メッセージを設定します。

YAML表示

version: 1
tasks:
start:
action: core.pass
next: status_check
execute:
action: core.end
output:
result: error
status_check:
action: core.http_status_check
url: https://doc.amc.masterscope.jp/manual/
on_success: skip
on_failure: execute
skip:
action: core.end
output:
amc_do_report: false

5. フローの登録方法

5-1. フロー登録画面のレイアウト

項番項目名説明
(1)ワークフロー図ワークフローを描画するエリアです。余白領域をマウスドラッグするとスクロール、マウスホイールでズームイン・ズームアウトが行えます。
(2)ノードメニューワークフロー図に配置可能な部品の一覧です。部品をワークフロー図側へドラッグ&ドロップすることでノードとして配置できます。
(3)コントロールパネル各種操作を行うためのパネルです。ワークフロー図の拡大・縮小、表示領域の自動調整、編集ロック、ノードの自動配置を行うことができます。
(4)ノードワークフロー中で実行するタスクに対応する部品を矩形で表現したものです。部品の種類に応じて表示が異なります。
(5)接続ラインノード間の接続です。タスクの実行順序や分岐を表現します。

5-2. ノードの編集方法

項番項目名説明
(1)アイコン部品の種別を表すアイコンです。
(2)ノード名ノードの名前です。クリックすると編集することができます。
(3)設定ボタンクリックするとノードの設定画面を表示します。パス部品のように設定項目の存在しないノードの場合は表示されません。

ノードをワークフロー図に配置した際に Node_1, Node_2 のような名前が自動的に設定されますが、処理内容が把握しやすいように任意の名前を設定してください。 また、部品種別ごとに設定する項目があるので、設定ボタンをクリックして設定を行ってください。部品種別ごとの設定項目については各部品の説明を参照してください。

info
  • ノード名はフロー全体で一意となる名前を設定してください
  • ノード名の長さは 1 文字以上 64 文字以下で指定してください
  • ノード名として利用可能な文字は以下の通りとなります
    • 半角英数字
    • - および _

5-3. 接続ラインの編集方法

各ノードにはノード間を接続するためのハンドルが存在します。ハンドルは丸印で表現されます。また、ハンドルは入力用と出力用に分かれており、ノード上部に配置されているハンドルが入力用、下部に配置されているハンドルが出力用です。出力ハンドル同士や入力ハンドル同士での接続はできません。 出力/入力ハンドルをドラッグして接続先の入力/出力ハンドル上でドロップすることでノード間の接続ラインが作成されます。

すでに接続されているラインについてはラインの端から接続先ハンドルへドラッグ&ドロップを行うことで接続ラインを付け替えることができます。

特定の接続ラインを削除したい場合は、接続ラインをクリックして選択した後にDeleteキーまたはBackspaceキーを押下してください。

info
  • ひとつのハンドルに接続可能なラインの数は部品ごとに決まっています。分岐部品のBranchハンドル以外では1つのラインのみ接続可能です。
  • フローの先頭である開始ノードは入力ハンドルを持ちません。
  • フローの終端である終了部品のノードは出力ハンドルを持ちません。

6. JSONPath式

ワークフローの各ノードの設定項目ではJSONPath式を利用することができます。
JSONPath式は $.input または $.results.<ノード名> から始まる文字列として記述します。

ワークフロー実行時のインプットパラメータを参照する場合は $.input.<入力パラメータ名> の形式で、先行ノードの実行結果を参照する場合は $.results.<ノード名>.<出力パラメータ名> の形式で記述します。

参照可能な値はワークフローの実行状況によって変わります。以下の図はワークフロー中で参照可能な値がどのように更新されるかを示しています。 初期状態では input 以外は何もありませんが、ワークフローの実行状態に応じて参照可能な値が results 配下に追加されていきます。

info

実行されていないノードについては results に値が格納されませんので、ワークフローに分岐を作成した場合はJSONPath式で存在しない値を参照しないように注意してください。

caution

通報前ワークフロー機能ではワークフロー実行時にインプットパラメータを指定することはできません。

7. ワークフロー部品

7-1. HTTPリクエスト

任意のURLに対してHTTPリクエストを実施し結果を取得します。

アクセス先のURL等はパラメータとして設定が必要です。

項目名説明補足
メソッドGET/POST/PUT/DELETEのいずれかを指定します。JSONPathによる指定も可能
URLアクセス先のURLを http(s)://~ 形式で指定します。JSONPathによる指定も可能
リクエストヘッダリクエストヘッダをJSONのKey,Value形式で指定します。JSONPathによる指定も可能
リクエストクエリクエリパラメータをJSONのKey,Value形式で指定します。JSONPathによる指定も可能
リクエストボディリクエストボディを指定します。JSONPathによる指定も可能
info

HTTPリクエスト部品は出力ハンドルをひとつしか持たないため、レスポンスに応じて処理を分岐したい場合は分岐部品と合わせて利用する必要があります。 GETリクエストのステータスコードに応じて分岐したい場合は、代わりにHTTPステータスチェック部品を利用できます。

この部品は以下の出力を持ちます。

項目名説明
statusレスポンスのHTTPステータスコード

7-2. HTTPステータスチェック

任意のURLに対してHTTP GETリクエストを実施し、レスポンスのステータスコードに応じて処理を分岐します。

アクセス先のURL等はパラメータとして設定が必要です。

項目名説明補足
URLアクセス先のURLを http(s)://~ 形式で指定します。JSONPathによる指定も可能
リクエストヘッダリクエストヘッダをJSONのKey,Value形式で指定します。JSONPathによる指定も可能
リクエストクエリクエリパラメータをJSONのKey,Value形式で指定します。JSONPathによる指定も可能

ステータスコードが200番台の場合はSuccessブランチへ、それ以外の場合はFailureブランチへ分岐します。

この部品は以下の出力を持ちます。

項目名説明
statusレスポンスのHTTPステータスコード

7-3. 分岐

ワークフローへの入力または先行部品の出力を参照して処理を分岐します。

分岐部品はDefaultハンドルとBranchハンドルの2つの出力ハンドルを持ちます。

Branchハンドルは複数のノードと接続することができ、接続したノードの数だけ分岐が追加されます。 Branchハンドルと接続しているノードが存在する場合、ノードの設定ボタンから分岐条件を設定することができます。 Defaultハンドルと接続したノードは分岐条件のいずれにも該当しない場合の分岐先となります。

分岐条件の設定画面は以下のような構成となります。

項番項目名説明
(1)分岐先ノード名分岐先ノードの名前が表示されます。
(2)分岐条件(1)に表示されたノードへ分岐する条件を設定するエリアです。

(1)と(2)のセットがBranchハンドルへ接続されたノードの数だけ表示されます。表示順はBranchハンドルへ接続した順番となります。 また、分岐条件は上から順番に評価されるため、複数の分岐条件が満たされた場合はその中で最も上に記述されているノードへ分岐します。

7-4. 分岐条件

分岐条件はSimple条件、AND条件、OR条件を組み合わせて表現します。

Simple条件は単一の変数と値の比較のみを行う条件です。変数を表すJSONPath式と比較演算子・比較する値を指定します。

AND条件は複数の条件を並べて、すべての条件に合致するかを判定します。

OR条件は複数の条件を並べて、いずれかの条件に合致するかを判定します。

AND条件、OR条件は入れ子で設定することができます。

7-5. パス

何も処理を行わない部品です。

info

パス部品はワークフローの開始ノードとしての利用を想定しており、それ以外の用途はありません。

7-6. 終了

フローの終了を表す部品です。フローの終端には必ず終了部品を配置する必要があります。

終了部品ではワークフローの出力を設定できます。

項目名説明補足
出力ワークフローの出力をKey,Value形式のJSONフォーマットで指定します。下記の説明を参照

出力に指定した値はワークフローの実行結果として参照可能な値となります。

ValueとしてJSONPath式を記述することで先行ノードの実行結果を取り込むことができます。 ただし、ValueにJSONPath式を記述する場合はKeyにはサフィックスとして .$ を付与する必要があります。

例えば、ノード名が health_check であるHTTPステータスチェック部品の出力項目 status を取り込む場合は以下のように記述します。

{
"status.$": "$.results.health_check.status"
}
info

JSONPath式で指定しているノード名が存在しない場合や存在しない出力項目を参照しようとした場合、ワークフロー実行時にエラーとなります。

8. 注意事項

  • パターンの通報前ワークフローに表示されるワークフロー名は、設定時点のワークフロー名です。設定後、ワークフロー名を変更された場合でも変更後のワークフロー名は表示されません。
  • エスカレーション履歴詳細のワークフロー名は実行時点でパターンに設定されているワークフロー名が表示されます。ワークフロー名を変更された場合でも変更後のワークフロー名は表示されません。