パフォーマンス管理ソリューションDynatraceでは、監視対象のアプリケーションをユーザーが操作する度にその行動データを詳細にキャプチャしています。
以前のTech Reportでは、このユーザーアクションについて、原因特定までの分析の流れをご紹介しました。
(詳細は、こちらの記事をご確認ください:Dynatraceの分析手法について ~ユーザーアクション全体から原因箇所を特定する~)
このような分析方法に加え、DynatraceではUser sessions query(USQL)というDynatraceの利用者が自身でデータを集計できる機能があります。本記事ではUser sessions queryの概要と簡単な使用方法についてご紹介します。
User sessions queryとは、冒頭でも記載したとおり、ユーザーの行動データをDynatraceの利用者が自身で集計できる機能です。
Dynatraceでは、ユーザーの行動データをリレーショナルデータベースに保存はしていないため、一般的なSQL言語とは異なりますが、一部SQLの概念に依存しており、構文も似ています。そのため、Dynatraceの使用を開始したばかりという方も、SQLを使用したことがあれば比較的簡単に使用することが可能です。Dynatrace独自のクエリを用いて、利用者が抜き出したい特定のユーザーアクションやブラウザ単位などで集計し、グラフ化することができます。
実際にUser sessions queryを使ってみましょう。Navigation menuからUser sessionsを選択します。
右上に表示されている「User Sessions query」をクリックします。
黒い入力フォームが表示されます。この部分に集計したいデータになるようにクエリを記載します。
User session queryは直接入力もできますが、以下の画面のように、次の入力候補をある程度自動的に表示します。次の入力候補を自動的に出力してくれるので、SQL文の知識は少しだけという方も気軽に利用していただけます。
例として、以下のようなクエリを記述します。
<クエリの抽出条件>
ユーザーアクションの"duration"を「応答時間」とし、ユーザーアクション名と共にUserSessionからセレクト
抜き出すアクションは"REAL_USER"(ロボット要求などが除外されます)
"browserFamily"(ブラウザの種別)は"Chrome"のみ
応答時間とユーザーアクション毎にグルーピング
応答時間の遅い順に表示
データを抜き出す対象の時間は画面右上のタイムフレーム内が対象です。
クエリを記載した後は「Run query」をクリックします。
実行結果が表示されました。画像の大きさの関係で上記はTOP 3までしか載せておりませんが、Dynatraceの仕様としてデフォルト値はTOP 50で凡例が表示されます。TOP 50以上を表示したい場合、TOP関数を使用します。
※対象期間とデータの数によっては実行時間が長くなったり、すべて表示できないケースがあります。
※そのほか使用できる関数に関してはドキュメントをご確認ください。
<クエリの抽出条件>
このケースでは特定のユーザーアクションに絞ったため、「Bar chart」形式で表示されています。
折れ線グラフの方がわかりやすそうなので、「Line chart」を選択してみます。
折れ線グラフで応答時間が表示されました。このように、利用者が抽出したデータの集約単位によって適したグラフのタイプを選択することが可能です。
User session queryで作成したグラフは、そのデータへのアクセス権を持っている利用者にURLを共有することで閲覧することができます。
また、ダッシュボードに貼り付けることもできるため、ダッシュボードごと他の利用者に共有することも可能です。グラフ右上の「Pin to dashboard」をクリックし、対象のダッシュボードを選択すると貼り付けることができます。ダッシュボードに表示させることで作成したグラフを定常的に確認することができます。
今回は、ユーザーアクションデータのさらなる活用方法としてUser sessions queryについて記載しました。
クエリを記述することで、Dynatraceの利用者が集計したい単位でデータを抽出することができるため、抽出したいデータの形が決まっている場合、非常に有効な手段です。日頃Dynatraceをご覧いただいている中で、「もう少し違った集計単位で表示されていれば・・」、「こういう表示はできないのか」と感じている方は是非User sessions queryを試してみてはいかがでしょうか。
本記事が日頃のパフォーマンス管理の参考になれば幸いです。