Workflow Automation を始める

概要

Workflow Automation を使用すると、Datadog のアラートやセキュリティシグナルに応じて、エンドツーエンドのプロセスを自動化できます。リアルタイムの可観測性データを活用することで、問題を迅速に解決し、システムの可用性とセキュリティを積極的に維持することが可能です。

このガイドに従って、モニターアラートによってトリガーされるカスタムワークフローを作成します。トリガーされると、ワークフローは Jira でタスクを作成し、Jira チケットへのリンクを含む通知を Slack に送信します。このガイドでは、ワークフローのあるステップから別のステップへのデータの渡し方、ワークフローの保存と公開、ワークフローの実行履歴の表示について説明します。

前提条件

開始する前に、Jira と Slack のインテグレーションを Datadog アカウントにインストールしておく必要があります。インストール手順については、SlackJira インテグレーションのドキュメントをご覧ください。

Jira と Slack のインテグレーションタイルでセットアップしたアカウント資格情報と認証は、Workflow Automation の Jira と Slack のアクションに自動的に反映されます。インテグレーションによっては、認証のための追加構成が必要です。詳細については、接続 を参照してください。

ワークフローの構築

モニタートリガーを使用してワークフローを作成する

ワークフローは、モニターやセキュリティシグナルなどのアラート、スケジュール、または手動でトリガーすることができます。このケースでは、モニタートリガーを使用してワークフローを作成します。

ワークフローを作成します。

  1. Workflow Automation ページから、New Workflow をクリックします。
  2. ワークフローの名前と説明を入力します。ワークフローの例では、以下の名前と説明を使用しています。
    名前: Create a Jira Ticket
    説明: Create a Jira issue and Slack notification when there is a monitor alert

モニターを追加して構成します。

  1. ワークフローキャンバスで、Add Trigger をクリックし、Monitor を選択します。
  2. Configure タブの @workflow- の横に、ワークフローの一意の ID Create-Jira-Ticket を入力します。
    ワークフローハンドルは常に @workflow- で始まります。後で、このハンドルを使用して、ワークフローをモニター通知に接続します。
  3. Save をクリックしてワークフローを保存します。
ワークフローのトリガー

Jira と Slack のアクションを追加する

Jira ステップを追加して構成します。

  1. ワークフローキャンバスで、+ アイコンをクリックします。

  2. Jira アクションを検索し、Create issue を選択します。

  3. ワークフローキャンバスで、Create issue ステップをクリックします。

  4. Configure タブで、Jira Account を選択します。アカウントは、Jira インテグレーションタイルの Accounts セクションにある Jira URL に対応している必要があります。

  5. ワークフローが作成する Jira 課題の ProjectIssue type を入力します。

  6. ワークフローのトリガーとなるモニターからのデータを渡すためにコンテキスト変数を使用して、Jira 課題の SummaryDescription を入力します。二重中括弧 ({{) で囲むことで、ステップ内のコンテキスト変数にアクセスできます。

    以下の記述例では、ソース、トリガー、ワークフロー変数を使用して、以下を伝達します。

    • モニターアラートのトリガーとなったソース
    • 影響を受けたモニターへのリンク
    • ワークフロー名、ワークフロー ID
    The CPU usage is above the 95% threshold for {{ Trigger.hostname }}
    
    Please investigate - see this Datadog Dashboard to view all workflow executions:
    https://app.datadoghq.com/dash/integration/workflow_automation?refresh_mode=sliding&from_ts=1698164453793&to_ts=1698168053793&live=true.
    
    The workflow that created this Jira issue is
    {{ WorkflowName }} : {{ WorkflowId }}
    
    The monitor that triggered the workflow can be found here: {{ Source.url }}
    

    コンテキスト変数の詳細については、**コンテキスト変数**を参照してください。

  7. Jira アクションをテストするには、Configure タブの Test をクリックします。アクションをテストすると、実際の Jira チケットが作成されます。

  8. Save をクリックしてワークフローを保存します。

次に、Slack のステップを追加します。

  1. ワークフローキャンバス上のプラスアイコンをクリックして、別のステップを追加します。

  2. Slack を検索し、Send message を選択します。

  3. Slack Workspace name を入力します。

  4. Slack Channel name を入力します。

  5. より便利な Slack 通知を行うには、ステップ出力変数を使用します。ステップ出力変数を使用すると、ワークフローの Jira ステップから Slack ステップにデータを渡すことができます。次のメッセージテキストを使用して、Slack メッセージに Jira 課題キー、モニター名、Jira 課題を含めます。

    The monitor named {{ Source.monitor.name }} triggered and created a new Jira issue
    {{ Steps.Create_issue.issueKey }}: {{ Steps.Create_issue.issueUrl }}
    
    The workflow that created this Jira issue is {{ WorkflowName }}
    
  6. アクションをテストするには、Configure タブの Test をクリックします。アクションをテストすると、実際の Slack メッセージが作成されます。

  7. ワークフローの名前をモニターの通知ドロップダウンに表示するには、ワークフローを保存して公開します。ワークフローのページから Publish をクリックします。

ワークフローをテストして公開する

アクティブな Slack および Jira アカウントに接続されたワークフローをテストすると、実際の Slack メッセージや Jira チケットが作成されます。

Save をクリックし、ワークフローに変更を適用します。次に、手動でワークフローをトリガーしてテストします。

手動でワークフローをトリガーする場合は、ワークフローページから Run をクリックし、トリガー変数の値を入力します。

ワークフローを手動でトリガーする

ワークフローを実行すると、Jira チケットが作成され、Slack メッセージが送信されることを確認します。

スケジュールされたワークフローやトリガーされたワークフローは、公開するまで自動的にトリガーされません。ワークフローのページから Publish をクリックして公開してください。

ワークフローをトリガーするモニターを更新する

  1. Datadog の Monitors ページに移動します。
  2. ワークフローのトリガーに使用するモニターを検索して編集するか、新しいモニターを作成します。
  3. Configure notifications & automations セクションで、Add Workflow をクリックします。
  4. ワークフローのメンション名 (@workflow-Create-Jira-Ticket) を使用してワークフローを検索し、ドロップダウンから選択します。
    • ワークフローにトリガー変数を渡すには、@workflow-name(key=value, key=value) という構文のカンマ区切りリストを使用します。例えば、@workflow-Create-Jira-Ticket(hostname={{host.name}}) のようになります。
  5. ワークフローとこのモニターのすべての通知をテストするには、Test Notifications をクリックします。
  6. モニターを保存。
モニターからワークフローをトリガー

モニターのしきい値に達するたびに、モニターはワークフローの実行をトリガーします。

実行履歴

ワークフローをトリガーした後、Run History ビューで進捗状況を確認したり、失敗したステッ プをデバッグすることができます。実行されたステップを選択すると、入力、出力、実行コンテキスト、エラーメッセージを確認できます。以下の例は、無効な Jira 構成のために失敗したステップを示しています。

ワークフローを編集するには、Configuration をクリックします。実行履歴ビューに戻るには、Run History をクリックします。

以前のワークフロー実行のリストや、各実行の成功・失敗を確認するには、初期の実行履歴ビューを使用します。ワークフローキャンバスをクリックすることで、いつでも初期の実行履歴に戻ることができます。

考察

モニターがワークフローをトリガーすると、エンジニアリングチームがレビューできるように Jira 課題が作成されます。以下に Jira 課題の例を示します。

ワークフローから生成される Jira チケット

ワークフローは、Jira 課題とモニターアラートをチームに通知する Slack メッセージも作成します。以下は Slack の通知例です。

ワークフローから生成される Slack メッセージ

次のステップ

  • アクションカタログで、利用可能なすべてのワークフローアクションのリストを確認する。
  • すぐに使えるブループリントからワークフローを構築する。
  • HTTP アクションを使用して、任意のエンドポイントにリクエストを行う。
  • データ変換アクションを実装して、ワークフローを流れる情報に対して必要な処理を実行する。

その他の参考資料