こんにちは。ES/1 Shelty担当の川越です。
今回は、現在設計中の新しいダッシュボード機能についてご紹介します。
新しいダッシュボードでは、1ヶ月、13カ月といった長期データから、直近30分等の短いレンジの稼働グラフも自由にレイアウトすることができます。
まだ設計段階で試行錯誤を続けている機能ではありますが、その過程も含めてお伝えしていけたらと思っております。
通常の機能紹介記事よりもカジュアルに、設計の舞台裏をお届けいたしますので、お付き合いいただければ幸いです。
ES/1 Sheltyのシステムダッシュボードは、リアルタイムでシステムのサービスレスポンスや、トランザクション件数、各種リソース状況が一覧できるのが特徴です。
カスタマイズによって必要なグラフを選択し、環境に合わせたビューを表示できます。
ES/1 Sheltyの顔といっても過言ではないほど、頻繁にご利用頂いている画面です。
1秒間隔のデータで精緻な情報を表示できるのが強みですが、表示できる期間が最長で3時間までとなっています。
これは、以下が主な理由になっています。
製品開発当初に、使い勝手を追求して策定した仕様ですが、性能管理を長年実施しているお客様から、「長期間のデータもダッシュボード上で確認したい!」というご要望をたくさんいただきました。
そこで、新たにデータの範囲が長くても、短くても、どんなデータでも欲しい情報にすぐにアクセスできるダッシュボードの開発に着手することとなりました。
この時点での課題は、長期間のデータをどうやって高速に処理するか。また、データの表示範囲に合わせたグラフ表現をどのように行うか、どちらも妥協できない必達のテーマです。
現在、ES/1 Sheltyの取り扱うデータは主に1秒間隔で取得されるものと、そのデータを15分単位→1時間単位に集約したものになります。
1秒間隔のデータはリアルタイム監視に、集約したデータは長期間での分析用に生成されています。
レポートや、Ad-hoc分析機能から集約データを利用できます。
長期データの取り扱いに関して設計チームの中で議題に上がったのが、「データ粒度を選択するのがストレスになる」ということでした。
Ad-hoc分析メニューでは、最初にデータ種類を選択する必要があり、そこで「1秒間隔」、「15分間隔」、「1日」からデータ種別を選択するフローがあります。
しかし、データを確認する時には例えば「今月1ヶ月分」、「直近1時間」のように、この範囲のデータを確認したいという意図で操作するため、「どの粒度データを使ったら良いか」というのは操作時に負担になります。
そこで、データの範囲に合わせて、データの粒度を自動最適化する方針になりました。
ここで、開発者のグラフビューへの愛とこだわりを紹介させてください。
以下のリストは、縦にグラフ表示期間を、横にデータの解像度(粒度)を並べ、どの粒度でのグラフを表示すると良いかを調査したものです。
例えば、6時間のデータを1秒で表示すると21,600プロットになる、といったことが示されています。
それぞれのグラフを見比べた結果、青く塗りつぶされている、プロット数が30~300の範囲になると最も見やすいグラフになることを示しています。細かいですね…。
筆者には、開発者の「どうしてもグラフビューの分かりやすさは譲れない!」という信念が現れている表のように思えます。
設計チームでも表示の粒度について議論を重ね、データ粒度のバリエーションに「1分」「1時間」を加えることに決定しました。
しかし、データ表示範囲によってはデータ量が多すぎたり、少なすぎたりするため、画面表示時にデータを集約する処理も加えることとしました。
これにより、1分、1時間に加えて10秒、5分、1日といった粒度でもデータが見えるようになります。
すべて事前に用意しなかったのは、データのサブセットを増やすことで、データ量や、Shelty Manager内部の処理負荷が重たくなることを避けるためです。
事前集約と画面上での集約を両方採用することで、処理を高速化し、尚且つシームレスにデータを表示する道筋が経ちました。
今回は新しいダッシュボードで長期データと短期データを同時に取り扱うための設計についてのご紹介となります。
一日も早く、性能管理にフルに活用していただける新しいダッシュボード機能をお届けできるよう鋭意設計中です。
今後ともどうぞよろしくお願いいたします。