皆さまこんにちは、IIM サポートチームです。
このブログでは、Dynatrace の最新機能や便利な使い方を、気軽に読めてすぐに役立つ形でご紹介しています。
今回はDynatrace Intelligenceの機能のひとつである「DQLの自動生成」をご紹介します。
DQLはDynatraceのクエリ言語で、DashboardsやNotebooksなどで利用できます。
ただ、クエリ言語に抵抗があったり、DQLを書くのが難しいと感じたことはありませんか?
本機能を利用することで、自然言語から簡単にDQLを生成でき、手軽にログやメトリクス分析を始められます。
DynatraceのNotebooksまたはDashboardsを開き、[+]>[Prompt]をクリックします。
自然言語によるプロンプトを入力し、実行します。
[DQL]を展開すると、生成されたDQLを確認することができます。
DQLの自動生成は、自然言語からDQLを生成できる便利な機能ですが、プロンプトの書き方によって生成結果の精度が大きく変わります。
ここでは、より意図通りのDQLを生成するためのポイントをご紹介します。
プロンプトは、できるだけシンプルで具体的に書くことが重要です。
曖昧な表現だとAIが意図を正確に解釈できず、期待とは異なるDQLが生成されることがあります。
以下を意識すると精度が向上します。
・曖昧な表現は使わず、シンプルな文章にする
・「〜を表示してください」など、目的を明確にする
・データの種類(logs / metrics / events / bizevents など)を明示する
※bizeventsはDynatraceにおけるビジネスイベントデータを指します。
・必要に応じて時間範囲やフィルタ条件を指定する
※時間範囲や条件を指定することで、不要なデータスキャンを防ぎ、ライセンス消費の抑制にもつながります。
悪い例:
・CPU使用率
・新しい注文を表示してください
良い例:
・過去1時間のホストのCPU使用率メトリクスを時系列で表示してください
・過去1日の新規注文のbizevents件数を表示してください
複雑な処理は1文でまとめず、ステップに分けて記述します。
1文でもDQLは生成されますが、意図しない処理(例:不要な集計やフィールド追加)が追加されることがあります。
手順を分けることで、生成されるDQLがシンプルで意図通りになります。
また、各ステップは「。」で区切ることで、処理の順序がより正確に伝わります。
DQLの処理順序を意識することも重要です。
(例:フィルタ条件は先に記述し、並び替えは最後に記述する)
※クエリ実行の負荷やライセンス消費を抑えるため、最初のステップから時間範囲やフィルタ条件を指定することを推奨します。
悪い例:
エラーログをFetchし、ホスト名ごとのエラー件数を表示してください
良い例:
最初に直近1時間のログをFetchしてください。
次にERRORログのみをFilterしてください。
その後、ログをホスト名ごとに集計してください。
最後にホスト名とエラー件数を表示してください。
DQL生成がうまくいかない場合は、最初から複雑なプロンプトを書かず、シンプルな内容から段階的に条件を追加していきます。
※クエリ実行回数が増えることでライセンス消費が増加する可能性があるため、実行回数には注意してください
※特にシンプルなDQL(例:fetch logs)は広い範囲のデータをスキャンするため、1回あたりの負荷やコストが高くなる点にも注意が必要です。
例:
以下のプロンプトの「①+②」の結果と「①+②+③」の結果を比較します。
①直近1時間のERRORログを表示してください。
②次に、そのログをステータスごとに集計して件数を表示してください。
③次に、その集計結果を時系列で表示してください。
「①+②」:意図通りのDQLが生成される
「①+②+③」:条件追加によりDQL生成が複雑になり、正しく生成できない場合がある
条件が増えることで、AIの解釈が難しくなり、正しく生成できない場合があります。
DQLの自動生成は便利な機能ですが、プロンプトの書き方によって生成結果が変わるため、本記事でご紹介したようなポイントを押さえることが重要になります。
また、自然言語でDQLを作成できるため、Dynatraceの専門的な知識がなくても活用しやすく、導入や学習の負担を抑えられる点もメリットです。
ぜひ本機能を活用し、効率的なデータ分析に役立ててください。