2020.08.18

#10 DynatraceのUser sessions queryを使ってみよう

ユーザー行動データを抽出して分析する

目次

開く

     

    パフォーマンス管理ソリューションDynatraceでは、監視対象のアプリケーションをユーザーが操作する度にその行動データを詳細にキャプチャしています。
    以前のTech Reportでは、このユーザーアクションについて、原因特定までの分析の流れをご紹介しました。
    (詳細は、こちらの記事をご確認ください:Dynatraceの分析手法について ~ユーザーアクション全体から原因箇所を特定する~
    このような分析方法に加え、DynatraceではUser sessions query(USQL)というDynatraceの利用者が自身でデータを集計できる機能があります。本記事ではUser sessions queryの概要と簡単な使用方法についてご紹介します。

     

     

    1.User sessions queryの概要

    1. User sessions queryとは、冒頭でも記載したとおり、ユーザーの行動データをDynatraceの利用者が自身で集計できる機能です。
      Dynatraceでは、ユーザーの行動データをリレーショナルデータベースに保存はしていないため、一般的なSQL言語とは異なりますが、一部SQLの概念に依存しており、構文も似ています。そのため、Dynatraceの使用を開始したばかりという方も、SQLを使用したことがあれば比較的簡単に使用することが可能です。Dynatrace独自のクエリを用いて、利用者が抜き出したい特定のユーザーアクションやブラウザ単位などで集計し、グラフ化することができます。


     

    2.User sessions queryを使ってみよう

    1. 実際にUser sessions queryを使ってみましょう。Navigation menuからUser sessionsを選択します。
      右上に表示されている「User Sessions query」をクリックします。

     

     

    10_1
    10_1

     

     

    黒い入力フォームが表示されます。この部分に集計したいデータになるようにクエリを記載します。
    User session queryは直接入力もできますが、以下の画面のように、次の入力候補をある程度自動的に表示します。次の入力候補を自動的に出力してくれるので、SQL文の知識は少しだけという方も気軽に利用していただけます。

     

     

    10_2
    10_2

     

     

    例として、以下のようなクエリを記述します。

     

    <クエリの抽出条件>

    • ユーザーアクションの"duration"を「応答時間」とし、ユーザーアクション名と共にUserSessionからセレクト

    • 抜き出すアクションは"REAL_USER"(ロボット要求などが除外されます)

    • "browserFamily"(ブラウザの種別)は"Chrome"のみ

    • 応答時間とユーザーアクション毎にグルーピング

    • 応答時間の遅い順に表示



    データを抜き出す対象の時間は画面右上のタイムフレーム内が対象です。
    クエリを記載した後は「Run query」をクリックします。

     

     

    10_3
    10_3

     

     

     

    10_3_2
    10_3_2

     

     

    実行結果が表示されました。画像の大きさの関係で上記はTOP 3までしか載せておりませんが、Dynatraceの仕様としてデフォルト値はTOP 50で凡例が表示されます。TOP 50以上を表示したい場合、TOP関数を使用します。
    ※対象期間とデータの数によっては実行時間が長くなったり、すべて表示できないケースがあります。
    ※そのほか使用できる関数に関してはドキュメントをご確認ください。

     

     

    3. 特定アクションに絞って抽出し、ダッシュボードに貼り付けてみよう

    1. 次に特定のユーザーアクションについて抽出してみます。次のようなクエリを記述しました。

     

     

    10_4
    10_4

    図5:夜間処理終了時間推移

     

     

    <クエリの抽出条件>

    • ユーザーアクションのスタートタイム、平均応答時間を"useraction"からセレクト
    • "DoLogin"アクションのみ抽出
    • スタートタイムでグルーピング

     

     

    10_5
    10_5

     

     

    このケースでは特定のユーザーアクションに絞ったため、「Bar chart」形式で表示されています。
    折れ線グラフの方がわかりやすそうなので、「Line chart」を選択してみます。

     

     

    10_6
    10_6

     

     

    折れ線グラフで応答時間が表示されました。このように、利用者が抽出したデータの集約単位によって適したグラフのタイプを選択することが可能です。
    User session queryで作成したグラフは、そのデータへのアクセス権を持っている利用者にURLを共有することで閲覧することができます。
    また、ダッシュボードに貼り付けることもできるため、ダッシュボードごと他の利用者に共有することも可能です。グラフ右上の「Pin to dashboard」をクリックし、対象のダッシュボードを選択すると貼り付けることができます。ダッシュボードに表示させることで作成したグラフを定常的に確認することができます。

     

     

    10_7
    10_7

     

     

    4.まとめ

    今回は、ユーザーアクションデータのさらなる活用方法としてUser sessions queryについて記載しました。
    クエリを記述することで、Dynatraceの利用者が集計したい単位でデータを抽出することができるため、抽出したいデータの形が決まっている場合、非常に有効な手段です。日頃Dynatraceをご覧いただいている中で、「もう少し違った集計単位で表示されていれば・・」、「こういう表示はできないのか」と感じている方は是非User sessions queryを試してみてはいかがでしょうか。
    本記事が日頃のパフォーマンス管理の参考になれば幸いです。


    執筆者

    Y.T. 

    営業技術本部 技術サービス統括部 技術サービス1部 

    お客様担当SEとして、製品の構築から活用方法までの一連のサポートを担当
    また、お客様環境にて性能問題が発生した際には、製品のアウトプットを利用し、問題解決に向けた調査/提案業務を実施

    ■経歴
    1999年  入社
    2000年  製品テスト等、ES/1シリーズの品質管理業務を担当
    2006年  セキュリティ製品のお客様サポートを兼務
    2012年~ 中部でのお客さまサポートを担当

    主にMF/CS製品を利用したシステムリソース情報からの性能管理サポートに従事
    近年は、上記に加えAPM製品を利用したユーザー体感レスポンスやアプリケーション視点での性能管理サポートにも従事

    関連記事