この記事では、オブザーバビリティデータを使用してワークフローの実行とスケジュールの実行をモニターする方法について説明します。
監査
すべてのNerdGraphミューテーション呼び出しは、顧客アカウントのNrAuditEventでクエリできる監査レコードを生成します。
WorkflowRun
SELECT actionIdentifier, actorId, actorType, descriptionFROM NrAuditEvent WHERE targetType = 'workflow_run'SINCE 1 hour agoWorkflowSchedule
SELECT actionIdentifier, actorId, actorType, descriptionFROM NrAuditEvent WHERE targetType = 'workflow_schedule'SINCE 1 hour agoイベント
すべてのワークフローの実行は、ワークフローを開始またはスケジュールした顧客アカウントのNRDBにWorkflowAutomationEventデータを出力します。
ワークフローの実行は、WorkflowAutomationネームスペースにイベントデータを保存します。
WorkflowAutomationEvent スキーマ
次の表は、各WorkflowAutomationEventイベントの属性について説明しています。
属性 | タイプ | 説明 |
|---|---|---|
| EpochMillisecond | イベントタイムスタンプ |
| ワークフロー | ステップ | イベントの種類 |
| STARTED | COMPLETED | FAILED | TIMED_OUT | STOPPED | イベントに関連するステータス |
| 弦 | このワークフローの実行に関連付けられたワークフロー定義名 |
| 弦 | このワークフローの実行に関連付けられたワークフロー定義バージョン |
| グローバル | 組織 | アカウント | このワークフローの実行に関連付けられたワークフロー定義のスコープタイプ |
| 弦 | このワークフロー実行に関連付けられたワークフロー定義スコープID |
| 弦 | このワークフローの実行に関連付けられたワークフロー定義のentityGuid |
| Int | ワークフローを開始したNew RelicのユーザーID |
| UUID | ワークフロー実行のユニークID |
| EpochMillisecond | COMPLETED、FAILED、またはTIMED_OUTイベントの期間 |
| 弦 | ワークフロー内の顧客が指定したステップ名 |
| アクション | ループ | スイッチ | 状態 | このイベントを生成したステップのタイプ |
| 弦 | アクションの完全修飾名 |
| Int | アクションのバージョン |
stepType属性には次の値があります:
ACTION: カタログからアクションを実行しますLOOP: コレクションを反復処理しますSWITCH: 条件を評価しますSTATE:ワークフローの共有状態にキーの値のペアを保存します。
クエリの例
次のクエリは、特定のワークフロー実行のすべてのイベントを返します:
SELECT *FROM WorkflowAutomationEventwhere definitionName = 'json-parsing' and runId = '31c973d2-c669-4bd7-9b15-7e3a70a4a074'SINCE 1 month ago
ログ
オプションで、logLevelの詳細度オプションを使用してワークフローを開始またはスケジュールできます。ログは、ワークフローを開始またはスケジュールしたアカウントに送信されます。
ログには次の属性が含まれます:
workflowAutomation.nameはWorkflowDefinition名ですworkflowAutomation.versionWorkflowDefinitionのバージョンですworkflowAutomation.runIdはワークフローのrunIdですentityGuidWorkflowDefinitionのIDです
スケジュールの発生によってワークフローが開始された場合、ログエントリにはworkflowAutomation.scheduleIdも含まれます。
アクションステップタイプの場合、DEBUGを使用すると、各アクション入力はworkflowAutomation.inputs.<inputName>: <inputValue>の形式でログエントリに追加の属性を追加します。
アクションステップタイプの場合、TRACEを使用すると、各アクション出力はworkflowAutomation.outputs.<outputName>: <outputValue>の形式でログエントリに追加の属性を追加します。
NRQLクエリの例
以下のNRQLクエリを使用してログをクエリできます:
SELECT message FROM Log WHERE workflowAutomation.runId = '{run_id}' SINCE 3 hours ago
workflowAutomation.runIdの他に、ログデータのクエリに役立つその他のログ属性は次のとおりです:
workflowAutomation.nameworkflowAutomation.version
スケジュールされた実行の場合、ログエントリにはworkflowAutomation.scheduleId属性も含まれます。