(57)【要約】  いくつかの例では、ストレージシステムの状態又は性能の少なくとも１つに関係する複数のメトリックのデータを提示するユーザインタフェースを提示するための指示をコンピュータシステムが受信してもよい。コンピュータシステムは、ストレージシステムから受信されるメッセージを処理するワークフローの状態を決定してもよい。更にコンピュータシステムは、ワークフローの状態に基づいてユーザインタフェース内で提示するための複数のメトリック可視化終了時時刻決定してもよい。コンピュータシステムは複数のメトリック可視化をレンダリングしてもよく、各メトリック可視化は決定された終了時刻を有する。更にコンピュータシステムは、複数のレンダリングされたメトリック可視化をディスプレイ上のユーザインタフェース内で提示するために提供することができる。
2021516394.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数のプロセッサと、
前記１つ又は複数のプロセッサによって実行されると、
ストレージシステムの状態又は性能の少なくとも１つに関係する複数のメトリックのデータを提示するユーザインタフェースを提示するための指示を受信すること、
前記ストレージシステムから受信されたメッセージを処理するワークフローの状態を決定すること、
前記ワークフローの前記状態に基づいて、前記ユーザインタフェース内で提示するための複数のメトリック可視化の終了時刻を決定すること、
各メトリック可視化が前記決定された終了時刻を有する前記複数のメトリック可視化をレンダリングすること、及び
前記複数のレンダリングされたメトリック可視化をディスプレイ上の前記ユーザインタフェース内で提示するために提供すること
を含む操作を実行するように前記１つ又は複数のプロセッサを構成する実行可能命令を保持する１つ又は複数の非一時的コンピュータ可読媒体と、
を含む、システム。
【請求項２】
請求項１に記載のシステムにおいて、
前記メッセージのそれぞれが個々のタイムスタンプを含み、
前記ワークフローは、前記ワークフローによる処理の前に受信メッセージを待ち行列に並べるための待ち行列を含み、
前記ワークフローの前記状態を決定することは、前記待ち行列に直近に追加されたメッセージの第１のタイムスタンプを、直近に完了した前記ワークフローに関するメッセージの第２のタイムスタンプと比較することを含む、
システム。
【請求項３】
請求項２に記載のシステムにおいて、
前記第１のタイムスタンプが前記第２のタイムスタンプと一致する場合、前記複数のメトリック可視化の前記終了時刻を決定することは、現在時間に基づいて前記終了時刻を設定することを含む、
システム。
【請求項４】
請求項２に記載のシステムにおいて、
前記第１のタイムスタンプが前記第２のタイムスタンプと一致しない場合、前記複数のメトリック可視化の前記終了時刻を決定することは、前記第２のタイムスタンプに基づいて前記終了時刻を設定することを含む、
システム。
【請求項５】
請求項２に記載のシステムにおいて、
前記ワークフローは、前記受信メッセージに索引付けするための索引付処理を含み、
前記ワークフローの前記状態を決定することは、前記索引付処理と通信して前記第１のタイムスタンプ及び前記第２のタイムスタンプを決定することを含む、
システム。
【請求項６】
請求項５に記載のシステムにおいて、
前記索引付処理と通信して前記第１のタイムスタンプ及び前記第２のタイムスタンプを決定することは、前記１つ又は複数のプロセッサ上で実行される監視アプリケーションが、アプリケーションプログラミングインタフェースを使用して前記１つ又は複数のプロセッサ上で実行される索引付プログラムから前記第１のタイムスタンプ及び前記第２のタイムスタンプを得ることを含む、
システム。
【請求項７】
請求項２に記載のシステムにおいて、
前記ユーザインタフェース内で提示するための前記複数のメトリック可視化それぞれの開始時刻を決定することを更に含み、前記開始時刻は個々のメトリック可視化の前記終了時刻から、個々のメトリック可視化のそれぞれの時間窓を減算することによって決定される、
システム。
【請求項８】
請求項１に記載のシステムにおいて、
前記メッセージは、アクセスログ又はイベントログの少なくとも１つを含む、前記ストレージシステムによって又は前記ストレージシステム上で実行される操作に関する情報を含むシステムログメッセージであり、前記アクセスログは前記ストレージシステムによって記憶されるオブジェクトデータに対してユーザによって行われるアクションに関する情報を含み、前記イベントログは管理アクションに関する情報を含む、
システム。
【請求項９】
請求項１に記載のシステムにおいて、
前記複数のメトリックのデータは、前記ストレージシステム又は前記ストレージシステムと対話する１つ若しくは複数の演算装置から、１つ又は複数のアプリケーションプログラミングインタフェースを介して得られるデータを含む、
システム。
【請求項１０】
請求項１に記載のシステムにおいて、
前記レンダリングされたメトリック可視化を含む前記ユーザインタフェースがディスプレイ上に提示され、
時間閾値は、前記時間閾値が満了する前に、前記レンダリングされたメトリック可視化の再レンダリングを制限するために適用される、
システム。
【請求項１１】
ストレージシステムの状態又は性能の少なくとも１つに関係する複数のメトリックのデータを提示するユーザインタフェースを提示するための指示を１つ又は複数のプロセッサによって受信すること、
前記ストレージシステムから受信されるメッセージを処理するワークフローの状態を決定すること、
前記ワークフローの前記状態に基づいて前記ユーザインタフェース内で提示するための複数のメトリック可視化の終了時刻を決定すること、
各メトリック可視化が前記決定された終了時刻を有する前記複数のメトリック可視化をレンダリングすること、及び
前記複数のレンダリングされたメトリック可視化をディスプレイ上の前記ユーザインタフェース内で提示するために提供すること
を含む、方法。
【請求項１２】
請求項１１に記載の方法において、
前記メッセージのそれぞれが個々のタイムスタンプを含み、前記ワークフローが、前記ワークフローによる処理の前に受信メッセージを待ち行列に並べるための待ち行列を含み、前記方法が、前記待ち行列に直近に追加されたメッセージの第１のタイムスタンプを、直近に完了した前記ワークフローに関するメッセージの第２のタイムスタンプと比較することによって前記ワークフローの前記状態を決定することを更に含む、
方法。
【請求項１３】
請求項１２に記載の方法において、
前記第１のタイムスタンプが前記第２のタイムスタンプと一致する場合、前記複数のメトリック可視化の前記終了時刻を決定することは現在時間に基づいて前記終了時刻を設定することを含み、
前記第１のタイムスタンプが前記第２のタイムスタンプと一致しない場合、前記複数のメトリック可視化ンの前記終了時刻を決定することは前記第２のタイムスタンプに基づいて前記終了時刻を設定することを含む、
方法。
【請求項１４】
１つ又は複数のプロセッサによって実行されるとき、
ストレージシステムの状態又は性能の少なくとも１つに関係する複数のメトリックのデータを提示するユーザインタフェースを提示するための指示を受信すること、
前記ストレージシステムから受信されるメッセージを処理するワークフローの状態を決定すること、
前記ワークフローの前記状態に基づいて前記ユーザインタフェース内で提示するための複数のメトリック可視化の終了時刻を決定すること、
各メトリック可視化が前記決定された終了時刻を有する、前記複数のメトリクビジュアライゼーションをレンダリングすること、及び
前記複数のレンダリングされたメトリック可視化をディスプレイ上の前記ユーザインタフェース内で提示するために提供すること
を行うように前記１つ又は複数のプロセッサをプログラムする命令を記憶する、１つ又は複数の非一時的コンピュータ可読媒体。
【請求項１５】
請求項１４に記載の１つ又は複数のコンピュータ可読媒体において、
前記メッセージのそれぞれは、個々のタイムスタンプを含み、
前記ワークフローは、前記ワークフローによる処理の前に受信メッセージを待ち行列に並べるための待ち行列を含み、
前記１つ又は複数のプロセッサが、前記待ち行列に直近に追加されたメッセージの第１のタイムスタンプを、直近に完了した前記ワークフローに関するメッセージの第２のタイムスタンプと比較することにより前記ワークフローの前記状態を決定するように更にプログラムされる、
１つ又は複数のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザインタフェース及び関連データを制御する技術分野に関する。
【背景技術】
【０００２】
コンピュータシステムを監視するためのユーザインタフェース（ＵＩ）は、ＵＩ内でユーザに提示するための様々なプッシュ技法及び／又はプル技法によって様々なソースからデータを受信することができる。パワー不足のハードウェアがシステムに含まれる場合、又はデータ処理の遅延を引き起こす他の何らかの問題がある場合、ＵＩ内で提示されるデータの一部分がデータの他の部分よりも遅れる場合がある。かかる遅れは、ＵＩが一部の現行データを提示する一方で、ユーザインタフェースが提示されるときに他のデータが更新されたり又は失われたりすることを引き起こし得る。この問題は、ＵＩ及び含まれる可視化の連続的な再レンダリングを引き起こし得る。ＵＩの再レンダリングは、再レンダリングが行われるときＵＩの一部又はＵＩ全体のちらつきを引き起こす場合があり、そのことは不十分なユーザ体験をもたらし得る。更に、ＵＩの継続的な再レンダリングは演算コストが高い場合があり、そのことはＵＩを提示する演算装置の性能を劣化させ得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
いくつかの実装形態は、ストレージシステムの状態又は性能の少なくとも１つに関係する複数のメトリックを含むデータを表示するユーザインタフェースを提示するための指示を受信することができるコンピュータシステムを含む。コンピュータシステムは、ストレージシステムから受信されるメッセージを処理するワークフローの状態を決定することができる。更にコンピュータシステムは、ワークフローの状態に基づいてユーザインタフェース内で提示するための複数のメトリック可視化の終了時刻を決定することができる。コンピュータシステムは複数のメトリック可視化をレンダリングすることができ、各メトリック可視化は決定された終了時刻を有する。更にコンピュータシステムは、提示するために複数のレンダリングされたメトリック可視化をディスプレイ上のユーザインタフェース内に提供することができる。
【図面の簡単な説明】
【０００４】
添付図面を参照して詳細な説明を記載する。図中、参照番号の先頭の数字はその参照番号が初めて登場した図面を識別する。異なる図面内で同じ参照番号を使用することは同様の又は同一のアイテム又は特徴を示す。
【０００５】
【図１】図１は、いくつかの実装形態に係るシステムの構成例を示す。
【０００６】
【図２】図２は、いくつかの実装形態に係る処理例の流れ図及び対応するメトリック可視化を示す。
【０００７】
【図３】図３は、いくつかの実装形態に係る監視ユーザインタフェース例を示す。
【０００８】
【図４】図４は、いくつかの実装形態に係る、メトリック可視化の終了時刻を決定する一例を示す。
【０００９】
【図５】図５は、いくつかの実装形態に係る処理の一例を示す流れ図である。
【００１０】
【図６】図６は、いくつかの実装形態に係るクライアント装置の構成例を示す。
【発明を実施するための形態】
【００１１】
本明細書の一部の実装形態は、ユーザインタフェース（ＵＩ）のいくつかのデータの可用性を遅延させ得る構成を有するコンピュータシステム内でＵＩを生成するための技法及び構成を対象とする。一例として、監視アプリケーションは、１つ又は複数のワークフローが最新或いは現行のものかどうかを判定することができる。ワークフローが現行のものではないと監視アプリケーションが判定する場合、各メトリックの終了時刻がワークフローに関して受信される直近の真のデータ点になるように定めることにより、監視アプリケーションはＵＩ内で提示される複数のメトリック可視化の時間フレームを再定義することができる。いくつかの事例では、第１のタイムスタンプ（ｔ１）は、ワークフローの待ち行列に入るための、直近に待ち行列に入れられたワークフロー入力項目に対応してもよい。更に第２のタイムスタンプ（ｔ２）は、ワークフローによって完了されている、直近に完了したワークフロー項目に対応してもよい。
【００１２】
ｔ１とｔ２とが同じだと判定された場合、この判定はワークフローが現行のものであること、及び使用される終了時刻が現在時刻又は他のタイミング考察に基づき得ることを示す。その一方でｔ１とｔ２とが異なると判定された場合、この判定はデータ処理ワークフロー内のバックログを示し得る。監視アプリケーションが、データ処理ワークフローがバックログされていることを判定すすると、監視アプリケーションは、ＵＩ内で表示される全てのメトリック可視化の終了時刻としてｔ２を使用するようにＵＩ内のメトリクを設定してもよい。従って、メトリック可視化の全ては、メトリックの一部について受信されるデータがメトリックの他のものについて受信されるデータに先行していても、メトリック可視化が時間的に同期されるように、同じ終了時刻に設定されてもよい。時間が進むにつれて、監視アプリケーションは後の時点において再びｔ１及びｔ２を取得し比較することにより、次の終了時刻（例えば新たなｔ２、又はワークフローが追いつく場合は現在時刻）を決定してもよい。
【００１３】
いくつかの例は、ストレージシステムを含むコンピュータシステムの性能をほぼリアルタイム（ＮＲＴ：ｎｅａｒ  ｒｅａｌ  ｔｉｍｅ）で監視するための監視演算装置を構成する監視アプリケーションを含む。監視アプリケーションは、コンピュータシステムの性能に関する複数のメトリックの複数の可視化を提供してもよい。複数の可視化は、システムの現状及び性能についての可視表示をユーザに与えるために、１つ又は複数の監視ＵＩ（いくつかの例ではダッシュボードと呼ばれることもある）内で一緒に提示されてもよい。監視アプリケーションは、監視アプリケーションによって判定されるメトリックのそれぞれについて設定され得る既定値又は他の閾値に基づいて、ユーザに対する警告又は他の通知をトリガしてもよい。
【００１４】
本明細書の実装形態は、ＵＩ内の複数の可視化を同期するための複数の可視化ウィンドウを設定するための処理を含む。時間が進むにつれて、監視アプリケーションは実時間と一致してもしなくてもよい新たな「現在」時刻を決定してもよく、可視化を生成するために使用した前回の事項と新たな可視化時刻との間の任意のメトリックデータの更新を決定してもよい。従って本明細書の例は、ＵＩのメトリック可視化の１つ又は複数が遅延し、後で追いつく場合に、可視化全体を再生成する演算負荷を低減することを提供する。
【００１５】
解説のために、いくつかの実装形態例は、データストレージを管理するための１つ又は複数のサービス演算装置及び複数のクライアント装置と対話する、１つ又は複数のネットワークストレージシステムの性能を監視する１つ又は複数の監視演算装置の環境において説明する。但し、本明細書の実装形態は提供する特定の例に限定されず、本明細書の開示に照らして当業者に明らかになるように他の種類の演算システム構成、他の種類のストレージ環境、他の種類のクライアント及びサーバ構成、他の種類のデータ等に及んでもよい。
【００１６】
図１は、いくつかの実装形態に係る、ＵＩを提示するように構成されたシステム１００の構成例を示す。いくつかの事例では、システム１００は複数の演算装置のクラスタに相当してもよいが、本明細書の実装形態は特定のシステム構成に限定されない。システム１００は、１つ又は複数のネットワーク１０５等によってストレージシステム１０４と通信することができる或いはストレージシステム１０４に接続されている、本明細書ではノードとも呼ばれる、少なくとも１つのサービス演算装置１０２を含む。更にサービス演算装置１０２は、以下で更に論じるように様々な種類の演算装置の何れかとすることができる１つ又は複数のクライアント演算装置１０８と、１つ又は複数のネットワーク１０６上で通信可能であってもよい。加えてクライアント演算装置１０８は、サービス演算装置１０９を介してストレージシステム１０４にアクセスするために等、１つ又は複数のサービス演算装置１０９と通信可能であってもよい。従って、サービス演算装置１０９もシステム１００内のノードであってもよい。
【００１７】
いくつかの例では、サービス演算装置１０２及び１０９は、１つ又は複数のサーバ又は任意の数のやり方で実装され得る他の種類の演算装置を含んでもよい。例えばサーバの場合、プログラム、アプリケーション、他の機能要素、及びデータストレージの少なくとも一部は、サーバのクラスタ、サーバファーム、データセンタ、クラウドによってホストされる演算サービス等の中の少なくとも１つのサーバ上に実装されてもよいが、他のコンピュータアーキテクチャが追加で又は代替的に使用されてもよい。図示の例では、サービス演算装置１０２及び１０９は、それぞれ、１つ又は複数のプロセッサ１１０、１つ又は複数のコンピュータ可読媒体１１２、及び１つ又は複数の通信インタフェース１１４を含んでもよく、又はそれらに関連してもよい。
【００１８】
各プロセッサ１１０は単一の処理ユニット又は幾つかの処理ユニットでもよく、単一の若しくは複数の演算ユニット又は複数の処理コアを含んでもよい。プロセッサ１１０は、１つ又は複数の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、ステートマシーン、論理回路、及び／又は動作命令に基づいて信号を操る任意のデバイスとして実装することができる。一例としてプロセッサ１１０は、本明細書に記載のアルゴリズム及び処理を実行するように特にプログラムされ又は構成された任意の適切な種類の１つ若しくは複数のハードウェアプロセッサ及び／又は論理回路を含んでもよい。プロセッサ１１０は、本明細書に記載の機能を実行するようにプロセッサ１１０をプログラムし得る、コンピュータ可読媒体１１２内に記憶されるコンピュータ可読命令を取り出して実行するように構成してもよい。
【００１９】
コンピュータ可読媒体１１２は、コンピュータ可読命令、データ構造、アプリケーションプログラムモジュール、又は他のデータ等の情報を記憶するための任意の種類の技術によって実装される揮発性メモリ及び不揮発性メモリ、及び／又は取外し可能媒体及び取外し不能媒体を含んでもよい。例えばコンピュータ可読媒体１１２は、これだけに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、光学ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、ＲＡＩＤストレージシステム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を記憶するために使用することができ、演算装置によってアクセス可能な他の任意の媒体を含んでもよい。サービス演算装置１０２及び１０９の構成にもよるが、非一時的コンピュータ可読媒体がエネルギ、搬送波信号、電磁波、及び／又は信号自体等の媒体を除外すると言及される限りにおいて、コンピュータ可読媒体１１２は有形の非一時的媒体であってもよい。いくつかの事例では、コンピュータ可読媒体１１２はサービス演算装置１０２及び１０９と同じ位置にあってもよい一方、他の例ではコンピュータ可読媒体１１２はサービス演算装置１０２及び１０９と部分的に離れていてもよい。例えばいくつかの事例では、コンピュータ可読媒体１１２はストレージシステム１０４内のストレージの一部を含んでもよい。
【００２０】
コンピュータ可読媒体１１２は、プロセッサ１１０によって実行可能な任意の数の機能要素を記憶するために使用されてもよい。多くの実装形態においてこれらの機能要素は、プロセッサ１１０によって実行可能であり且つ実行時に本明細書ではサービス演算装置１０２及び１０９によるものとするアクションを実行するようにプロセッサ１１０をとりわけプログラムする命令又はプログラムを含む。サービス演算装置１０２のコンピュータ可読媒体１１２内に記憶される機能要素は、索引付アプリケーション１１６、検索アプリケーション１１８、及び監視アプリケーション１２０を含んでもよく、そのそれぞれは１つ又は複数のコンピュータプログラム、アプリケーション、実行可能コード、又はその一部を含んでもよい。例えば索引付けアプリケーション１１６は、以下で更に論じるように１つ又は複数の索引１２２を生成するためにストレージシステム１０４から受信されるシステムログメッセージ１２１に索引付けするためのワークフローを実行してもよい。更に、検索アプリケーション１１８は、クライアント装置１０８から検索クエリ１２３を受信してもよく、それに応答して検索結果応答１２４を提供してもよい。更に、監視アプリケーション１２０は、システム１００から情報を受信してもよく、ユーザ１２８が見るためにディスプレイ１２６上に監視ＵＩ１２５を提示してもよい。
【００２１】
加えて、サービス演算装置１０９のコンピュータ可読媒体１１２内に記憶される機能要素は、サーバプログラム１３０及びデータベースプログラム１３２を含んでもよく、そのそれぞれは１つ又は複数のコンピュータプログラム、アプリケーション、実行可能コード、又はその一部を含んでもよい。例えばサーバプログラム１３０は、クライアント装置１０８及びストレージシステム１０４との通信機能を提供してもよい。データベースプログラム１３２は、ストレージシステム１０４において記憶されるデータに対応する１つ又は複数のファイルシステム１３４等のメタデータを含むメタデータデータベース１３３を生成し管理するためのデータベース管理機能を含んでもよい。
【００２２】
サービス演算装置１０２及び１０９のコンピュータ可読媒体１１２内に記憶される追加の機能要素は、サービス演算装置１０２及び１０９の様々な機能を制御し管理するためのオペレーティングシステム（図１には不図示）を含んでもよい。いくつかの事例では、機能要素はコンピュータ可読媒体１１２の記憶部分内に記憶され、コンピュータ可読媒体１１２のローカルメモリ部分内にロードされ、１つ又は複数のプロセッサ１１０によって実行されてもよい。
【００２３】
加えてコンピュータ可読媒体１１２は、本明細書に記載の機能及びサービスを実行するのに使用されるデータ及びデータ構造を記憶してもよい。例えば以下で更に論じるように、サービス演算装置１０２のコンピュータ可読媒体１１２は、索引１２２並びに１つ又は複数のアプリケーションプログラミングインタフェース（ＡＰＩ）に対するＡＰＩ情報１３５を記憶してもよい。更に、サービス演算装置１０９のコンピュータ可読媒体１１２は、メタデータデータベース１３３を記憶してもよい。図示の例では、メタデータデータベース１３３は、複数のファイルシステム１３４を含む。サービス計算装置１０２及び１０９は、他の機能要素及びデータも含み又は維持してもよく、それらは、プログラム、ドライバ等及び機能要素によって使用され又は生成されるデータを含んでもよい。更に、サービス演算装置１０２及び１０９は他の多くの論理的、プログラム的、及び物理的な構成要素を含むことができ、そのうち上記で記載したものは本明細書の解説に関係する例に過ぎない。加えて、この例ではサービス演算装置１０２及び１０９を別個の計算装置として示すが、他の例ではサービス演算装置１０２及び１０９は同じ演算装置であり得る。
【００２４】
通信インタフェース１１４は、１つ又は複数のネットワーク１０５及び１０６上等において他の様々な装置との通信を可能にするための１つ又は複数のインタフェース及びハードウェア構成要素を含んでもよい。従って通信インタフェース１１４は、ストレージシステム１０４と通信するためにネットワーク１０５への接続を提供する１つ又は複数のポート、及びクライアント装置１０８と通信するためにネットワーク１０６への接続を提供する１つ又は複数のポートを含んでもよく、又はそれらに接続されていてもよい。例えば通信インタフェース１１４は、本明細書の他の箇所で更に挙げるように、ＬＡＮ、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク（例えばＷｉ−Ｆｉ）及び有線ネットワーク（例えばファイバチャネル、光ファイバ、イーサネット（登録商標））、直接接続、並びにＢＬＵＥＴＯＯＴＨ（登録商標）等の近距離通信等のうちの１つ又は複数を介しての通信を可能にしてもよい。
【００２５】
各クライアント装置１０８は、デスクトップ、ラップトップ、タブレット演算装置、モバイル装置、スマートフォン、ウェアラブルデバイス、及び／又はネットワーク上でデータを送信可能な他の任意の種類の演算装置等の任意の適切な種類の演算装置であってもよい。いくつかの事例では、クライアント装置１０８は図６に関して以下で論じるハードウェア構成及び論理構成を含んでもよい。クライアントユーザ１３６は、個々のユーザアカウント、ユーザログイン資格情報等により個々のクライアント装置１０８に関連してもよい。いくつかの例では、クライアント装置１０８がアプリケーションサーバ（図１には不図示）を介してサービス演算装置１０２又は１０９にアクセスしてもよい一方、他の例では、クライアント装置１０８がサービス演算装置１０２及び１０９に直接アクセスしてもよい。更にクライアント装置１０８は、１つ又は複数のネットワーク１０６を介して、別個のネットワークを介して、又は他の任意の適切な種類の通信接続を介してサービス演算装置１０２及び１０９と通信可能であってもよい。本明細書の開示の利益を得る当業者に数多くの他の改変形態が明らかになるであろう。
【００２６】
更に各クライアント装置１０８は、例えばストレージシステム１０４上に記憶するためのユーザデータを送信するために及び／又はストレージシステム１０４から記憶されたデータを受信するためにサーバプログラム１３０と通信するため等、それぞれのクライアント装置１０８上で実行されえもよいクライアントアプリケーション１３８の個々のインスタンスを含んでもよい。いくつかの事例では、アプリケーション１３８はブラウザを含んでもよく又はブラウザによって動作してもよい一方、他の事例ではアプリケーション１３８は、１つ又は複数のネットワーク１０６上でサーバプログラム１３０と通信することを可能にする通信機能を有する他の任意の種類のアプリケーションを含んでもよい。
【００２７】
１つ又は複数のネットワーク１０５及び１０６は、インターネット等の広域ネットワーク、イントラネット等のローカルエリアネットワーク（ＬＡＮ）、セルラネットワーク等の無線ネットワーク、Ｗｉ−Ｆｉ等のローカル無線ネットワーク、及び／又はＢＬＵＥＴＯＯＴＨ（登録商標）等の短距離無線通信、ファイバチャネル、光ファイバ、イーサネット、又は他の任意のかかるネットワークを含む有線ネットワーク、直接の有線接続、又はそれらの任意の組み合わせを含む任意の適切なネットワークを含んでもよい。従って、１つ又は複数のネットワーク１０５及び１０６は有線通信技術及び／又は無線通信技術の両方を含んでもよい。かかる通信に使用される構成要素はネットワークの種類、選択された環境、又はその両方に少なくとも部分的に依存し得る。かかるネットワーク上で通信するためのプロトコルはよく知られており、本明細書では詳しくは論じない。従って、サービス演算装置１０２及び１０９並びにクライアント装置１０８は、有線接続又は無線接続及びその組み合わせを使用して１つ又は複数のネットワーク１０６上で通信することができる。更にいくつかの事例では、サービス演算装置１０２及び／又は１０９とクライアント装置１０８との間に負荷平衡演算装置（図１には不図示）を配置してもよい。加えていくつかの例では、ネットワーク１０５をＬＡＮとすることができ、サービス演算装置１０２及び１０９をストレージシステム１０４に対してローカルに配置してもよい。
【００２８】
ストレージシステム１０４は１つ又は複数のストレージ演算装置１４０を含んでもよく、ストレージ演算装置１４０は、サービス演算装置１０２及び１０９に関して上記で論じた例の何れか等の１つ若しくは複数のサーバ又は他の任意の適切な演算装置を含んでもよい。ストレージ演算装置１４０は、それぞれ、１つ又は複数のプロセッサ１４２、１つ又は複数のコンピュータ可読媒体１４４、及び１つ又は複数の通信インタフェース１４６を含んでもよい。例えばプロセッサ１４２は、プロセッサ１１０に関して上記で論じた例の何れかに対応していてもよく、コンピュータ可読媒体１４４はコンピュータ可読媒体１１２に関して上記で論じた例の何れかに対応していてもよく、通信インタフェース１４６は通信インタフェース１１４に関して上記で論じた例の何れかに対応していてもよい。
【００２９】
加えてコンピュータ可読媒体１４４は、ストレージシステム１０４内に含まれるストレージ１５０上のデータの記憶を管理するために１つ又は複数のプロセッサ１４２によって実行される機能要素としてストレージプログラム１４８を含んでもよい。ストレージ１５０は、記憶装置１５６の１つ又は複数のアレイ１５４上にデータを記憶するための、ストレージ１５０に関連する１つ又は複数のコントローラ１５２を含んでもよい。例えばコントローラ１５２は、ＲＡＩＤ構成等にアレイ１５４を構成するために、及び／又は記憶装置１５６に基づく論理ユニットをストレージプログラム１４８に提示するために、及び基礎を成す物理記憶装置１５６上に記憶されるデータオブジェクト１５８等のデータを管理する等のためにアレイ１５４を制御してもよい。記憶装置１５６はハードディスクドライブ、ソリッドステートドライブ、光学ドライブ、磁気テープ、それらの組み合わせ等、任意の種類の記憶装置としてもよい。いくつかの例では、１つ又は複数のアレイ１５４は、オンデマンド型の記憶容量を提供するように構成されるシンプロビジョニングアレイを含んでもよい。更に、ストレージ１５０は、チームフォルダのための記憶容量並びに個々のユーザのための記憶容量を提供するために使用されるストレージプールを生成するために使用してもよい。
【００３０】
クライアントユーザ１３６は、ストレージシステム１０４上にデータを記憶する、ストレージシステム１０４からデータを取得する、ストレージシステム１０４からデータを削除するために等のクライアントストレージ操作１６０を実行するために、クライアント装置１０８上で実行されるクライアントアプリケーション１３８を使用してもよい。かかる操作を実行するために、クライアントアプリケーション１３８はサービス演算装置１０９上のサーバプログラム１３０と通信する。次に、サーバプログラム１３０は、クライアントアプリケーション１０８から受信される要求に応じて、ユーザデータを取得する、ユーザデータを記憶する、ユーザデータを削除するようにストレージシステム１０４に命令するため等の、ストレージシステム１０４とのサーバストレージ操作１６２を実行してもよい。
【００３１】
例えばクライアントユーザ１３６からの要求に応じて、ストレージ演算装置１４０がストレージ操作を実行するとき、ストレージ演算装置１４０はコンピュータ可読媒体１４４上に又は別の適切な記憶位置内に記憶され得るシステムログ１７０を生成してもよい。加えてストレージプログラム１４８は、システムログメッセージ１２１内のシステムログに関する情報をサービス演算装置１０２に送信してもよい。一例として、システムログメッセージ１２１は、シスログ形式メッセージとして送信されてもよい。シスログとは、メッセージを生成するソフトウェア、メッセージを記憶するシステム、及びメッセージを報告し分析するソフトウェアの分離を可能にする、ＩＥＴＦ（登録商標）（インターネット技術標準化委員会）によって維持されているメッセージロギング用の標準メッセージングプロトコルである。或いは、数多くの他の種類のメッセージングプロトコル及び形式の何れかを使用してもよい。従って、本明細書の実装形態はシスログプロトコルを使用することに限定されない。
【００３２】
いくつかの事例では、システムログメッセージ１２１は、ストレージシステム１０４によって実行される、書き込み、読み取り、移動、削除、名前変更等を行うためのアクセスアクション、例えばデータオブジェクト１５８とのクライアントユーザ１３６の対話等のそれぞれのアクション、アクションに対応していてもよい。加えて、システムログメッセージは、ストレージシステム１０４の設定を変更すること、ストレージシステム１０４内のデータを移動すること等のために管理者が管理コンソール（図１には不図示）を介して行うアクション等のストレージシステム１０４に対して実行されるイベントにも関係してもよい。
【００３３】
サービス演算算装置１０２上の索引付アプリケーション１１６は、システムログメッセージ１２１を受信してもよく、受信した各システムログメッセージ１２１への索引付け等のためのワークフローを適用してもよい。ワークフローの完了後、監視アプリケーション１２０は最新のシステムログメッセージ１２１に関する情報を監視ＵＩ１２５内で提示してもよい。加えて、監視アプリケーション１２０はＡＰＩ情報１３５を使用して、ストレージシステム１０４、及び／又はサービス演算装置１０９、又はシステム１００内の他の演算装置の状態及び性能に関する情報を収集するための１つ又は複数のＡＰＩを適用してもよい。例えば監視アプリケーション１２０は、メッセージングＡＰＩ（ＭＡＰＩ）、ＲＥＳＴ  ＡＰＩ、又はシステム１００から情報を収集するための他の様々なＡＰＩを使用して、監視アプリケーション１２０がシステム１００の状態及び性能メトリックに関する情報をＵＩ１２５内で提供できるようにしてもよい。更に、システム１００の状態及び性能に関するデータを収集するための１つの技法としてＡＰＩを記載するが、本明細書の実装形態はＡＰＩを使用すること又はシステム１００の構成要素の状態及び性能に関する情報を得るための他の任意の特定の技法を使用することに限定されない。一例として、状態及び性能情報を得る又は受信するためにシンプルオブジェクトアクセスプロトコルを使用してもよい。
【００３４】
上記で論じたように、索引付アプリケーション１１６によって実行される索引付ワークフローは、受信されるシステムログメッセージ１２１のデータを処理することに関して遅れる場合がある。例えばサービス演算装置１０２は、索引付処理をリアルタイムで行うには不十分な計算能力を有する可能性があり、又はプロセッサ１１０がリアルタイムで若しくはほぼリアルタイムで処理できない可能性がある急激に増加した大量の処理用データを受信することがある。受信したシステムログメッセージ１２１のデータを処理する際のこの遅延は、ＵＩ１２５内のいくつかの可視化について監視アプリケーション１２０が「最新」データを提示できないことをもたらす場合がある。他方で、監視アプリケーションによって受信され又は得られるＡＰＩ取得情報１７２又は他の状態及び／又は性能データは、それらの情報の索引付けが行われていないので最新であり得る。更に、システムログメッセージ１２１が長期間受信されていないことを単に知ることは、索引付アプリケーションによって処理されるデータが他のデータと共に最新かどうか或いは現行のものかどうかに関する提示は与えない。
【００３５】
従って本明細書の実装形態は、ＵＩ１２５内のデータの継続的な再レンダリングを回避し、それによりＵＩ１２５のちらつき又は他の不所望の効果を防ぐために、ＵＩ１２５内で提示される可視化を最適に同期するための技法を適用する。更に、レンダリングデータ及び再レンダリングデータを減らすことは、索引付ワークフロー等の他の操作を行うためにより多くの処理能力を提供することによってサービス演算装置の動作を改善する。加えて本明細書の技法は、システムログメッセージ１２１を処理する際に索引付けワークフローが常に遅れる場合等において、サービス演算装置１０２内に導入されているハードウェアがパワー不足かどうかに関する表示を更に提供する。図２に関して以下で論じる、ＵＩ１２５内で提示されるメトリック可視化の同期を最適化するための技法の一例。
【００３６】
図示の例では、ユーザ１２８に監視ＵＩ１２５を提示するためのディスプレイ１２６はサービス演算装置１０２に接続されているものとして示す。しかし他の例では、ディスプレイ１２６はクライアント装置１０８の１つに接続され或いは関連してもよく、ユーザ１２８は１つ又は複数のネットワーク１０６上で監視ユーザインタフェース１２５にアクセスするようにしてもよい。従って、本明細書の実装形態はディスプレイ１２６及び／又はユーザ１２８の位置に限定されない。
【００３７】
図２及び図５は、いくつかの実装形態に係る処理例を示す流れ図を含む。これらの処理は論理流れ図のブロックの集まりとして示されており、それらのブロックはその一部又は全てをハードウェア、ソフトウェア、又はそれらの組み合わせによって実装し得る一連の操作を示す。ソフトウェアの脈絡では、ブロックは、１つ又は複数のプロセッサによって実行されるとき、列挙された操作を実行するようにプロセッサをプログラムする１つ又は複数のコンピュータ可読媒体上に記憶されるコンピュータ実行可能命令を表してもよい。概してコンピュータ実行可能命令は、特定の機能を実行し又は特定のデータ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。ブロックが記載されている順序は限定として構成されるすべきではない。記載するブロックの任意の個数を任意の順序で及び／又は並列に組み合わせてこの処理又は代替的処理を実施することができ、ブロックの全てを実行しなければならない訳ではない。解説目的で、本明細書の例の中で記載する環境、枠組み、及びシステムに関して処理を説明するが、これらの処理は多岐にわたる他の環境、枠組み、及びシステム内で実施してもよい。
【００３８】
図２は、いくつかの実装形態に係る処理２００及び対応するメトリック可視化の一例を示す。処理２００は、第１のアプリケーションによって実行され得るワークフローを表すブロック２０２〜２０８を含む。例えばブロック２０２〜２０８のワークフローは、例えば図１に関して上記で論じたように受信されたシステムログメッセージに索引付けするための索引付アプリケーションによって実行されてもよい。処理２００はブロック２１０〜２１８を更に含み、ブロック２１０〜２１８は、ブロック２０２〜２０８のワークフローの状態に基づいて監視ＵＩ内に提示するための最適なメトリック可視化を決定するために監視アプリケーションによって実行される操作を表す。
【００３９】
２０２で、演算装置がストレージシステムから入力を受信してもよい。例えば記憶装置は、ストレージシステム上で操作が実行されるとき、演算装置にシステムログメッセージを送信してもよい。演算装置上の索引付アプリケーションはシステムログメッセージを受信し、受信したメッセージを処理するためのワークフローを実行してもよい。図示の例では、ワークフローは、受信したメッセージに含まれるテキスト、メタデータ、及び他の情報を抽出すること等によって受信したメッセージに索引付けすることを含み、ストレージシステム１０４上に記憶されるオブジェクトデータの索引付け機能を行う。上記で述べたように、システムログメッセージの種類はアクセスログ及びイベントログを含んでもよい。アクセスログは、ストレージシステム内に記憶されるオブジェクトデータに対してユーザが行うアクション、例えば読み取り、書き込み、削除、移送、名前変更等を含んでもよい。イベントログは、管理コンソールによって行われ得るような管理アクションを含んでもよく、データの移動、ストレージシステムの設定変更等を含んでもよい。
【００４０】
２０４で、計算装置は、受信済みの入力をワークフロー内で処理するために、受信された入力を待ち行列に入れてもよい。例えば演算装置は、ワークフローの処理を行うためにワークフロー用の先入れ先出し待ち行列を有してもよい。待ち行列内の各入力は、入力に関連付けてタイムスタンプを有し得てもよい。例えば、受信される各システムログメッセージは、システムログメッセージを送信したストレージシステムによって割り当てられ、且つストレージシステム上で対応する操作が行われた時刻に対応し得るタイムスタンプを有してもよい。
【００４１】
２０６で、演算装置は受信された入力に対してワークフローパイプラインを実行してもよい。例えばワークフローが受信されたシステムログメッセージに索引付けするためのものである場合、ワークフローは、システムログメッセージが関係するデータオブジェクトの性質に応じて、実行されるアクションを決定すること、ストレージシステム上の操作を実行する際のレイテンシを明らかにすること、操作に関係する名前空間を決定すること、文書のＭＩＭＥタイプを検出すること、テキスト及びメタデータを抽出すること、並びに索引付けに使用され得る他の情報を抽出することを含む、受信メッセージを構文解析し、索引付けするために関連情報を抽出すること等の索引付け操作を含んでもよい。
【００４２】
２０８で、現在の入力についてワークフローが完了され、索引付アプリケーションはブロック２０６に戻って、ワークフローの処理を待つ待ち行列内の任意の更なる入力を調べ、それらの入力に対してワークフローの処理を行ってもよい。索引付アプリケーションは、索引付けされている各システムログメッセージのタイムスタンプを抽出してもよく従ってこの例ではｔｉｎｄｅｘに対応する直近に索引付けされたシステムログメッセージのタイムスタンプにアクセスしてもよい。
【００４３】
２１０で、演算装置上で実行される監視アプリケーションが内部ＡＰＩ又は他のアプリケーション内通信を使用して索引付アプリケーションからｔｑｕｅｕｅ及びｔｉｎｄｅｘを得てもよい。各システムログメッセージのタイムスタンプは、直近に待ち行列に入れられたシステムログメッセージ（即ち待ち行列に入れられた最後のシステムログメッセージ）のタイムスタンプをｔｑｕｅｕｅとして、及び直近に索引付けされたシステムログメッセージのタイムスタンプ、即ちｔｉｎｄｅｘを得るための内部ＡＰＩを使用し、索引付プログラムから監視プログラムによって決定されてもよい。
【００４４】
２１２で、演算装置上の監視プログラムがｔｑｕｅｕｅをｔｉｎｄｅｘと比較してそれらが同じかどうかを判定してもよい。例えば図１に関して上記で論じたように、及び図３に関して以下で更に論じるように監視ＵＩを生成するとき、監視プログラムは、各メトリックの終了時刻が互いに一致することを確実にするために監視ＵＩ内で提示されるメトリックを最適化してもよい。その結果、監視プログラムは、まず、待ち行列に追加された最後のシステムログメッセージのタイムスタンプｔｑｕｅｕｅを直近に索引付けされたシステムログメッセージに含まれるタイムスタンプｔｉｎｄｅｘと比較することによってワークフローが最新であるかどうかを判定する。
【００４５】
２１４で、ｔｑｕｅｕｅがｔｉｎｄｅｘに等しい場合はワークフローが最新であり、監視ＵＩ内で提示されるメトリックの終了時刻は、現在時刻に設定されてもよい。例えば２２０に示すように、監視ＵＩのためのメトリック可視化の一例は、グラフィカルに又は他の方法で表すことができるデータ２２２、開始時刻２２４、時間窓２２６、及び終了時刻２２８を含んでもよい。時間窓２２６は終了時刻と開始時刻との差に等しく、いくつかの事例では監視ＵＩ内で提示される全ての可視化について同じであってもよい。更に、ワークフローを通して追加入力を処理するときモニタＵＩの継続的な再レンダリングを防ぐために監視ＵＩを最適化するために、監視ＵＩ内で提示される全てのメトリック可視化を現在時刻に基づいてレンダリングしてもよく、監視ＵＩの再レンダリングの次の時刻は（例えばデフォルトで又はユーザによって指定される）閾値時刻に限定してもよく、及び／又は再レンダリングを引き起こす手動入力をユーザから受信すること等に限定されてもよい。従ってワークフローが最新である場合、受信したデータの一部を処理する際の遅延を引き起こし得る他のワークフローがないと仮定し、可視化の全てが現在時刻までに受信したデータを表示してもよい。
【００４６】
２１６で、ｔｑｕｅｕｅがｔｉｎｄｅｘと等しくない場合、ワークフローは情報処理において遅れている。従って、監視プログラムはメトリック可視化の終了時刻を、直近に索引付けされたシステムログメッセージのタイムスタンプに対応するｔｉｎｄｅｘに設定してもよい。例えば監視プログラムは、その時点までの全てのデータが索引付けされている、最後の時点を決定する。監視ＵＩ内で提示するためのメトリック可視化の全ては、データ２２２を表示するように構成してもよく、システムログメッセージが索引付けされているその時点まで表示してもよい。従ってこの技法を使用することにより、監視ＵＩ内で提示されるメトリック可視化の全てが、提示される監視ＵＩ上で同期しているように見える。従って、ワークフローによって処理された受信されたシステムログメッセージの全てが、ソースシステム上で操作が何時行われたのかについてのその個々のタイムスタンプを含むので、ワークフローが最新かどうか又は処理が遅れているかどうかを判定するために個々のメッセージに関連するタイムスタンプを使用してもよい。その結果、監視ＵＩをレンダリングするとき、監視プログラムは各メトリック可視化内でレンダリングされるデータをｔｉｎｄｅｘ、即ち直近に索引付けされたシステムログメッセージのタイムスタンプに対応する時間に限定する。
【００４７】
２１８で、各メトリック可視化が監視ＵＩ内で提示されるように、監視プログラムは各メトリック可視化の開始時刻を終了時刻から時間窓の長さを引いた時刻に等しく設定する。上記で述べたように、各メトリック可視化の終了時刻はブロック２１４又は２１６で決定される。典型的には、時間窓は特定の時間において監視ＵＩ内で提示される全ての可視化について同じとしてもよいが、他の例では異なる時間の長さを有する異なる時間窓を使用してもよい。監視プログラムはディスプレイ上に複数のメトリック可視化をレンダリングしてもよく、メトリック可視化の全てが決定された終点までのデータを表示し、それにより、提示されている監視ＵＩ内の可視化が互いに整列することを可能にする。従って本明細書の実装形態は、ユーザにとっての混乱を回避する監視ＵＩを提供する。例えば時間窓が１時間に等しい場合、監視ＵＩ上の全てのメトリック可視化が同じ１時間の窓、即ち同じ開始時刻及び同じ終了時刻に整列される。ｔｑｕｅｕｅがｔｉｎｄｅｘと等しい場合、終了時刻は実際の時間に設定される。ｔｑｕｅｕｅがｔｉｎｄｅｘと等しくない場合、終了時刻はｔｉｎｄｅｘの時刻、即ち直近に索引付けされたシステムログメッセージのタイムスタンプに対応する時刻に設定される。更に、監視アプリケーションは監視ＵＩの再レンダリングを閾値の時限、例えば３０秒ごと、毎分、２分ごと、５分ごと等に限定することにより、更なるシステムログメッセージがワークフローによって処理されるときの監視ＵＩの連続的な再レンダリングを回避してもよい。
【００４８】
図３は、いくつかの実装形態に係る監視ＵＩ１２５の構成の一例を示す。図３に示す構成例は５つの異なるメトリック可視化を含むが、本明細書の実装形態は更に多くの又は少ないメトリック可視化を含んでもよく、他のメトリックのための多岐にわたる他のメトリック可視化を含んでもよい。いくつかの事例では、ユーザインタフェース１２５は、管理ユーザにとってアクセス可能なディスプレイ上に、又は上記で論じたシステム１００の状態及び性能を閲覧するのに十分な許可状態を有する別のユーザの演算装置のディスプレイ上に提示されてもよい。
【００４９】
図示の例では、監視ＵＩがメニュー５０２を含み、メニュー５０２は監視ＵＩ１２５に対応する監視ダッシュボードを閲覧することをユーザが選択したことを示している。メニュー５０２は、提示するメトリックのソース、監視設定、共有の設定、又はホームに戻る画面をユーザが選択することを更に可能にしてもよい。更にこの例では、選択された監視ＵＩが、５０４で示すようにアプリケーション負荷監視ＵＩを表してもよい。図示の例では、監視ＵＩ１２５内に含まれるメトリック可視化が、ストレージシステムのレイテンシ５０６、１秒当たりのストレージシステムの動作５０８、ストレージシステムのＨＴＴＰ接続数５１０、ストレージシステムのスループット５１２、及びストレージシステムの動作規模５１４を含む。
【００５０】
本明細書では不図示の他の種類の監視ＵＩの例は、リソース監視ＵＩ、ストレージ及びオブジェクト監視ＵＩ、並びにアプリケーションブレークダウン監視ＵＩを含んでもよい。例えばリソースモニタＵＩは、ＣＰＵ使用率、ＣＰＵ入出力待ち時間、ディスク入出力時間、ディスク使用率、ＨＴＴＰ接続、フロントエンドネットワーク入出力、及びバックエンドネットワーク入出力に関するメトリック可視化を含んでもよい。ストレージ及びオブジェクト監視ＵＩは、プライマリストレージ使用率、エコノミストレージ使用率、ストレージ内のオブジェクト数、ノードによるストレージ、テナントによるストレージ、及びテナント、即ちストレージシステムのユーザによるオブジェクト数に関するメトリック可視化を含んでもよい。加えて、アプリケーションブレークダウン監視ＵＩは、ノードによる１秒当たりの動作、テナントによる１秒当たりの動作、タイプによる１秒当たりの動作、応答による１秒当たりの動作、及びゲートウェイによる１秒当たりの動作に関するメトリック可視化を含んでもよい。更にユーザは、上記で論じたメトリック可視化の何れか又は他のメトリック可視化等、ユーザによって指定された選択されたメトリック可視化を含み得るカスタム監視ＵＩを指定することができるようにしてもよい。
【００５１】
図示の例では、５１６に示すように、レンダリングされるメトリック可視化５０６〜５１４の範囲を例えばこの例では１１：２５〜１２：２５と示してもよい。更に５１８に示すように、ユーザは監視ＵＩの時間窓又は他の設定を制御するためのフィルタ制御を選択してもよい。加えて、本明細書では監視ＵＩの一例を説明し図示するが、他の多くの改変形態が本明細書の開示の利益を得る当業者に明らかになる。
【００５２】
図４は、いくつかの実装形態に係る終了時刻及び開始時刻を決定することの一例を示す。この例では、図２に関して上記で論じたように、監視プログラムが、ディスプレイ上のＵＩ上で監視を提示するための要求をユーザから受信したと仮定する。従って、監視ＵＩをレンダリングする前に、監視プログラムはメトリック可視化を監視ＵＩ内で提示するために使用する終了時刻を決定する。従ってこの例では、監視プログラムは現在のワークフロー４０２からｔｑｕｅｕｅ及びｔｉｎｄｅｘを決定すると仮定する。この例では、監視プログラムがｔｑｕｅｕｅに対応するメッセージのタイムスタンプが９：３０ＡＭに等しく、対応するメッセージのタイムスタンプｔｉｎｄｅｘが８：５５ＡＭに等しいと決定したと仮定する。その結果、ｔｑｕｅｕｅはｔｉｎｄｅｘと等しくないので、レンダリングされるメトリック可視化４０４ごとに、監視プログラムは終了時刻２２８をｔｉｎｄｅｘに対応するメッセージのタイムスタンプ、即ちこの例では８：５５ＡＭに等しくなるように設定する。更に、全てのメトリック可視化４０４が同じ時間窓について提示される場合、監視プログラムは開始時刻２２４を終了時刻から、時間窓の長さ、この例では１時間を引いた時刻に等しくなるように設定してもよく、従って開始時刻が７：５５ＡＭに等しくなるように設定される。従って、監視プログラムは同じ開始時刻２２４及び終了時刻２２８を有する複数のメトリック可視化４０４を有する監視ＵＩをレンダリングしてもよい。
【００５３】
図５は、いくつかの実装形態に係る処理５００の一例を示す流れ図である。一部の事例では、処理５００はサービス演算装置１０２又は他の適切な演算装置によって少なくとも部分的に実行されてもよい。一例として、図１〜図４に関して上記で論じたサービス演算装置１０２の更に多いプロセッサの１つによって実行される監視アプリケーション１２０は、図５の処理５００の少なくとも一部を実行するための実行可能命令を含んでもよい。
【００５４】
５０２で、演算装置はストレージシステム及び／又はストレージに関連する演算装置の状態又は性能の少なくとも１つを示すデータを受信してもよい。いくつかの事例では、ストレージシステム、他のノード等からデータを集めるためにＡＰＩ又は他の技法が使用されてもよい。
【００５５】
５０４で、演算装置はストレージシステムからシステムログメッセージを受信してもよく、システムログメッセージはアクセスログ又はイベントログの少なくとも１つを含む、ストレージシステムによって又はストレージシステム上で実行される操作に関する情報を含む。例えば演算装置は、ストレージシステム上で実行される操作に関する情報を含むシスログメッセージ又は他のメッセージをストレージシステムから受信してもよい。
【００５６】
５０６で、演算装置は、ストレージシステムの状態又は性能の少なくとも１つに関する複数のメトリクのデータを提示するための監視ユーザインタフェースを提示するための指示を受信してもよい。一例として、ユーザは、演算装置に関連するディスプレイ上で又は演算装置と通信する別の演算装置上で監視アプリケーションに監視ＵＩを提示させるためのコマンドを入力してもよい。
【００５７】
５０８で、演算装置はストレージシステムから受信されるメッセージを処理するワークフローの状態を決定してもよい。例えば、ワークフローの状態は図２のブロック２１０に関して以下で論じるように決定してもよい。
【００５８】
５１０で、演算装置は、ワークフローの決定された状態に基づいてユーザインタフェース内で提示するための複数のメトリック可視化の終了時刻を決定してもよい。例えば、使用する終了時刻は図２のブロック２１２〜２１６に関して以下で論じるように決定されてもよい。
【００５９】
５１２で、演算装置は終了時刻に基づいて各メトリック可視化の開始時刻を決定してもよい。例えば、開始時刻は図２のブロック２１８に関して以下で論じるように決定されてもよい。
【００６０】
５１４で、演算装置は、決定された終了時刻に基づいてユーザインタフェース内で提示するための複数のメトリック可視化をレンダリングしてもよい。演算装置は、監視ＵＩ内で提示するためのメトリック可視化をレンダリングするために既知の様々なレンダリング技法の何れかを使用してもよい＞。
【００６１】
５１６で、演算装置は、複数のレンダリングされたメトリック可視化をディスプレイ上のユーザインタフェース内で提示するために提供してもよい。いくつか事例では、レンダリングされたメトリック可視化は、ディスプレイ上のモニタＵＩ内で提示するためにディスプレイコントローラに提供されてもよい。他の例では、レンダリングされたメトリック可視化（又は遠隔レンダリングを可能にするための情報）はネットワーク上でクライアント演算装置に送信される。
【００６２】
５１８で、演算装置は時間閾値を適用して、その時間閾値が満了する前の複数のメトリック可視化の再レンダリングを制限してもよい。いくつかの事例では、監視プログラムはワークフローの状態を周期的に確認してもよく、新たなデータが受信されており閾値時間が満了している場合、レンダリングされるメトリック可視化を更新してもよい。
【００６３】
本明細書に記載したプロセスの例は解説目的で与えたプロセスの例に過ぎない。本明細書の開示に照らして他の多数の改変形態が当業者に明らかになる。更に、本明細書の開示は処理を実行するのに適した枠組み、アーキテクチャ、及び環境の幾つかの例を記載したが、本明細書の実装形態は図示し解説した特定の例に限定されない。更に、本開示は説明し図示する様々な実装形態の例を示す。しかし、本開示は本明細書で説明し図示する実装形態に限定されず、当業者に知られる又は知られることになる他の実装形態に及び得る。
【００６４】
図６は、いくつかの実装形態に係るクライアント装置１０８の一例の選択コンポーネント例を示す。各クライアント装置１０８は、ワークステーション、デスクトップ、ラップトップ、タブレット計算装置、モバイル装置、スマートフォン、ウェアラブル計算装置、又はネットワーク上でデータを送受信可能な他の任意の種類の計算装置等の任意の適切な種類の演算装置としてもよい。更にクライアント装置１０８は、１つ又は複数のネットワーク１０６を介して、別個のネットワークを介して、又は他の任意の適切な種類の通信接続（図６には不図示）を介して１つ又は複数のサービス演算装置１０２と通信可能であってもよい。本明細書の開示の利益を得る当業者に数多くの他の改変形態が明らかになり得る。
【００６５】
基本構成では、クライアント装置１０８は、少なくとも１つのプロセッサ６０２、１つ又は複数のコンピュータ可読媒体６０４、１つ又は複数の通信インタフェース６０６、及び１つ又は複数の入力／出力（Ｉ／Ｏ）コンポーネント６０８等のコンポーネントを含む。各プロセッサ６０２は、１つ又は複数のプロセッサ又は処理コアをそれ自体が含んでもよい。例えば各プロセッサ６０２は、１つ又は複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、論理回路、及び／又は動作上の命令に基づいて信号を操作する任意の装置として実装されてもよい。いくつかの事例では、プロセッサ６０２は、本明細書に記載の処理及び他のアルゴリズムを実行するように特にプログラムされ又は構成される任意の適切な種類の１つ若しくは複数のハードウェアプロセッサ及び／又は論理回路を含んでもよい。プロセッサ６０２は、コンピュータ可読媒体６０４内に記憶されるコンピュータ可読可能な、プロセッサ実行可能な命令を取り出し実行するように構成されてもよい。
【００６６】
クライアント装置１０８の構成にもよるが、コンピュータ可読媒体６０４は有形の非一時的コンピュータ可読媒体の一例とすることができ、コンピュータ可読可能なプロセッサ実行可能命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶するための任意の種類の技術によって実装される揮発性メモリ及び不揮発性メモリ、及び／又は取外し可能媒体及び取外し不能媒体を含んでもよい。コンピュータ可読媒体６０４は、これだけに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ソリッドステートストレージ、光学ストレージ、磁気ディスクストレージ、磁気テープ、及び／又は他の種類のストレージ技術を含んでもよい。更にいくつかの事例では、クライアント装置１０８は、外部ストレージに直接、別の演算装置を介して、又はネットワーク等によってアクセスしてもよい。従ってコンピュータ可読媒体６０４は、プロセッサ６０２によって実行され得る命令、プログラム、又はソフトウェアコードを記憶可能なコンピュータ記憶媒体であってもよい。
【００６７】
コンピュータ可読媒体６０４は、プロセッサ６０２によって実行可能な任意の数の機能的なコンポーネントを記憶し維持するために使用してもよい。いくつかの実装形態では、これらの機能的コンポーネントは、プロセッサ６０２によって実行可能であり、且つ実行時に上記ではクライアント装置１０８によるものだとしたアクション及びサービスを実行するための動作ロジックを実装する命令又はプログラムを含む。コンピュータ可読媒体６０４内に記憶されるクライアント装置１０８の機能的コンポーネントは、上記で論じたようにクライアントアプリケーション１３８を含み得る。更なる機能的コンポーネントは、クライアント装置１０８の様々な機能を制御し管理するための、及びクライアント装置１０８との基本的なユーザ対話を可能にするためのオペレーティングシステム６１０を含んでもよい。コンピュータ可読媒体６０４は、ブラウザアプリケーションを含み得る、様々な機能及びタスクを実行するためにクライアント装置１０８上で実行され得る１つ又は複数の他のアプリケーション６１４を更に含んでもよい。加えて又は選択的に、いくつかの事例では、クライアントアプリケーション１３８はブラウザでもよく又はブラウザを含んでもよい。
【００６８】
加えて、コンピュータ可読媒体６０４は、機能的なコンポーネントによって使用されるデータ、データ構造等も記憶してもよい。例えばコンピュータ可読媒体６０４によって記憶されるデータ及びデータ構造は、１つ若しくは複数のファイル６１２及び／又は他のデータオブジェクトを含んでもよい。クライアント装置１０８の種類にもよるが、コンピュータ可読媒体６０４は、プログラム、ドライバ等及び機能的コンポーネントによって使用され又は生成されるデータを含み得る、他のモジュール及びデータ６１４等の他の機能的コンポーネント及びデータも任意選択的に含んでもよい。更に、クライアント装置１０８は他の多くの論理的、プログラム的、及び物理的なコンポーネントを含んでもよく、そのうち記載したものは本明細書の解説に関係する例に過ぎない。
【００６９】
クライアント装置１０８は、１つ又は複数の通信インタフェース６０６を更に含んでもよい。通信インタフェース６０６は、ネットワーク１０５及び１０６等によって他の様々な装置との通信を可能にするための１つ又は複数のインタフェース及びハードウェアコンポーネントを含んでもよい。例えば通信インタフェース６０６は、サービス演算装置１０２又は他の演算装置と通信するためにネットワーク１０６への接続を提供する１つ又は複数のポートを含んでもよく、又はそれらに結合してもよい。例えば通信インタフェース６０６は、本明細書の他の箇所で更に挙げるように、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク（例えばＷｉ−Ｆｉ）及び有線ネットワーク（例えばファイバチャネル、光ファイバ、イーサネット）、直接接続、並びにＢＬＵＥＴＯＯＴＨ（登録商標）等の近距離通信等のうちの１つ又は複数を介しての通信を可能にしてもよい。
【００７０】
クライアント装置１０８は、スピーカ、マイクロフォン、カメラ、及び様々なユーザコントロール（例えばボタン、ジョイスティック、キーボード、キーパッド、タッチスクリーン等）、触覚出力装置等のＩ／Ｏコンポーネント６０８を更に含んでもよい。例えばクライアント装置１０８のオペレーティングシステム６１０は、キーパッド、キーボード、又はＩ／Ｏ構成要素６０８と共に含まれる他のユーザコントロール及び装置からの入力を受け付けるように構成される適切なドライバを含んでもよい。加えてクライアント装置１０８は、ディスプレイ６１６を含んでもよい。加えてクライアント装置１０８は、不図示の他の様々なコンポーネントを含んでもよく、その例は様々な種類のセンサ、全地球測位システム装置、電池及び電源制御ユニット等の電源等を含む。
【００７１】
本明細書に記載した様々な命令、処理、及び技法は、コンピュータ可読媒体上に記憶され、本明細書のプロセッサによって実行されるプログラムモジュール等のコンピュータ実行可能命令の全般的な脈絡において検討してもよい。概してプログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造、実行可能コード等を含む。それらのプログラムモジュール等はネイティブコードとして実行してもよく、又は仮想マシン若しくは他のジャストインタイムコンパイル実行環境等の中でダウンロードし実行してもよい。典型的には、プログラムモジュールの機能は様々な実装形態において所望の通りに組み合わせ又は分散させてもよい。これらのモジュール及び技法の実装はコンピュータ記憶媒体上に記憶されてもよく、又は何らかの形の通信媒体上で伝送されてもよい。
【００７２】
構造上の特徴及び／又は方法論的な行為に固有の言語によって本主題を説明してきたが、添付の特許請求の範囲に定める本主題は記載した特定の特徴又は行為に必ずしも限定されないことを理解すべきである。むしろ特許請求の範囲を実装する形態の例として特定の特徴及び行為が開示されている。
【図１】
2021516394.tif 000003
【図２】
2021516394.tif 000004
【図３】
2021516394.tif 000005
【図４】
2021516394.tif 000006
【図５】
2021516394.tif 000007
【図６】
2021516394.tif 000008
【国際調査報告】
2021516394.tif 000009