2026.07.06

#86 DQLの自動生成

目次

開く

     

    皆さまこんにちは、IIM サポートチームです。

    このブログでは、Dynatrace の最新機能や便利な使い方を、気軽に読めてすぐに役立つ形でご紹介しています。

     

    *文中、斜体になっている単語は Dynatrace 画面上/ドキュメント内で使用される用語となります
     例)ServiceHost など
    *青色の色掛部分は操作対象のボタンを表しています

     

    今回はDynatrace Intelligenceの機能のひとつである「DQLの自動生成」をご紹介します。

    DQLDynatraceのクエリ言語で、DashboardsNotebooksなどで利用できます。

    ただ、クエリ言語に抵抗があったり、DQLを書くのが難しいと感じたことはありませんか?
    本機能を利用することで、自然言語から簡単にDQLを生成でき、手軽にログやメトリクス分析を始められます。
     

     

    利用手順

     DynatraceNotebooksまたはDashboardsを開き、[]>[Prompt]をクリックします。

     

    Dynatracetips#86_1
    Dynatracetips#86_1

    #86- Notebooks画面 プロンプト自動生成手順①

     

    自然言語によるプロンプトを入力し、実行します。

    [DQL]を展開すると、生成されたDQLを確認することができます。

    Dynatracetips#86_2
    Dynatracetips#86_2

    #86- Notebooks画面 プロンプト自動生成手順2

     

     

     

     

    DQL生成のコツ

    DQLの自動生成は、自然言語からDQLを生成できる便利な機能ですが、プロンプトの書き方によって生成結果の精度が大きく変わります。

    ここでは、より意図通りのDQLを生成するためのポイントをご紹介します。

     

    ① プロンプトは明確かつ具体的に書く

     プロンプトは、できるだけシンプルで具体的に書くことが重要です。
    曖昧な表現だとAIが意図を正確に解釈できず、期待とは異なるDQLが生成されることがあります。
     

     

    以下を意識すると精度が向上します。

    ・曖昧な表現は使わず、シンプルな文章にする

    ・「〜を表示してください」など、目的を明確にする 

    ・データの種類(logs / metrics / events / bizevents など)を明示する
    bizevents
    Dynatraceにおけるビジネスイベントデータを指します。

    ・必要に応じて時間範囲やフィルタ条件を指定する

    時間範囲や条件を指定することで、不要なデータスキャンを防ぎ、ライセンス消費の抑制にもつながります。 

     

    悪い例:

    CPU使用率

    新しい注文を表示してください

     

    良い例:

    過去1時間のホストのCPU使用率メトリクスを時系列で表示してください

    Dynatracetips#86_3
    Dynatracetips#86_3

    #86- 出力結果イメージ1

     

    過去1日の新規注文のbizevents件数を表示してください

     

    Dynatracetips#86_4
    Dynatracetips#86_4

    #86- 出力結果イメージ2

     

     

    ② 手順を順番に書く

    複雑な処理は1文でまとめず、ステップに分けて記述します。

    1文でもDQLは生成されますが、意図しない処理(例:不要な集計やフィールド追加)が追加されることがあります。

    手順を分けることで、生成されるDQLがシンプルで意図通りになります。

    また、各ステップは「。」で区切ることで、処理の順序がより正確に伝わります。

     

    DQLの処理順序を意識することも重要です。

    (例:フィルタ条件は先に記述し、並び替えは最後に記述する)

    ※クエリ実行の負荷やライセンス消費を抑えるため、最初のステップから時間範囲やフィルタ条件を指定することを推奨します。

     

    悪い例:

    エラーログをFetchし、ホスト名ごとのエラー件数を表示してください

     

    良い例:

    最初に直近1時間のログをFetchしてください。

    次にERRORログのみをFilterしてください。

    その後、ログをホスト名ごとに集計してください。

    最後にホスト名とエラー件数を表示してください。

     

    Dynatracetips#86_5
    Dynatracetips#86_5

    #86- 出力結果イメージ3

     

     

    ③ 徐々に詳細化する

    DQL生成がうまくいかない場合は、最初から複雑なプロンプトを書かず、シンプルな内容から段階的に条件を追加していきます。

    クエリ実行回数が増えることでライセンス消費が増加する可能性があるため、実行回数には注意してください

    ※特にシンプルなDQL(例:fetch logs)は広い範囲のデータをスキャンするため、1回あたりの負荷やコストが高くなる点にも注意が必要です。

     

    例:

    以下のプロンプトの「①+②」の結果と「①+②+③」の結果を比較します。

    直近1時間のERRORログを表示してください。

    次に、そのログをステータスごとに集計して件数を表示してください。

    次に、その集計結果を時系列で表示してください。

     

    「①+②」:意図通りのDQLが生成される

    Dynatracetips#86_6
    Dynatracetips#86_6

    #86- 出力結果イメージ4

     

    「①+②+③」:条件追加によりDQL生成が複雑になり、正しく生成できない場合がある

    Dynatracetips#86_7
    Dynatracetips#86_7

    #86- 出力結果イメージ5

     

    条件が増えることで、AIの解釈が難しくなり、正しく生成できない場合があります。

     

      

     

    1. まとめ

    2. DQLの自動生成は便利な機能ですが、プロンプトの書き方によって生成結果が変わるため、本記事でご紹介したようなポイントを押さえることが重要になります。

      また、自然言語でDQLを作成できるため、Dynatraceの専門的な知識がなくても活用しやすく、導入や学習の負担を抑えられる点もメリットです。

      ぜひ本機能を活用し、効率的なデータ分析に役立ててください。

     

    1. #86 DQLの自動生成については、以上となります。 
      お読みいただきありがとうございました! 
    2.  
    3. ※記事執筆時 Dynatrace SaaS Version:1.341
    4.  

      1.  
      2.  
      1.  
      2.  

    コメント一覧

      1.  

    執筆者

    M.E. 

    営業技術本部 カスタマーサクセス統括部 Dynatrace技術サービス部 

    関連記事

      1.  
    1.