目次
はじめに
こんにちは!クラウド事業部の野村です(*゚ー゚)
Datadog には、 Workflow Automation というワークフロー機能があります。
モニターをトリガーにしたり、1日1回などのスケジュールを設定して開始でき、さまざまなクラウドやサードパーティアプリへのアクションも用意されているので、柔軟に利用できそうな機能です。
そして、このワークフローを AI で自動作成することもできます。今回は、この AI を試してみました。
こんな方におすすめ
- Datadog 初心者の方
- Datadog の Workflow Automation に興味がある方
参考情報
公式ドキュメントです。そんなに説明は多くないですが、Create a workflow with AI という項目に AI でのワークフロー作成について書いてあります。
また、環境を触って学習したい場合は、以下のラーニングセンターもおすすめです。コースを受講するとラボ環境が割と自由にいじれます。
https://learn.datadoghq.com/learn.datadoghq.com
実践① ワークフロー全体像の作成
新規作成画面から AI 利用画面へ
Datadog サイトにて、新規ワークフロー作成画面を開きます。 (画像は左メニューからのページ移動方法ですが、結構階層が深くて見つけにくい…)
まずはトリガーを設定するように言われるのですが、下方に Build with AI
というボタンがあるので、そこをクリックします。
AI 利用画面でプロンプトを入力
展開したウィンドウで、上部のバーに AI で作成したいステップを入力するように言われています。
以下のようなプロンプトを入力して実行してみました。
モニターをトリガーに開始する。まず、5秒待機した後に、もう一度ソースのモニターの状態を確認。アラート状態が継続していれば、slackに通知したあと、修復用のlambda関数を呼び出す。
作成されたワークフローの確認
実行後、数秒でワークフローが作成されました。
入力したプロンプトと照らし合わせて確認してみます。
モニターをトリガーに開始する。
トリガーは AI で作成されませんでした。具体的に書いたつもりだったのですが…
何回か文面を変えてもトリガーは作られなかったので、トリガーは作成できないものなのかもしれません。
プロンプトの次の部分に移ります。
まず、5秒待機した後に、もう一度ソースのモニターの状態を確認。
こちらのプロンプトに対しては、sleep ロジックのアクションと、Check Monitor Status のアクションが追加されています。
プロンプトの最後の部分です。
アラート状態が継続していれば、slackに通知したあと、修復用のlambda関数を呼び出す。
分岐ロジック、Slack への Send message、AWS Lambda への Invoke lambda function のアクションが追加されました。
ワークフローの作り方やアクションの種類をよく知らなくても、なんとなく形を作ることができました。
AI で出来なかったこと
前述の通り、AI でトリガーは作成できなさそうです。
また、前に掲載したフローの画面では、それぞれのアクションの右上に、オレンジ色のビックリマークがついています。これは、自分でしないといけない設定が残っていることを意味します。
それぞれを覗いてみると、Check Monitor Status アクションは、モニターのID、分岐ロジックでは分岐の条件となるステートメント、Slack アクションではチャンネルやメッセージ本文、Lambda アクションでは呼び出す関数の詳細などが未入力になっていました。
Slack や Lambda の情報は渡していないので、納得できますが、ソースのモニターや分岐の条件となるステートメントは埋めてほしかった…という気がします。
プロンプトのせいなのか、AI がまだまだ未熟だからなのか、わかりません。
ひとまず、AI はやりたいことを実現するアクションを並べはするが、アクションごとの中身の設定は自分でやってね、というレベルのようです。
それでも、ゼロから作るよりはだいぶ楽になりますね。
実践② JavaScript のコード作成
ここまで、ワークフローの全体像を AI で形作ってきました。実は、もう一つ AI の使いどころがあります。
それが、JavaScript でのコード作成です。
実践①で作成したワークフローのあとに、javaScript のアクションを追加してみました。
アクションの詳細画面を展開すると…スクリプト入力欄の右上に、Write Code with AI
というボタンがありますね。押してみましょう。
新たに左右に2分割された画面が表示されました。
左下のバーに、処理させたい内容を入力して実行します。今回は以下のプロンプトを入力してみました。
前のステップInvoke lambda functionのアウトプットとソースのモニターの Critical の thresholds を比較した結果を返す。返される結果には、Invoke lambda functionのアウトプットがソースのモニターの Critical の thresholdsよりも小さい場合にはtrue、そうでない場合にはfalseが入る。
↑多分モニターでみればよく、わざわざ JavaScript に判定させるものではないかもしれませんが、例示するのに適当な内容を思いつかないので…
すると、またもや数秒でコードを作成してくれました。
内容を確認して、コードの下の Replace Script
Insert in Script
Copy to Clipboard
のどれかを選択して、全部、または部分を右側のエディタに取り込むことができます。
変数の取り方が間違っているなど、少しエラーが出る可能性があるので、テストしながら修正すれば使えるものになります。
おわりに
Datadog の Workflow Automation には、AI のほかにブループリントも備え付けられており、作成を支援する機能が充実しています。
この記事が、皆さんがワークフローを利用してみようとおもうきっかけになればうれしいです。