JP2018508881A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2018508881A5 JP2018508881A5 JP2017540200A JP2017540200A JP2018508881A5 JP 2018508881 A5 JP2018508881 A5 JP 2018508881A5 JP 2017540200 A JP2017540200 A JP 2017540200A JP 2017540200 A JP2017540200 A JP 2017540200A JP 2018508881 A5 JP2018508881 A5 JP 2018508881A5
- Authority
- JP
- Japan
- Prior art keywords
- data
- data stream
- time interval
- data streams
- values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 claims description 123
- 238000011156 evaluation Methods 0.000 claims description 11
- 230000001934 delay Effects 0.000 claims description 10
- 230000000875 corresponding Effects 0.000 claims description 9
- 230000002085 persistent Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 29
- 238000005259 measurement Methods 0.000 description 27
- 238000011161 development Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 2
- 230000001186 cumulative Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006011 modification reaction Methods 0.000 description 2
- 230000001131 transforming Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Description
本開示は一般に、計測手段が組み込まれたソフトウェアの分析に関し、より詳細には、計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理に関する。
関連出願の相互参照
本出願は、参照によりその全体が組み込まれている、2015年1月29日に出願した米国特許仮出願第62/109,308号明細書の利益を主張するものである。
本出願は、参照によりその全体が組み込まれている、2015年1月29日に出願した米国特許仮出願第62/109,308号明細書の利益を主張するものである。
ソフトウェア開発者は、コードに計測手段を組み込むことによって、開発するソフトウェアの種々の側面を監視する。これらは、ソフトウェアの性能、ソフトウェアの実行時に遭遇するエラー、ソフトウェアの実行時に遭遇する重要なイベント、実行されているコードの部分および実行されていない部分などを含む。コードに計測手段を組み込むための従来の技法は、ファイルをロギングするための情報をロギングする、または画面に情報をプリントするコード内の命令文を含む。このタイプの計測は簡単なアプリケーション、例えば単一のマシン上の簡単な実行のフローを有するアプリケーションに適している。しかしソフトウェアに計測手段を組み込むためのこれらの技法は、複雑な実行のフローを有する複雑なアプリケーション、例えば複数のシステムにわたって分散され、各システムが複数のプロセス、または実行のスレッドを実行するアプリケーションには不十分である。
分散システムの計測手段が組み込まれたソフトウェアによって生成されるデータを処理することは、分析のためにデータを同化することを必要とする。分散システム上で実行される計測手段が組み込まれたソフトウェアから送信されるデータを同化し処理することは、同時に異なるシステムから送信されるデータ値は異なるネットワーク遅延に遭遇する場合があり、従ってデータを一様に同化するシステムに到達するのに異なる大きさの時間がかかり得るという事実によって複雑になる。さらに、計測手段が組み込まれたソフトウェアを実行する1つまたは複数のシステムは、故障する場合がある。結果として、データを同化するシステムは、データ値がネットワーク遅延により遅くなる、またはデータソースの故障により到着する可能性がないかどうかを、決定する必要がある。これらの決定を行うことは結果として、データ値の処理に遅延を生じ、および/または提示される結果に不正確さを生じる。それに従って、ソフトウェアの計測に基づいて報告を生成するための従来のシステムはしばしば、計測手段が組み込まれたソフトウェアを稼働させる高度に分散されたシステムを分析するためには不十分である。
説明される実施形態は、計測手段が組み込まれたソフトウェアによって生成されるデータを処理する。ソフトウェア開発者はしばしば、開発されるソフトウェア内に、コードに計測手段を組み込むためのコードスニペットを含める。分析システムは、外部システム上で実行される計測手段が組み込まれたソフトウェアによって生成されるデータストリームを受信する。分析システムは、受信されたデータストリームの分析を行う。分析システムは、複数の時間間隔にわたるデータストリームのデータ値を用いて、式を評価する。例えば分析システムは、各時間間隔に対するデータストリームのデータ値を総計し、リアルタイムに更新されるチャートによる提示のためにその結果を送信することができる。
分析システムは、時間間隔の間のデータ値の到着時間に基づいて、データストリームが時間間隔における式の評価のために考慮されるか否かを決定する。分析システムは、それに対するデータ値が時間間隔の間に遅く到着する、データストリームを除外する。分析システムは、処理される各データストリームに対する最大予想遅延値を決定する。分析システムは、時間間隔の間にそれらの最大予想遅延値の前に到着しなかったデータ値を除外する。それに従って、分析システムは、これらのデータストリームを考慮せずに、その時間間隔に対して式を評価する。分析システムは、提示のために各時間間隔に対する式の評価の結果を送信する。
いくつかの実施形態において分析システムは、データストリームの過去のデータ値の遅延に基づいて最大予想遅延値を決定する。例えば分析システムは、データストリームのいくつかのデータ値の移動平均に基づいて、データストリームに対する最大予想遅延値を決定することができる。分析システムは、最大予想遅延値を定期的に、例えば各時間間隔に対して更新する。
いくつかの実施形態において分析システムはさらに、データストリームに対する不成功閾値を決定する。データストリームのデータ値がデータストリームの不成功閾値の前に到着しなかった場合、分析システムは、データストリームを不活性としてマークする。それに従って、分析システムはデータストリームを、後続の時間間隔に対する式の評価のために考慮しない。分析システムは、データストリームの次のデータ値が受信されたとき、データストリームを活性としてマークする。分析システムは、データストリームが活性とマークされた後、式の評価のためにデータストリームを考慮することを開始する。
本明細書で説明される特徴および利点は、すべてを包含するものではなく、特に、図面、明細書、および「特許請求の範囲」に鑑みて、当業者にはさらなる特徴および利点が明らかとなるであろう。さらに本明細書で用いられる述語は、主として読みやすさおよび教育的目的のために選択されており、開示される主題を詳細に叙述するまたは制限するために選択されていない場合があることが留意されるべきである。
開示される実施形態は、他の利点および特徴を有し、それらは詳細な説明、添付の「特許請求の範囲」、および添付の図(または図面)から、より容易に明らかになるであろう。以下は図の簡単な序論である。
実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するための全体のシステム環境を示す図である。
実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するためのシステムのアーキテクチャを示す図である。
実施形態による、計測分析システムによって受信されたデータストリームのデータに基づいて、リアルタイムに更新されるチャートを表示するユーザインターフェースのスクリーンショットを示す図である。
実施形態による、データセンタによってグループ化されたデータストリームの合計を決定する式を示す、リアルタイムに更新されるチャートを表示するユーザインターフェースのスクリーンショットを示す図である。
実施形態による、計測分析システムによるデータストリームの処理に対する、データ値の到着遅延の影響を示す図である。
実施形態による、計測分析システムによってデータストリームを処理するための全体のプロセスを示す図である。
実施形態による、計測分析システムによって受信されたデータストリームのデータ値に基づいて、式の値を決定するための全体のプロセスを示す図である。
実施形態による、データストリームを送信するデータソースの故障を識別するプロセスを示す図である。
次にいくつかの実施形態が詳しく参照され、その例は添付の図に示される。図において可能な限り、同様なまたは類似の参照番号が用いられ、同様なまたは類似の機能を示し得ることが留意される。図は、説明の目的のためのみに、開示されるシステム(または方法)の実施形態を示す。当業者は以下の説明から、本明細書で説明される原理から逸脱せずに、本明細書に示される構造および方法の代替的実施形態が用いられ得ることを容易に認識するであろう。
全体のシステム環境
図1は実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するための全体のシステム環境を示す。全体のシステム環境は、計測分析システム100、1つまたは複数の開発システム120、管理システム160、および報告システム150を含む。他の実施形態では、図1に示されるものより多いまたは少ない構成要素が用いられ得る。例えば開発システム120、管理システム160、および報告システム150は、ネットワーク(図1に示されない)を経由して計測分析システム100と対話することができる。さらに図1に示される各システムの例より多くまたは少なく存在することができ、例えば複数の報告システム150が存在し得る。
図1は実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するための全体のシステム環境を示す。全体のシステム環境は、計測分析システム100、1つまたは複数の開発システム120、管理システム160、および報告システム150を含む。他の実施形態では、図1に示されるものより多いまたは少ない構成要素が用いられ得る。例えば開発システム120、管理システム160、および報告システム150は、ネットワーク(図1に示されない)を経由して計測分析システム100と対話することができる。さらに図1に示される各システムの例より多くまたは少なく存在することができ、例えば複数の報告システム150が存在し得る。
図1および他の図は、類似の要素を識別するために類似の参照番号を用いる。「130a」など、参照番号の後の文字は、文が、その特定の参照番号を有する要素を具体的に指していることを示す。「130」など、続く文字のない文中の参照番号は、その参照番号を有する図内の要素のいずれかまたはすべてを指す(例えば文中の「130」は、図内の参照番号「130a」および/または「130b」を指す)。
計測分析システム100は、外部システム、例えば開発システム120から送信されたメトリックの値を備えたデータを受信する(計測分析システム100は、本明細書では分析システムまたはデータ分析システムとも呼ばれ得る)。開発システム120は、計測手段が組み込まれたソフトウェア、例えばアプリケーション130を実行する。図1ではアプリケーション130は計測手段が組み込まれたソフトウェアの例として示されるが、本明細書で開示される技法は、アプリケーションソフトウェアに限定されず、他の種類のソフトウェア、例えばサーバソフトウェア、クライアントデバイス上で実行されるソフトウェア、ウェブサイトなどに応用可能である。
開発システム120上で実行されるソフトウェアは、ソフトウェアに計測手段を組み込んだ結果として生成される情報を計測分析システム100に送信するように構成される。例えばアプリケーション130は、計測分析システム100にデータを定期的に送信することができる。種々のアプリケーション130は、同じメトリックまたは異なるメトリックを異なるレートにおいて送信することができる。同じアプリケーションは、異なるメトリックを異なるレートにおいて送信することができる。アプリケーション130は、計測分析システム100によってサポートされたアプリケーションプログラミングインターフェース(API)を呼び出すことによって、計測分析システム100にデータを送信する。
アプリケーション130(または任意の他のソフトウェア)は、アプリケーションにカウンタまたはゲージを追加するように計測手段が組み込まれ得る。カウンタは、ソフトウェアにおいて特定のイベントが発生するとすぐにインクリメントされる値を記憶する命令を備える。カウンタは、コードの特定の部分、例えば関数またはメソッド、条件コードの特定のブランチ、例外、ループなどが実行された回数を決定するために用いられ得る。アプリケーション130は、データストリームのデータソースの例である。
通常、カウンタ値は単調に変化し、すなわちカウンタ値は単調に増加/減少することができる。カウンタの値は、2つの異なる時点において、特定のカウンタ値における変化を決定するために比較され得る。例えば、t1とt2の間の時間間隔内で、特定のイベントが発生した回数は、t1からt2への対応するカウンタ値における変化を計算することによって決定され得る。計測分析システム100のAPIは、カウンタの現在値を計測分析システム100に送信するために、アプリケーション130によって呼び出され得る。
以下は、アプリケーション130の計測手段が組み込まれたコードの例である。計測手段が組み込まれたコードに含まれた以下の命令は、アクションまたはエンティティのカウントを追跡するためのカウンタオブジェクトを作成する。
counter1=createCounter(source=”web1”,metric=”metric1”);
counter1=createCounter(source=”web1”,metric=”metric1”);
上記の命令は、カウンタオブジェクトを作成し、それを変数counter1に割り当てる。カウンタオブジェクトは、ソース「web1」、およびメトリック「metric1」に関連付けられる。実施形態においてソースおよびメトリック値は、カウンタ(またはゲージ)に関連付けられたデータストリームを一意に識別する。他の実施形態では、データストリームを一意に識別するために、より多いまたはより少ないキー値ペアが用いられ得る。
カウンタに対応するデータが、計測手段が組み込まれたコードから計測分析システム100に送信されるとき、カウンタの作成時に指定された値の1つまたは複数が受信される。例えば通常、ソースおよびメトリック値は、報告されるデータ値と共にデータストリームにおいて受信された値の各タプルにより受信される。任意選択で値のタプルは、タイムスタンプ、例えば報告されるデータ値が、計測手段が組み込まれたソフトウェアによって捕捉されたときのタイムスタンプを含むことができる。
アプリケーション130の計測手段が組み込まれたコードは、コード内の様々な場所でカウンタ値を更新するための命令を含むことができる。例えばカウンタcounter1は、命令”counter1.increment()”を実行することによってインクリメントされ得る。カウンタは、コードに関連付けられた様々なアクションまたはエンティティを追跡するためにインクリメントされ得る。例えば、カウンタは特定の関数またはメソッドが呼ばれるたびにインクリメントされることができ、カウンタは条件式の特定のブランチが実行されるたびにインクリメントされることができ、カウンタは例えばオブジェクトのコンストラクタ内のカウンタをインクリメントすることによって、特定のタイプのオブジェクトが作成されるたびにインクリメントされることができる。カウンタのインクリメント命令は、例えば関数が特定のパラメータの組み合わせにより呼び出された場合、条件付きで呼ばれ得る。アプリケーション130は、計測分析システム100のAPIを呼び出すことによって、計測分析システム100にカウンタ値を通信する。
計測手段が組み込まれたコードにおいて定義されたカウンタは、定期的にそれ自体をリセットすることができる。例えばカウンタは、構成可能な特定の時間間隔の後にリセットされ得る。この場合、値は間隔の終わりにおいてリセットされ得るので、受信されたカウンタ値は、単調に増加(または減少)し得ない。カウンタは、累積的とすることができ、すなわちカウンタは、それをリセットするために明示的な命令が与えられない限りリセットしない。この状態においては、累積カウンタの値は単調に変化し、すなわちユーザによって明示的にリセットされない限り単調に増加(または減少)する。
ゲージは、アプリケーション130のいくつかのランタイム特性を測定するための命令を備え、例えばヒープサイズ、キャッシュミスまたはヒットの数、用いられるアクティブなメモリ、CPU(中央処理装置)利用率、要求に応答するためにかかった総時間、サービスに接続するためにかかった時間などである。ゲージはまた、いくつかのアプリケーション固有のパラメータまたはビジネスに関連した値、例えばトランザクションの数、ユーザの数などを追跡するために用いられ得る。ゲージは、構成可能な時間間隔で定期的に呼び出され得る。ゲージの値は、計測分析システム100に定期的に送信される。
管理システム160は特権ユーザ、例えばシステム管理者が、データストリームをメタデータに関連付けることを可能にする。管理システム160は、システム管理者がメタデータを指定するためのユーザインターフェースを与える、管理アプリケーション170を備える。メタデータはプロパティ、例えば名前−値ペア(プロパティは、本明細書ではメタデータタグまたはタグとも呼ばれる)を備える。計測分析システム100は、データストリームを記述したメタデータを受信し、メタデータを記憶する。各データストリームから受信されたデータとは独立にデータストリームを記述したメタデータを指定する能力は、データストリームに基づいた報告の生成においていくつかの利点を与える。
例として計測分析システム100は、アプリケーション130の計測手段が組み込まれたソフトウェアへの変更を必要とせずに、各データストリームを記述したメタデータへの変更を受信することができる。結果として計測分析システム100は、新しい報告の指定および既存の報告への変更を受信し、開発者がアプリケーション130を変更することを必要とせずに、新しい/変更された報告に基づいて結果を生成する。
計測分析システム100は、報告の結果を生成し、計測分析システム100が計測手段が組み込まれたソフトウェアからデータストリームを受信するのに従ったリアルタイムでの提示のためにそれらを送信する。計測分析システム100は、アプリケーション130の計測手段が組み込まれたコードへの変更を必要とせずに、既存の報告への変更を可能にする。さらに、前に受信されたデータストリームに対して、新しいメタデータが定義され得る。それに従って、データストリームとして受信されているデータ、ならびに前に記憶されたデータ(データストリームに関連付けられたメタデータの前に)に基づいて、新しい報告が生成され得る。例えば大きな時間間隔にわたる移動平均を与える報告が生成されることができ、現在受信されているデータ、ならびに前に受信されたデータ(報告に用いられるメタデータが、データに関連付けられたのより前に)に基づいて、移動平均を計算するようになる。さらにこれらの新しい報告は、計測手段が組み込まれたソフトウェアを変更すること(ソフトウェアに再び計測手段を組み込むことによって)、または計測手段が組み込まれたソフトウェアを再配備することを、必要とせずに定義され得る。
さらに計測分析システム100は、データストリームを記述したメタデータの、データストリームのデータからの分離を提供する。それに従って、開発システム120から、計測分析システム100に送信される必要があるデータ量が低減される。各アプリケーション130は、メトリックのデータ値、およびメトリックを識別する情報のみを送信する。メタデータ情報は、データストリームのデータソースとは独立したソースから別個に受信される。それに従って、各データストリームのデータ量を増加せずに、任意の量のメタデータが導入され得る。
報告システム150は、クライアントデバイスとすることができる。報告システム150は、ユーザが計測分析システム100と対話することを可能にするクライアントアプリケーション140を含む。実施形態ではクライアントアプリケーション140は、インターネットブラウザであり、これは計測分析システム100にアクセスするためのクライアント側コード(例えばJava Script(登録商標))を含むことができる。他の実施形態においてクライアントアプリケーション140は、計測分析システム100と対話するように開発された独自開発のアプリケーションである。
報告システム150は、従来のコンピュータシステム(例えばデスクトップまたはラップトップコンピュータ)、タブレット、または携帯情報端末(PDA)、携帯電話、スマートフォンなどのコンピュータ機能を有するデバイス、または他の適切なデバイスとすることができる。報告システム150は、ネットワークを経由して計測分析システム100と対話する。ネットワークは、有線および/または無線通信システムの両方を用いた、ローカルエリアおよび/または広域ネットワークの任意の組み合わせを備えることができる。一実施形態においてネットワークは、標準の通信技術および/またはプロトコルを用いる。
計測分析システム100は、1つまたは複数のプロセッサ、メモリ、二次記憶装置、および入力/出力コントローラを含むコンピューティングシステムにおいてホストされ得る。計測分析システム100をホストするために用いられるコンピューティングシステムは通常、例えば報告システム150として用いられる通常のコンピューティングシステムと比べて、強力なプロセッサ、大きなメモリ、および高速な入力/出力システムを用いるサーバクラスシステムである。
実施形態において、いくつかの開発システム120からのデータは、例えばサーバによって統合されることができ、組み合わされたデータは計測分析システム100に送信される。例えば企業は、異なる開発システム120から内部的にデータストリームを受信し、組み合わされたデータをバッチの形で計測分析システム100に定期的に送信する、サーバを設置することができる。これは、企業からの外部通信の効率性を可能にする。しかしこの構成は結果として、計測分析システム100への情報の通信における遅延、および報告システム150によるデータの報告における対応する遅延を生じ得る。
計測分析システムのシステムアーキテクチャ
図2は実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するためのシステムのアーキテクチャを示す。計測分析システム100は、インターフェースモジュール210、データストリームプロセッサ280、量子化モジュール240、メタデータモジュール220、メタデータストア230、データポイント経路指定モジュール250、アナリティクスエンジン270、ユーザインターフェースマネージャ290、および時系列データストア260を含む。他の実施形態において計測分析システム100は、本明細書で説明されない他のモジュールを含むことができる。特定のモジュールによって提供されるように示される機能は、代わりに他のモジュールによって実施され得る。
図2は実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するためのシステムのアーキテクチャを示す。計測分析システム100は、インターフェースモジュール210、データストリームプロセッサ280、量子化モジュール240、メタデータモジュール220、メタデータストア230、データポイント経路指定モジュール250、アナリティクスエンジン270、ユーザインターフェースマネージャ290、および時系列データストア260を含む。他の実施形態において計測分析システム100は、本明細書で説明されない他のモジュールを含むことができる。特定のモジュールによって提供されるように示される機能は、代わりに他のモジュールによって実施され得る。
インターフェースモジュール210は、外部システム、例えば計測分析システム100にデータストリームを送信する開発システム120から要求を受信する。インターフェースモジュール210は、外部システムが呼び出すことができる様々なアプリケーションプログラミングインターフェース(API)をサポートする。インターフェースモジュール210は、アプリケーション130によって提供されるデータを受信し、処理する。インターフェースモジュール210は、データがインターフェースモジュール210によってサポートされるAPIによって指定されたフォーマットに適合する限り、異なるベンダによって提供される機能を用いて計測手段が組み込まれたアプリケーション130によって提供されるデータを受信し、処理することができる。
インターフェースモジュール210は、開発システム120などの外部システムから、データストリームの形でデータを受信する。実施形態においてインターフェースモジュール210は、データをタプルとして表す。インターフェースモジュールによって受信されるデータのタプルは、メトリック識別子、およびメトリックの値を含む様々な要素を備える。メトリック識別子は、メトリックの名前とすることができる。データのタプルは他の要素、例えばデータがデータソース(例えばデータを送信するアプリケーション130)によって生成された時間に対応するタイムスタンプ、およびデータに関連付けられたプロパティを備えることができる。実施形態において、タプルに関連付けられたタイムスタンプは、データ値が計測分析システム100によって受信された時間を表す。データに関連付けられたプロパティは、名前−値ペアの形で与えられることができる。これらのプロパティは、受信されたデータを記述する追加の情報、例えばホスト名、サーバ名、デバイス名などのデータのソースを記述する情報、またはソースに関連付けられたサービス名、データに関連付けられたメソッドまたは関数名、アプリケーションインスタンス識別子などを与えることができる。
実施形態においてインターフェースモジュール210は、インターフェースモジュール210によって受信された記録に対する識別子を生成し、割り当てる。識別子は、本明細書では時系列識別子と呼ばれる(本明細書ではtsidとも呼ばれる)。メトリック名と一致するすべてのタプル、およびタプルにより受信されたプロパティのセットには、一意の時系列識別子が割り当てられる。それに従ってタプル(メトリック名、プロパティ、メトリック値、タイムスタンプ)は、タプル(tsid、メトリック値、タイムスタンプ)にマッピングされる。例えばタプルが、メトリック名m1およびホスト名h1を与える場合、メトリック名m1およびホスト名h1を有するすべてのタプルには、同じ時系列識別子が割り当てられる。それに従ってtsidは、計測分析システム100によって受信されるデータストリームのすべてのタプルを一意に識別する。インターフェースモジュール210は、さらなる処理のためにデータストリームのデータ値を、データストリームプロセッサ280に提供する。
データストリームプロセッサ280は、異なるデータストリームのデータを処理して、アナリティクスエンジン270による分析のためにデータを準備する。データストリームプロセッサ280は、ある時間間隔に対して処理されるデータ値、およびアナリティクスエンジンによってその時間間隔の間、リアルタイム報告から無視されるデータ値を決定する。データストリームプロセッサ280は、時間間隔の間、データ値が到着した(または到着しなかった)時間に基づいて、データ値が処理されるか無視されるかを決定する。一般にデータストリームプロセッサ280は、時間間隔内で早く到着するデータ値を処理し、時間間隔の間に遅く到着するデータ値を無視する。
データストリームプロセッサ280は、データストリームに対する最大予想遅延を決定し、データ値の到着時間を最大予想遅延値と比較して、データ値が時間間隔に対して考慮されるかどうかを決定する。考慮されるデータ値は、リアルタイム報告の式、例えばデータストリームのデータ値を総計する式への入力として提供される。
データストリームプロセッサ280はまた、データストリームに対する不成功閾値を決定する。データストリームプロセッサ280は、不成功閾値を超えて、データストリームからデータ値が受信されない場合、データストリームを不活性としてマークする。データストリームプロセッサ280は、各データストリームのステータスをメタデータストア230に記憶する。データストリームプロセッサ280は、後続の時間間隔に対して、不活性のデータストリームを考慮することを停止する。言い換えればデータストリームプロセッサ280は、不活性のデータストリームの最大予想遅延値の間、待機しない。データストリームプロセッサ280は、データストリームからデータ値が受信された場合は、データストリームを再び活性とマークする。データストリームが活性とマークされた後、データストリームプロセッサ280は、後続の時間間隔に対して、再びデータストリームを考慮することを再開する。
データストリームプロセッサ280は、各データストリームに対する過去のデータ値をメモリに記憶し、過去のデータ値に基づく総計値を用いて、最大予想遅延の値を決定する。例えばデータストリームに対する最大予想遅延は、N個(例えばN=5、またはN=4)のデータ値の移動平均に基づいて取得され得る。データストリームプロセッサ280は、遅延値における変動を考慮に入れるように150%などの率を、移動平均値に乗算することができる。
実施形態においてデータストリームプロセッサ280は、各時間間隔の始まりで、または前の時間間隔の終わりにおいて、最大予想遅延値を再計算する。他の実施形態ではデータストリームプロセッサ280は、アナリティクスエンジン270が式を評価する時間間隔より大きな時間間隔で、定期的に最大予想遅延値を再計算する。例えばデータストリームプロセッサ280は、アナリティクスエンジン270が式を評価する時間間隔の5つごとに、最大予想遅延値を再計算することができる。実施形態においてデータストリームプロセッサ280は、最大予想遅延値または不成功閾値として、データストリームに対する、ユーザが構成可能な固定値を受信する。データストリームプロセッサ280は、この時間間隔に対して考慮されるべきデータ値を識別し、それらをさらなる処理のために量子化モジュール240に提供する。
量子化モジュール240は、データがその中で任意の時間間隔において利用可能な、データの入力時系列を、データがその中で規則的な時間間隔において利用可能な時系列に変換するように、受信されたデータ値を処理する。例えば入力時系列において受信されたデータ値は不規則な間隔で発生し得るが、量子化モジュール240は、時系列のデータを処理して、1秒ごと、または5秒ごと、または15秒ごとなどに、データが定期的に発生する時系列を生成する。本明細書ではこのプロセスは、時系列の量子化と呼ばれる。実施形態においてインターフェースモジュール210は、複数のスレッドまたはプロセスを作成し、各スレッドまたはプロセスは、データストリームに対応するデータを受信するように構成される。各スレッドまたはプロセスは、量子化モジュール240を呼び出して、各時間間隔に対して各データストリームに対して受信されたデータの量子化を行う。
メタデータモジュール220は、開発システム120から受信された様々なデータストリームを記述したメタデータ情報を受信し、記憶する。実施形態において、メタデータモジュール220に記憶されるメタデータはユーザ、例えばシステム管理者から受信される。メタデータは、名前−値ペアとして表され得る。実施形態においてメタデータは、メタデータオブジェクトとして表され、各オブジェクトは、名前−値ペアとして表され得るプロパティのセットを定義する。データストリームのセットは、メタデータオブジェクトに関連付けられ得る。それに従って、メタデータオブジェクトによって表されるすべてのプロパティは、メタデータオブジェクトに関連付けられた各データストリームに関連付けられる。
メタデータデータストア230は、メタデータオブジェクト、およびそれらのデータストリームへの関連付けを記憶する。メタデータデータストア230は、各メタデータオブジェクトに対する識別子(ID)、およびメタデータオブジェクトによって表されるプロパティを記憶する。実施形態において各データストリームは、データストリームを一意に識別する時系列識別子に関連付けられる。メタデータデータストア230は、各メタデータオブジェクトを、時系列識別子値のセットにマッピングするインデックスを記憶する。メタデータデータストア230は、様々なプロパティ(または名前−値ペア、もしくはタグ)を、時系列識別子値のセットにマッピングするインデックスを記憶する。
メタデータストア230は、受信された命令に基づいて、メタデータオブジェクトを変更する。例えばメタデータストア230は、メタデータオブジェクトによって表されるいくつかのプロパティを変更、追加、または削除することができる。あるいはメタデータストア230は、メタデータオブジェクトからデータストリームへのマッピングを、受信された命令に基づいて変更することができる。例えばメタデータストア230は、データストリームをメタデータオブジェクトに関連付ける、またはメタデータオブジェクトとデータストリームとの間の関連付けを削除することができる。
実施形態においてメタデータストア230は、リレーショナルデータベースとして表されるが、任意の他のタイプのデータベースまたはデータストアとして表され得る。メタデータストア230は、メタデータオブジェクトIDを、データストリームを識別する時系列IDにマッピングするテーブルを記憶した、リレーショナルデータベースとすることができる。他のデータベーステーブルは、メタデータオブジェクトIDから、名前−値ペアとして表される各プロパティへのマッピングとして、各メタデータオブジェクトに関連付けられたプロパティを記憶することができる。
アナリティクスエンジン270は、メタデータに基づいて式を指定する報告を評価する。式は様々な演算、例えば総計および変換に基づくことができる。式は、様々な方法で総計および変換を含む様々な関数を構成することによって、および他の前に定義された式を構成することによって得られ得る。実施形態においてアナリティクスエンジン270は、式を構文解析し、プログラムの実行可能な表現を生成し、生成された表現を実行する。
時系列データストア260は、様々なソース、例えば開発システム120から受信されたデータを記憶する。実施形態において時系列データストア260はまた、データが量子化された後、時系列データを記憶する。時系列データストア260はまた、各時系列に対するロールアップデータを記憶することができる。時系列データストア260はまた、様々なアナリティクス要求の結果、例えばユーザによって要求された様々な報告の結果を記憶する。アナリティクスエンジン270は、いくつかの報告に対する結果、例えば時系列データストア260に記憶されたデータを様々なソースからのデータストリームとして得られる新しいデータと組み合わせることによって時間の間隔にわたる移動平均を、計算する。
ユーザインターフェースマネージャ290は、ユーザインターフェース、例えば報告システム150のクライアントアプリケーション140のユーザインターフェースを通じて、ユーザによって要求される報告をレンダリングする。実施形態においてクライアントアプリケーション140は、インターネットブラウザアプリケーションであり、ユーザインターフェースマネージャ290は、クライアントアプリケーション140を用いて表示のためのウェブページを生成する。他の実施形態ではクライアントアプリケーション140は、独自開発のプロトコルを用いて、ユーザインターフェースマネージャ290と通信する。ユーザインターフェースマネージャは報告データを、例えばチャートとしての提示のために、クライアントアプリケーション140に提供する。
実施形態においてユーザインターフェースマネージャ290は、計測分析システム100に到着するデータストリームのデータに基づいて、クライアントアプリケーション140によって表示される報告に対応するチャートを絶えず更新する。計測分析システム100は、データストリームのデータに基づいて報告のためのデータを生成するように、管理システム160を通じてシステム管理者によって構成される。計測分析システムは、表示された報告を特定のレートで更新する。
計測分析システム100はまた、報告システム150によって表示される必要がある報告の定義を受信する。報告定義は、表示されることになる報告に対応する式を指定する。例えば式は、特定のメタデータ属性によってグループ化された、すべてのデータストリームの総計値が、T秒(例えば、T=1秒)ごとに表示され、更新される必要があることを指定することができる。計測分析システム100は、報告システムによってリアルタイムチャートを提示する。リアルタイムチャートとは、データストリームのデータ値が受信されるのに従って更新されるチャートを指す。これと対照的に従来の報告は、データベースの永続的記憶装置に記憶されたデータに対して実行されるクエリに基づいて生成される。実際には、リアルタイムチャートは、開発システムから計測分析システム100にネットワークを経由して生成されたデータの送信における遅延、データの処理における遅延などのため、データが生成されるとすぐ直ちには更新されない。しかし、計測分析システムの実施形態は、データソース(すなわち外部システム上で実行される計測手段が組み込まれたソフトウェア)によってデータ値が生成される時点と、生成されたデータ値に基づいた式の評価の結果が報告システム150のユーザインターフェース上に提示される時点との間の遅延を最小にする。
計測手段が組み込まれたソフトウェアに基づくリアルタイム報告
計測分析システム100のユーザインターフェースマネージャ290は、ユーザインターフェースを通じて、リアルタイムでの報告によって生成されたデータを提示する。計測手段が組み込まれたソフトウェアを実行する開発システム120は、ネットワークを経由してデータ値を与える。ネットワークはデータ値を、データ値が外部システムによって生成され送信された後、ある遅延の後に、計測分析システム100に到着させる。図3および4は、計測分析システム100によってユーザインターフェース上に提示される報告の例を示す。
計測分析システム100のユーザインターフェースマネージャ290は、ユーザインターフェースを通じて、リアルタイムでの報告によって生成されたデータを提示する。計測手段が組み込まれたソフトウェアを実行する開発システム120は、ネットワークを経由してデータ値を与える。ネットワークはデータ値を、データ値が外部システムによって生成され送信された後、ある遅延の後に、計測分析システム100に到着させる。図3および4は、計測分析システム100によってユーザインターフェース上に提示される報告の例を示す。
図3は実施形態による、計測分析システムによって受信されたデータストリームのデータに基づいて、リアルタイムに更新されるチャートを表示するユーザインターフェースのスクリーンショットを示す。スクリーンショットは、メトリック320service.cache.hitを表す、データストリームを表示するいくつかのチャート310を示す。メトリックは、開発システム120上で実行される計測手段が組み込まれたソフトウェアから受信されたキャッシュヒット値を表す。値は、1秒の時間間隔にロールアップされる。それに従って、1秒の各時間間隔において受信されるキャッシュヒット値は、一緒に加算される。メトリックservice.cache.hitを報告する多数のサービスが存在することができ、それに従って多数のチャート310が表示される。図3は、ユーザがアクションをとること、例えばユーザインターフェースによって報告されるメトリックを選択すること、ロールアップを行うことを可能にする、様々なウィジェットを示す。
大きな企業は、非常に多数の開発システム120を有し得る。各開発システム120は、複数のサービスを実行することができ、各サービスはメトリックを報告する。結果として図3に表示されるチャートの数は、非常に大きくなり得る。ユーザは、図4に示されるようにデータストリームをグループ化することによって、データストリームによって報告されるデータに対するより良い洞察を得ることができる。
図4は実施形態による、データセンタによってグループ化されたデータストリームの合計を決定する式を示す、リアルタイムに更新されるチャートを表示するユーザインターフェースのスクリーンショットを示す。図4は、データストリームがそれによってグループ化される属性の指定、および各グループに対して行われる総計演算を可能にするウィジェット420を示す。図4に示されるようにチャート410は、データセンタによってグループ化され、各グループに対して合計されたデータストリームを示す。2つのデータセンタだけが存在すると仮定すると、チャートの数は2つに低減される。各チャート410は、特定のデータセンタから受信されたデータストリームのデータ値の合計を示す。
計測分析システム100は、様々なデータストリームのデータ値を収集し、報告としての表示のために式の値を計算する。例えば計測分析システム100は、データストリームに基づいてデータ値のグループを決定し、各データセンタに対してデータ値の合計を計算して、図4に示されるチャートを提示する。計測分析システム100は、後続の時間間隔に対して上記の計算を行う。それに従って、各時間間隔に対して計測分析システム100は、データストリームのデータ値が到着するのを待つ。計測分析システム100が時間間隔に対するすべての予想されるデータ値が到着したと決定した後、計測分析システム100は必要な計算を行い、表示のために結果を送信する。
しかし、異なるデータソースから様々なデータ値が、時間間隔以内の異なる時点で到着し得る。さらにはいくつかのデータ値は、時間間隔以内に到着しない場合がある(例えばそれらは次の時間間隔において、さらにはより後に到着する場合がある)。さらにいくつかのデータソースは故障する場合があり(例えばシステムクラッシュにより)、さらにはデータソースが再開するまで、その時間間隔に対する、またはいくつかの後続の時間間隔に対するデータ値を送信しない場合がある。ネットワーク遅延、結果の計算における遅延、およびシステム故障により、計測分析システム100は、データがデータソースによって生成されてから一定の遅延の後にのみ、表示のための結果値を与えることが可能になる。しかし、計測分析システム100が結果を提示できるのが、時間間隔以内で早いほど、報告はリアルタイム報告により近くなる。本発明の実施形態は、結果の正確さを最大にしながら、計測分析システムが各時間間隔内で早く、データストリームに基づいた式の評価の結果を提示することを可能にする。
図5は実施形態による、計測分析システムによるデータストリームの処理に対する、データ値の到着遅延の影響を示す。図5は、計測分析システム100にそれぞれデータストリームd1、d2、d3、およびd4を送信する4つのデータソース、アプリケーション130a、130b、130c、および130dを示す。データストリームdxのデータ値は、dxl、dx2、dx3、等々であり、それぞれ特定の時間間隔の間に送信される。例えばデータストリームd1のデータ値は、d11、d12、等々である。すべてのデータ値は、それらのデータソースによって時間間隔の始まりにおいて生成されると想定される。それに従って、図5で時間間隔の始まりと比較して、時間間隔に沿ってデータ値が示される時点の間の差は、その後にデータ値が、データソースによって生成された後に計測分析システム100に到達する遅延を表す。
図5に示されるタイムラインは、2つの時間間隔I1(時間t0からt2まで)およびI2(時間t2からt4まで)、等々を示す。計測分析システム100は、データストリームd1から時間間隔I1の間にデータ値d11、時間間隔I2の間にd12;データストリームd2から時間間隔I1の間にデータ値d21、時間間隔I2の間にd22;データストリームd3から時間間隔I1の間にデータ値d31、時間間隔I2の間にd32:データストリームd4から時間間隔I1の間にデータ値d41、時間間隔I2の間にd42を受信する。
図5に示されるようにすべてのデータ値d11、d12、d13、およびd14は、間隔I1内の時間t1までに到着する。時点t1は時間間隔I1内で比較的早く、例えば4つすべてのデータ値は、時間間隔I1の半分未満が完了する前に到着する。それに従って計測分析システム100は、時間t1の後にできるだけ早く、必要な式を計算し、それらを表示することができる。これと対照的に間隔I2の間では、データ値d12、d22、およびd32が時間間隔I2の間に早く到着していても、データ値d42は時間間隔I2のほとんど終わりであるt3に到着する。それに従って計測分析システム100は、時間間隔I2のほとんど終わりである時間t3の後にのみ、必要な式を計算して、結果を提示することができる。
結果として、時間間隔に対するデータ値の受信における長い遅延は、結果として望ましくないユーザ経験を生じる。結果は、データ値がデータソースによって生成された時点よりずっと後に提示される。さらに、時間間隔I1の結果は時間間隔以内で早く提示され、時間間隔I2の結果は時間間隔の間で遅く提示されるので、その間にユーザにデータが提示されないリアルタイムチャートにおけるギャップ、すなわち時間間隔I1に対する結果が提示される時点と、時間間隔I2に対する結果が提示される時点との間のギャップが存在する。このギャップは、結果が提示される時間の間の通常のギャップより長くなる。リアルタイムに更新されることが期待されるチャートにおいて、データがその間提示されない長いギャップを有することは、望ましくない使用経験を与える。本発明の実施形態は計測分析システム100が、時間間隔の間に早く結果をユーザに提示することを可能にし、2つの連続した時間間隔の間での、結果の提示の間のギャップを低減する。
全体のプロセス
図6、7、および8は、計測手段が組み込まれたソフトウェアから受信されたデータを処理するための計測分析システムによって実行される様々なプロセスを示す。各図に示されるフローチャートで示されるステップは、図に示されるものとは異なる順序で実行され得る。例えばいくつかのステップは、他のステップと並行して実行され得る。さらにいくつかのモジュールによって実行されるように示されるステップは、他のモジュールによって実行され得る。
図6、7、および8は、計測手段が組み込まれたソフトウェアから受信されたデータを処理するための計測分析システムによって実行される様々なプロセスを示す。各図に示されるフローチャートで示されるステップは、図に示されるものとは異なる順序で実行され得る。例えばいくつかのステップは、他のステップと並行して実行され得る。さらにいくつかのモジュールによって実行されるように示されるステップは、他のモジュールによって実行され得る。
図6は実施形態による、計測分析システムによってデータストリームを処理するための全体のプロセスを示す。実施形態において計測分析システム100は、複数の時間間隔にわたって式の値を決定する。例えば式は、データストリームの一部として時間間隔の間に受信されたデータ値を総計することができる。これらの実施形態において図6に示されるプロセスは、データ値が、時間間隔に対して式を評価するための入力として用いられるべきかどうかを決定するために、計測分析システム100によって実行される。
計測分析システム100が、データストリームのデータ値は時間間隔の間で早く到着したと決定した場合、計測分析システム100はデータ値を、時間間隔に対する式の値を決定するための入力として用いる。計測分析システム100が、データストリームからのデータ値は遅く到着するまたは時間間隔の間で到着しそうにないと決定した場合は、計測分析システム100は、遅く到着するデータ値を考慮せずに、時間間隔に対して式を評価する。言い換えれば計測分析システム100は、遅く到着するデータ値を、その時間間隔に対して式を評価するために用いられる入力から除外する。
610でインターフェースモジュール210は、1つまたは複数の外部システムから、複数のデータストリームを記述した情報を受信する。データストリームを記述した情報は、計測分析システムのAPIを呼び出すことにより、外部システムによって提供され得る。例えば外部システムは、データストリームを記述した情報を提供することによって外部システムがデータストリームを計測分析システム100に登録することを可能にする、計測分析システムのAPIを呼び出すことができる。データストリームを記述した情報は、データストリームに関連付けられたメトリック(例えばキャッシュヒット、キャッシュミス、CPU負荷、メモリ使用量など)、データソースを記述する属性(例えばサービス名)などを含む。
データストリームプロセッサ280は、後続の時間間隔に対して複数のデータストリームから受信されたデータ値を処理する。データストリームプロセッサ280は、各時間間隔に対しておよび各データストリームに対して、以下のステップ(620、630、および640)を行う。
データストリームプロセッサ280は、各データストリームに対する最大予想遅延を決定する。データストリームプロセッサ280は、最大予想遅延としてデータストリームに関連付けられた固定の閾値を用いることができる。例えば計測分析システム100は、システム管理者から、データストリームに対する構成パラメータとして最大予想遅延を受信することができる。いくつかの実施形態においてデータストリームプロセッサ280は、そのデータストリームに対して受信された前のデータ値に基づいて、データストリームに対する最大予想遅延を決定する。例えばデータストリームプロセッサ280は、受信された値のセット(例えば固定の数の過去の値、または移動時間ウィンドウ内で受信されたすべての過去の値)に基づく移動総計値に基づいて、データストリームに対する最大予想遅延を決定することができる。他の例としてデータストリームプロセッサ280は、そのデータストリームから受信された最後のデータ値に基づいて、データストリームに対する最大予想遅延を決定することができる。
実施形態においてデータストリームプロセッサ280は、ある率だけ、例えば固定のパーセント値または固定のオフセットだけ、過去のデータ値に基づく総計値を増加させることによって、最大予想遅延値を決定する。例えばデータストリームプロセッサ280は、150%だけスケーリングされた、過去の4つのデータ値の平均として、データストリームに対する最大予想遅延値を決定することができる。他の例としてデータストリームプロセッサ280は、固定値、例えば5だけ増加された、最後のデータ値として、データストリームに対する最大予想遅延値を決定することができる(固定値の選択は、データストリームにおいて受信されるデータのタイプに依存する)。
630でデータストリームプロセッサ280は、データストリームから受信されたデータ値を、さらにデータ値を処理するため、例えばリアルタイムチャートとしてユーザインターフェースを通じて提示するために、計測分析システム100のソフトウェアモジュールに提供する。例えば実施形態において、630でデータストリームプロセッサ280は、データ値を用いた量子化を行うために、データ値を量子化モジュール240に提供する。他の実施形態では、630でデータストリームプロセッサ280は、データ値を用いて式、例えば時間間隔の間に受信されたデータ値を用いて総計値を決定する式を評価するために、データ値をアナリティクスエンジン270に提供する。
630でデータストリームプロセッサ280は、データストリームのデータ値が計測分析システム100に、最大予想遅延の前に到着した場合、さらなる処理のためにデータストリームのデータ値を量子化モジュール(または任意の他のモジュール)に提供する。データストリームのデータ値が計測分析システム100に、最大予想遅延の前に到着しなかった場合は、630でデータストリームプロセッサ280は、データ値が到着しなかったことを示す情報を提供する。実施形態において、630でデータストリームプロセッサ280は、特別なデータ値(例えばヌルデータ値)を後続の処理を行うモジュールに提供することによって、データ値が到着しなかったことを示す情報を提供する。
640でデータストリームプロセッサ280は、データストリームのデータ値が到着したのが最大予想遅延の前であろうと、最大予想遅延の後であろうと、データストリームのデータ値を永続的ストア(例えば時系列データストア260)に記憶する。言い換えれば、640でデータストリームプロセッサ280は、いつデータ値が計測分析システム100に到着したかに関わりなく、データ値を記憶する。データストリームプロセッサ280は、最大予想遅延の後に到着したデータストリームのデータ値を、データのリアルタイム処理を行うため、例えばリアルタイムチャートを提示するために、量子化モジュール240またはアナリティクスエンジン270に提供しない。これは、データストリームプロセッサ280は、遅く到着するデータ値のためにリアルタイムチャートでのデータの提示を減速させないように設計されるからである。しかし、640でデータストリームプロセッサ280は、データ値を、たとえそれらが最大予想遅延の後に到着したとしても時系列データストア260に記憶し、それによりその時間間隔に対するデータストリームのデータを処理する後続のクエリは、データ値がいつ到着したかに関係なくデータ値を使用する。
図7は実施形態による、計測分析システムによって受信されたデータストリームのデータ値に基づいて、式の値を決定するための全体のプロセスを示す。図7に示されるプロセスは、図6に示されものと同様のステップを示すが、式を評価すること、およびデータをリアルタイムチャートとして提示することの関連におけるものである。
図6のステップ610と同様に、710でインターフェースモジュール210は、1つまたは複数の外部システムから複数のデータストリームを記述した情報を受信する。720でアナリティクスエンジン270は、時間間隔に対するデータストリームのデータに基づいた式を受信する。計測分析システム100は、例えば1秒ごと、2秒ごと、または5秒ごとに、複数の時間間隔のそれぞれに対する式の値を計算する。式は、時間間隔に関連付けられたデータ値に基づいて、総計値を計算することができる。時間間隔に関連付けられたデータ値は、時間間隔の間に処理のために外部システム(すなわちデータストリームのデータソース)から送信されるデータ値に対応する。データ値は計測分析システム100に、外部システムからデータ値が送信されたのと、同じ時間間隔以内に到着しても、しなくてもよい。例として式は、カウント、合計、平均、中央値、パーセント値、または時間間隔に関連付けられたすべてのデータ値にわたる任意の他の総計値を計算することができる。他の例として式は、特定の属性によってグループ化されたデータ値にわたって上記の総計を計算することができる。例えば式は、データセンタ属性によってグループ化されたデータ値の合計を計算することができ、それによって各データセンタから到着したデータ値の合計を決定する。
図6のステップ620と同様に、730でデータストリームプロセッサ280は、式を評価するために考慮される各データストリームに対する最大予想遅延値を決定する。式の評価のために関連のあるデータストリームのセットは、データストリームを記述したメタデータを用いて、式の一部として指定され得る。式は、データストリームを記述した1つまたは複数のメタデータ属性の値を指定することによって、データストリームのセットを識別することができる。例えば式は、データセンタ属性の特定の値によって識別される特定のデータセンタからの、すべてのデータストリームに基づいて総計値を評価することができる。別の式は、特定のメトリック、例えばキャッシュヒットを提供するすべてのデータストリームを指定することができる。740でデータストリームプロセッサ280は、式に関連付けられたデータストリームのセットを監視する。実施形態においてデータストリームプロセッサ280は、計測分析システムによって受信されるすべてのデータストリームを監視し、それによってまた式に関連付けられたセットを監視することができる。実施形態においてデータストリームプロセッサ280は、データストリームのデータ値が到着するのを待つプロセスまたはスレッドを作成することによって、データストリームを監視する。
750でデータストリームプロセッサ280は、データストリームのデータ値が遅く到着した、すなわちデータストリームの最大予想遅延までに到着しなかった場合、時間間隔に対する式を評価するために考慮されるセットから、データストリームを除外する。言い換えればデータストリームプロセッサ280は、時間間隔における式の評価のために、それぞれのデータストリームに対する最大予想遅延の前に到着するデータ値のみを考慮する。760でデータストリームプロセッサ280は、データ値のセットのすべてのデータ値(遅く到着するデータ値を除外することによって得られる)を収集し、さらなる処理のために、データ値を例えば量子化モジュール240またはアナリティクスエンジン270に提供する。
770でアナリティクスエンジン270は、データストリームプロセッサ280によって与えられる収集された値のセットに基づいて、式の値を決定する。アナリティクスエンジン270は、式の評価の結果を、ユーザインターフェースマネージャ290に提供する。780でユーザインターフェースマネージャ290は、例えばリアルタイムチャートとしてのユーザインターフェースを通じた提示のために、式の評価の結果を送信する。計測分析システム100は、ステップ730、740、750、760、770、および780を、各後続の時間間隔に対して繰り返す。これらのステップは、例えばユーザがリアルタイムチャートを見ることを望む限り、無期限に繰り返され得る。
データストリームプロセッサ280はさらに、例えばデータストリームを送信する計測手段が組み込まれたソフトウェア、またはデータストリームを提供する外部システムのクラッシュまたは故障の結果として、ストリームを提供するデータソースが故障したかどうかを決定するための、不成功閾値を保持する。データストリームが不具合になったかどうかを決定するために用いられる不成功閾値は、通常はデータストリームの最大予想遅延値より長い。例えば不成功閾値は、数個の時間間隔と同じ長さとすることができる。これと対照的にデータストリームに対する最大予想遅延値は、時間間隔の長さ未満である。実施形態において計測分析システム100は、データストリームに対する不成功閾値の値を、例えば管理システム160を通じてシステム管理者から受信する。計測分析システム100は、データストリームのセットに対する不成功閾値を、例えばデータセンタから到着するすべてのデータストリームに対して、またはあるタイプの外部システム、外部システム上で稼働するあるタイプのオペレーティングシステム、またはデータストリームを提供するタイプの計測手段が組み込まれたソフトウェアから到着するすべてのデータストリームに対して、用いることができる。
データストリームプロセッサ280が、データストリームのデータ値は不成功閾値の前に到着しなかったと決定した場合、データストリームプロセッサ280は、データストリームを不活性としてマークする。実施形態において計測分析システム100は、各データストリームのステータス(不活性または活性)を、メタデータストア230または時系列データストア260のいずれかに記憶する。それに従ってデータストリームプロセッサ280は、不活性のデータストリームを、データストリームのステータスがもとの活性に変化するまで、後続の時間間隔に対する式のすべての計算から除外する。
それに従ってデータストリームプロセッサ280は、データストリームに関連付けられた最大予想遅延の間、データストリームを待たない。これはデータストリームプロセッサ280が、後続の時間間隔に対して、追加の時間(データストリームの最大予想遅延の)、待たなければならなくなることを防止する。データストリームは長い期間、不活性のままとなり得る。データストリームプロセッサ280が、後続の時間間隔における考慮から不活性のデータストリームを除外しない場合は、データストリームプロセッサ280は、無期限の大きさの時間、データストリームの最大予想遅延に対して待ち続けることになる。
データストリームプロセッサ280は、データストリームのステータスが不活性から活性に変化されるとすぐにデータストリームを、後続の時間間隔に対する式の評価のために考慮されるデータストリームのセットに含めることを開始する。データストリームプロセッサ280は、データストリームステータスが不活性であると決定された後に、データストリームのデータ値が計測分析システムに到着した場合は、不活性のデータストリームのステータスをもとの活性に変化させる。
図8は実施形態による、データストリームを送信するデータソースの故障を識別するプロセスを示す。810でデータストリームプロセッサ280は、データストリームに対する不成功閾値を決定する。データストリームプロセッサ280は、データ値が遅く(例えば最大予想遅延値の後に)到着するデータストリームを監視して、データ値が不成功閾値の前に到着するかどうかをチェックする。データストリームのデータ値が不成功閾値の前に到着しなかった場合、データストリームプロセッサ280はデータストリームを不活性としてマークする。データストリームプロセッサ280は、データストリームが不活性であることを示すフラグ、およびデータストリームが不活性であると決定された時間を示すタイムスタンプをメタデータストア230に記憶することができる。830でデータストリームプロセッサ280は、例えばデータストリームに基づいて式を評価するために、上記データストリームを後続の時間間隔に対して考慮されるデータストリームのセットから除外する。830でデータストリームプロセッサ280は、データストリームのデータ値が到着するまで、上記データストリームを除外する。
代替的実施形態
本発明の図および説明は、本発明の明確な理解のために関連のある要素を示すように簡略化され、明瞭にするために通常のITマネジメントシステムにおいて見られる多くの他の要素を除いていることを理解されたい。当業者は、本発明の実施において他の要素および/またはステップが、望ましいおよび/または必要であることを認識し得る。しかし、このような要素およびステップは当技術分野においてよく知られているので、およびそれらは本発明のよりよい理解の助けとならないので、このような要素およびステップの議論は本明細書で与えられない。本明細書での開示は、当業者には知られているこのような要素および方法へのすべてのこのような変形および変更を対象とする。
本発明の図および説明は、本発明の明確な理解のために関連のある要素を示すように簡略化され、明瞭にするために通常のITマネジメントシステムにおいて見られる多くの他の要素を除いていることを理解されたい。当業者は、本発明の実施において他の要素および/またはステップが、望ましいおよび/または必要であることを認識し得る。しかし、このような要素およびステップは当技術分野においてよく知られているので、およびそれらは本発明のよりよい理解の助けとならないので、このような要素およびステップの議論は本明細書で与えられない。本明細書での開示は、当業者には知られているこのような要素および方法へのすべてのこのような変形および変更を対象とする。
上記の説明のいくつかの部分は、実施形態を、情報に対する動作を表すアルゴリズムおよび記号表示の観点から述べている。これらのアルゴリズムによる説明および表示は、データ処理技術における当業者によって、業務の内容を他の当業者に効果的に伝達するために一般に用いられる。これらの動作は、機能的に、計算的に、または論理的に説明されるが、コンピュータプログラム、または等価な電気回路、マイクロコードなどによって実施されるものと理解される。さらにまた、時には、一般性を失わずにこれらの動作の構成をモジュールと呼ぶことが便利であることが実証されている。説明される動作、およびそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせにおいて具体化され得る。
本明細書で用いられる「一実施形態(one embodiment)」または「実施形態(an embodiment)」への言及は、実施形態に関連して説明される特定の要素、機能、構造、または特徴が、少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所で現れる「一実施形態では」という語句は、必ずしもすべて同じ実施形態を指さない。
いくつかの実施形態は、「結合される(coupled)」および「接続される(connected)」という表現をそれらの派生語と共に用いて説明され得る。これらの用語を互い同義とするものではないことが理解されるべきである。例えばいくつかの実施形態は、2つ以上の要素が互いに直接物理的または電気的に接触することを示すために、「接続される」という用語を用いて説明され得る。他の例においていくつかの実施形態は、2つ以上の要素が互いに直接物理的または電気的に接触することを示すために、「結合される」という用語を用いて説明され得る。しかし「結合される」という用語はまた、2つ以上の要素は互いに直接接触しないが、依然として協働する、または互いに相互作用することを意味し得る。実施形態は、この関連において限定されない。
本明細書で用いられる、用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」またはそれらの任意の他の変形は、非排他的包含を包括するものである。例えば、要素のリストを備えたプロセス、方法、製品、または装置は、必ずしもそれらの要素のみに限定されず、明示的に列挙されないまたはこのようなプロセス、方法、製品、または装置に本質的な、他の要素を含むことができる。さらにそれに反して明示的に記載されない限り、「または(or)」は、包含的ORを指し、排他的ORを指さない。例えば条件AまたはBは、Aは真(または存在する)およびBは偽(または存在しない)、Aは偽(または存在しない)およびBは真(または存在する)、ならびにAおよびBの両方が真(または存在する)の、いずれか1つによって満足される。
さらに「a」または「an」の使用が、本明細書において実施形態の要素および構成要素を説明するために用いられる。これは単に便宜上、および本発明の一般的な意味を示すためになされる。この記述は1つ、または少なくとも1つを含むように読まれるべきであり、単数形はまた、そうでないことが意図されることが明らかでない限り複数形も含む。
本開示を読むことにより当業者は、本明細書で開示された原理によるシステムおよびプロセスのためのさらなる追加の代替的構造的および機能的設計を理解するであろう。従って、特定の実施形態および応用例が示され、説明されたが、開示された実施形態は、本明細書で開示された正確な構成および構成要素に限定されないことを理解されたい。本明細書で開示された方法および装置の構成、動作、および詳細において、当業者には明らかになるであろう様々な修正、変更、および変形が、添付の「特許請求の範囲」に定義された趣旨および範囲から逸脱せずに行われ得る。
Claims (20)
- 計測手段が組み込まれたソフトウェアによって生成されるデータを処理する方法であって、
分析システムによって、データストリームのセットを識別する情報を受信するステップであって、各データストリームは、外部システム上で実行する計測手段が組み込まれたソフトウェアのインスタンスによって生成される、ステップと、
式の指定を受信するステップであって、前記式は前記データストリームのセットのデータ値を処理し、前記データ値の各々は前記式を評価するための複数の時間間隔のうちの時間間隔に関連付けられる、ステップと、
前記式を評価するための前記複数の時間間隔のそれぞれに対して
前記データストリームのセットの各データストリームに対して、前記データストリームに対する最大予想遅延を決定するステップであって、前記最大予想遅延は、計測手段が組み込まれたソフトウェアの対応するインスタンスから前記分析システムへの前記データストリームのデータ値に対する前記時間間隔内の到着遅延に対する限界を表し、前記最大予想遅延は、前記時間間隔の長さより小さい、ステップと、
前記時間間隔に対するデータ値の到着について、前記データストリームのセットを監視するステップと、
前記データストリームの前記データ値が、前記データストリームに対する前記最大予想遅延以内に到着しなかった場合、データストリームを除外することによって、前記時間間隔に対する前記データストリームのセットを変更するステップと、
前記時間間隔に対する前記変更されたデータストリームのセットの前記到着したデータ値を用いて、前記式を評価するステップと、
提示のために、前記評価された式の値を送信するステップと
を含むことを特徴とする方法。 - 前記式は、前記データストリームのセットの前記データ値を総計し、前記データ値は時間間隔に関連付けられることを特徴とする請求項1に記載の方法。
- 前記最大予想遅延は、前記データストリームのデータ値の履歴上の到着遅延に基づいて決定されることを特徴とする請求項1に記載の方法。
- 時間間隔に対する前記最大予想遅延は、以前の時間間隔に対する前記データストリームの前記データ値の前記到着遅延に基づいて決定されることを特徴とする請求項1に記載の方法。
- 前記最大予想遅延は、前記データストリームの少なくとも3つの過去のデータ値の到着遅延に基づく移動総計値となるように決定されることを特徴とする請求項1に記載の方法。
- 前記最大予想遅延は、ある率だけ増加された前記移動総計値となるように決定されることを特徴とする請求項5に記載の方法。
- 前記最大予想遅延の後に到着するデータストリームのデータ値を、永続的データストアに記憶するステップ
をさらに含むことを特徴とする請求項1に記載の方法。 - 前記データストリームのセット内のデータストリームは、1つの時間間隔から後続の時間間隔に動的に変化することを特徴とする請求項1に記載の方法。
- データストリームに対する不成功閾値を決定するステップと、
前記データストリームのデータ値が前記不成功閾値の前に到着しなかった場合、前記データストリームを不活性としてマークするステップと
をさらに含むことを特徴とする請求項1に記載の方法。 - 不活性とマークされたデータストリームを、1つまたは複数の後続の時間間隔に対してデータ値の到着について監視されるデータストリームの前記セットから除外するステップ
をさらに含むことを特徴とする請求項9に記載の方法。 - 前記データストリームに対するデータ値がその後に受信された場合、前記データストリームを活性とマークするステップと、
前記データストリームを、1つまたは複数の後続の時間間隔に対してデータ値の到着について監視されるデータストリームの前記セットに含めるステップと
をさらに含むことを特徴とする請求項9に記載の方法。 - 前記式の評価の結果を、時間間隔ごとに更新されるリアルタイムチャートによる提示のために構成するステップ
をさらに含むことを特徴とする請求項1に記載の方法。 - 計測手段が組み込まれたソフトウェアによって生成されるデータを処理するための命令を記憶したコンピュータ可読非一時的記憶媒体であって、前記命令はプロセッサによって実行されたときに、前記プロセッサに、
分析システムによって、データストリームのセットを識別する情報を受信するステップであって、各データストリームは、外部システム上で実行する計測手段が組み込まれたソフトウェアのインスタンスによって生成される、ステップと、
式の指定を受信するステップであって、前記式は前記データストリームのセットのデータ値を処理し、前記データ値の各々は前記式を評価するための複数の時間間隔のうちの時間間隔に関連付けられる、ステップと、
前記式を評価するための前記複数の時間間隔のそれぞれに対して
前記データストリームのセットの各データストリームに対して、前記データストリームに対する最大予想遅延を決定するステップであって、前記最大予想遅延は、計測手段が組み込まれたソフトウェアの対応するインスタンスから前記分析システムへの前記データストリームのデータ値に対する前記時間間隔内の到着遅延に対する限界を表し、前記最大予想遅延は、前記時間間隔の長さより小さい、ステップと、
前記時間間隔に対するデータ値の到着について、前記データストリームのセットを監視するステップと、
前記データストリームの前記データ値が、前記データストリームに対する前記最大予想遅延以内に到着しなかった場合、データストリームを除外することによって、前記時間間隔に対する前記データストリームのセットを変更するステップと、
前記時間間隔に対する前記変更されたデータストリームのセットの前記到着したデータ値を用いて、前記式を評価するステップと、
提示のために、前記評価された式の値を送信するステップと
を行わせることを特徴とするコンピュータ可読非一時的記憶媒体。 - 前記式は、前記データストリームのセットの前記データ値を総計し、前記データ値は時間間隔に関連付けられることを特徴とする請求項13に記載のコンピュータ可読非一時的記憶媒体。
- 前記最大予想遅延は、前記データストリームのデータ値の履歴上の到着遅延に基づいて決定されることを特徴とする請求項13に記載のコンピュータ可読非一時的記憶媒体。
- 前記最大予想遅延は、前記データストリームの少なくとも3つの過去のデータ値の到着遅延に基づく移動総計値となるように決定されることを特徴とする請求項13に記載のコンピュータ可読非一時的記憶媒体。
- 前記命令は前記プロセッサに、
データストリームに対する不成功閾値を決定するステップと、
前記データストリームのデータ値が前記不成功閾値の前に到着しなかった場合、前記データストリームを不活性としてマークするステップと
をさらに行わせることを特徴とする請求項13に記載のコンピュータ可読非一時的記憶媒体。 - 前記命令は前記プロセッサに、
不活性とマークされたデータストリームを、1つまたは複数の後続の時間間隔に対してデータ値の到着について監視されるデータストリームの前記セットから除外するステップ
をさらに行わせることを特徴とする請求項17に記載のコンピュータ可読非一時的記憶媒体。 - 前記命令は前記プロセッサに、
前記データストリームに対するデータ値がその後に受信された場合、前記データストリームを活性とマークするステップと、
前記データストリームを、1つまたは複数の後続の時間間隔に対してデータ値の到着について監視されるデータストリームの前記セットに含めるステップと
をさらに行わせることを特徴とする請求項17に記載のコンピュータ可読非一時的記憶媒体。 - 計測手段が組み込まれたソフトウェアによって生成されるデータを処理するためのコンピュータによって実施されるシステムであって、
コンピュータプロセッサと、
命令をその上に記憶したコンピュータ可読非一時的記憶媒体と
を備え、
前記命令はプロセッサによって実行されたときに、前記プロセッサに、
分析システムによってデータストリームのセットを識別する情報を受信するステップであって、各データストリームは、外部システム上で実行する計測手段が組み込まれたソフトウェアのインスタンスによって生成される、ステップと、
式の指定を受信するステップであって、前記式は前記データストリームのセットのデータ値を処理し、前記データ値の各々は前記式を評価するための複数の時間間隔のうちの時間間隔に関連付けられる、ステップと、
前記式を評価するための前記複数の時間間隔のそれぞれに対して
前記データストリームのセットの各データストリームに対して、前記データストリームに対する最大予想遅延を決定するステップであって、前記最大予想遅延は、計測手段が組み込まれたソフトウェアの対応するインスタンスから前記分析システムへの前記データストリームのデータ値に対する前記時間間隔内の到着遅延に対する限界を表し、前記最大予想遅延は、前記時間間隔の長さより小さい、ステップと、
前記時間間隔に対するデータ値の到着について、前記データストリームのセットを監視するステップと、
前記データストリームの前記データ値が、前記データストリームに対する前記最大予想遅延以内に到着しなかった場合、データストリームを除外することによって、前記時間間隔に対する前記データストリームのセットを変更するステップと、
前記時間間隔に対する前記変更されたデータストリームのセットの前記到着したデータ値を用いて、前記式を評価するステップと、
提示のために、前記評価された式の値を送信するステップと
を行わせることを特徴とするシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562109308P | 2015-01-29 | 2015-01-29 | |
US62/109,308 | 2015-01-29 | ||
PCT/US2016/014957 WO2016123126A1 (en) | 2015-01-29 | 2016-01-26 | Real-time processing of data streams received from instrumented software |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020126662A Division JP7121075B2 (ja) | 2015-01-29 | 2020-07-27 | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018508881A JP2018508881A (ja) | 2018-03-29 |
JP2018508881A5 true JP2018508881A5 (ja) | 2020-05-21 |
JP6793901B2 JP6793901B2 (ja) | 2020-12-02 |
Family
ID=56544245
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017540200A Active JP6793901B2 (ja) | 2015-01-29 | 2016-01-26 | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 |
JP2020126662A Active JP7121075B2 (ja) | 2015-01-29 | 2020-07-27 | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 |
JP2022124934A Active JP7439189B2 (ja) | 2015-01-29 | 2022-08-04 | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020126662A Active JP7121075B2 (ja) | 2015-01-29 | 2020-07-27 | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 |
JP2022124934A Active JP7439189B2 (ja) | 2015-01-29 | 2022-08-04 | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10394692B2 (ja) |
EP (2) | EP3251015B1 (ja) |
JP (3) | JP6793901B2 (ja) |
CN (2) | CN112860518A (ja) |
AU (3) | AU2016211697B2 (ja) |
CA (1) | CA2974386C (ja) |
WO (1) | WO2016123126A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9996445B2 (en) | 2014-01-17 | 2018-06-12 | International Business Machines Corporation | Computer flight recorder with active error detection |
US9804951B2 (en) | 2014-10-08 | 2017-10-31 | Signalfx, Inc. | Quantization of data streams of instrumented software |
US9846574B2 (en) | 2014-12-19 | 2017-12-19 | Signalfx, Inc. | Representing result data streams based on execution of data stream language programs |
US10394692B2 (en) | 2015-01-29 | 2019-08-27 | Signalfx, Inc. | Real-time processing of data streams received from instrumented software |
US10142353B2 (en) | 2015-06-05 | 2018-11-27 | Cisco Technology, Inc. | System for monitoring and managing datacenters |
US10536357B2 (en) | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
DE102015117949A1 (de) * | 2015-10-21 | 2017-04-27 | Sontheim Industrie Elektronik GmbH | Verfahren zur Verfolgung des Verlaufes in einem verteilten System |
US10459922B2 (en) | 2016-11-08 | 2019-10-29 | At&T Intellectual Property I, L.P. | Unique identification generation for records in a data streaming processing system |
US20180129712A1 (en) * | 2016-11-09 | 2018-05-10 | Ca, Inc. | Data provenance and data pedigree tracking |
US10860618B2 (en) | 2017-09-25 | 2020-12-08 | Splunk Inc. | Low-latency streaming analytics |
US10997180B2 (en) | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
US10936585B1 (en) | 2018-10-31 | 2021-03-02 | Splunk Inc. | Unified data processing across streaming and indexed data sets |
US11018960B2 (en) * | 2019-03-06 | 2021-05-25 | Cisco Technology, Inc. | Accelerated time series analysis in a network |
US11429616B2 (en) * | 2019-04-02 | 2022-08-30 | Keysight Technologies, Inc. | Data recording and analysis system |
US11238048B1 (en) | 2019-07-16 | 2022-02-01 | Splunk Inc. | Guided creation interface for streaming data processing pipelines |
US11614923B2 (en) | 2020-04-30 | 2023-03-28 | Splunk Inc. | Dual textual/graphical programming interfaces for streaming data processing pipelines |
US11650995B2 (en) | 2021-01-29 | 2023-05-16 | Splunk Inc. | User defined data stream for routing data to a data destination based on a data route |
US20230385288A1 (en) * | 2021-01-29 | 2023-11-30 | Splunk Inc. | User interface for customizing data streams and processing pipelines |
US11687487B1 (en) | 2021-03-11 | 2023-06-27 | Splunk Inc. | Text files updates to an active processing pipeline |
US11663219B1 (en) | 2021-04-23 | 2023-05-30 | Splunk Inc. | Determining a set of parameter values for a processing pipeline |
US11989592B1 (en) | 2021-07-30 | 2024-05-21 | Splunk Inc. | Workload coordinator for providing state credentials to processing tasks of a data processing pipeline |
US11886451B2 (en) | 2021-10-29 | 2024-01-30 | Splunk Inc. | Quantization of data streams of instrumented software and handling of delayed data by adjustment of a maximum delay |
WO2023077084A1 (en) * | 2021-10-29 | 2023-05-04 | Splunk Inc. | Quantization of data streams of instrumented software and handling of delayed or late data |
US11886453B2 (en) | 2021-10-29 | 2024-01-30 | Splunk Inc. | Quantization of data streams of instrumented software and handling of delayed or late data |
Family Cites Families (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872909A (en) * | 1995-01-24 | 1999-02-16 | Wind River Systems, Inc. | Logic analyzer for software |
US6097399A (en) | 1998-01-16 | 2000-08-01 | Honeywell Inc. | Display of visual data utilizing data aggregation |
US6408404B1 (en) | 1998-07-29 | 2002-06-18 | Northrop Grumman Corporation | System and method for ensuring and managing situation awareness |
US6301615B1 (en) | 1998-10-14 | 2001-10-09 | Sun Microsystems, Inc. | Cluster performance monitoring utility |
AU2620601A (en) * | 1999-11-02 | 2001-05-14 | Weema Technologies, Inc. | System and method for conveying streaming data |
US7171654B2 (en) * | 2000-05-25 | 2007-01-30 | The United States Of America As Represented By The Secretary Of The Navy | System specification language for resource management architecture and corresponding programs therefore |
US7389497B1 (en) * | 2000-07-06 | 2008-06-17 | International Business Machines Corporation | Method and system for tracing profiling information using per thread metric variables with reused kernel threads |
JP2002278780A (ja) | 2001-03-19 | 2002-09-27 | Toshiba Corp | ネットワークシステムおよび資源分析システム |
US7111282B2 (en) | 2001-06-12 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Instrumenting a software program and collecting data from the instrumented software program by type |
US6898758B2 (en) * | 2001-06-20 | 2005-05-24 | Koninklijke Philips Electronics N.V. | Cross media error protection method and system |
US7028225B2 (en) * | 2001-09-25 | 2006-04-11 | Path Communications, Inc. | Application manager for monitoring and recovery of software based application processes |
EP1359722A1 (en) * | 2002-03-27 | 2003-11-05 | BRITISH TELECOMMUNICATIONS public limited company | Data streaming system and method |
WO2003085644A1 (en) * | 2002-04-11 | 2003-10-16 | Matsushita Electric Industrial Co., Ltd. | Encoding device and decoding device |
US7269824B2 (en) * | 2003-02-13 | 2007-09-11 | Path Reliability, Inc. | Software behavior pattern recognition and analysis |
US7624174B2 (en) | 2003-05-22 | 2009-11-24 | Microsoft Corporation | Self-learning method and system for detecting abnormalities |
JP2004348670A (ja) * | 2003-05-26 | 2004-12-09 | Mitsubishi Electric Corp | ログ仲介システム |
CN100585662C (zh) * | 2003-06-20 | 2010-01-27 | 汤姆森普罗梅特里克公司 | 利用高速缓存和可高速缓存对象扩展测试驱动应用程序的功能的基于计算机测试的系统和方法 |
US20050223368A1 (en) | 2004-03-30 | 2005-10-06 | Tonic Solutions, Inc. | Instrumented application for transaction tracing |
US7886281B2 (en) | 2004-03-30 | 2011-02-08 | Symantec Corporation | System and methods for cross-tier transaction tracing |
US7400578B2 (en) | 2004-12-16 | 2008-07-15 | International Business Machines Corporation | Method and system for throttling network transmissions using per-receiver bandwidth control at the application layer of the transmitting server |
US8396886B1 (en) | 2005-02-03 | 2013-03-12 | Sybase Inc. | Continuous processing language for real-time data streams |
US7890507B2 (en) | 2005-02-25 | 2011-02-15 | International Business Machines Corporation | System and method of joining data obtained from horizontally and vertically partitioned heterogeneous data stores using string-based location transparent search expressions |
US20060293777A1 (en) | 2005-06-07 | 2006-12-28 | International Business Machines Corporation | Automated and adaptive threshold setting |
EP1780955A1 (en) | 2005-10-28 | 2007-05-02 | Siemens Aktiengesellschaft | Monitoring method and apparatus of processing of a data stream with high rate/flow |
US8117175B1 (en) | 2005-11-30 | 2012-02-14 | At&T Intellectual Property Ii, L.P. | Methods and apparatus for querying multiple data streams |
JP2007165962A (ja) | 2005-12-09 | 2007-06-28 | Matsushita Electric Ind Co Ltd | ストリームデータ処理装置 |
US8402443B2 (en) * | 2005-12-12 | 2013-03-19 | dyna Trace software GmbH | Method and system for automated analysis of the performance of remote method invocations in multi-tier applications using bytecode instrumentation |
US20070147435A1 (en) * | 2005-12-23 | 2007-06-28 | Bruce Hamilton | Removing delay fluctuation in network time synchronization |
JP5284565B2 (ja) | 2006-02-16 | 2013-09-11 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
US8176480B1 (en) | 2006-02-27 | 2012-05-08 | Symantec Operating Corporation | Adaptive instrumentation through dynamic recompilation |
US7716530B2 (en) | 2006-02-28 | 2010-05-11 | Microsoft Corporation | Thread interception and analysis |
JP4528273B2 (ja) * | 2006-03-17 | 2010-08-18 | 三菱電機株式会社 | 制御ノード装置及びデータ管理方法及びプログラム |
US8739143B2 (en) * | 2007-01-31 | 2014-05-27 | Hewlett-Packard Development Company, L.P. | Profiling metrics for computer programs |
US7979245B1 (en) | 2006-05-17 | 2011-07-12 | Quest Software, Inc. | Model-based systems and methods for monitoring computing resource performance |
US8407699B2 (en) * | 2008-03-10 | 2013-03-26 | Citrix Systems, Inc. | System and method for managing code isolation |
JP4933222B2 (ja) | 2006-11-15 | 2012-05-16 | 株式会社日立製作所 | インデックス処理方法及び計算機システム |
US8032875B2 (en) * | 2006-11-28 | 2011-10-04 | Oracle America, Inc. | Method and apparatus for computing user-specified cost metrics in a data space profiler |
CN101193055A (zh) * | 2006-11-30 | 2008-06-04 | 中兴通讯股份有限公司 | 间接实时流量控制数据发送方法 |
US8136124B2 (en) | 2007-01-18 | 2012-03-13 | Oracle America, Inc. | Method and apparatus for synthesizing hardware counters from performance sampling |
US20080270848A1 (en) | 2007-04-26 | 2008-10-30 | Carli Connally | Method and Apparatus for Displaying Pin Result Data |
US9047412B2 (en) | 2007-05-06 | 2015-06-02 | Dynatrace Corporation | System and method for extracting instrumentation relevant inheritance relationships for a distributed, inheritance rule based instrumentation system |
US8095917B2 (en) | 2007-06-04 | 2012-01-10 | Microsoft Corporation | Debugger for virtual intermediate language operations |
FR2919108B1 (fr) * | 2007-07-18 | 2010-05-28 | St Microelectronics Sa | Inductance comprenant des boucles sur plusieurs niveaux de metallisation |
US8504733B1 (en) | 2007-07-31 | 2013-08-06 | Hewlett-Packard Development Company, L.P. | Subtree for an aggregation system |
US7698603B2 (en) | 2007-09-07 | 2010-04-13 | Microsoft Corporation | Test results management |
US8356289B2 (en) | 2008-03-26 | 2013-01-15 | Avaya Inc. | Efficient encoding of instrumented data in real-time concurrent systems |
JP5198929B2 (ja) * | 2008-04-25 | 2013-05-15 | 株式会社日立製作所 | ストリームデータ処理方法及び計算機システム |
US20090287729A1 (en) | 2008-05-16 | 2009-11-19 | Microsoft Corporation | Source code coverage testing |
US9305238B2 (en) | 2008-08-29 | 2016-04-05 | Oracle International Corporation | Framework for supporting regular expression-based pattern matching in data streams |
US8381039B1 (en) | 2008-10-20 | 2013-02-19 | Amazon Technologies, Inc. | Storage of mass data for monitoring |
JP4659877B2 (ja) | 2008-12-03 | 2011-03-30 | 株式会社日立製作所 | ストリームデータ処理制御方法、ストリームデータ処理装置及びストリームデータ処理制御プログラム |
US8601458B2 (en) | 2009-05-14 | 2013-12-03 | International Business Machines Corporation | Profile-driven data stream processing |
US8854992B2 (en) * | 2009-07-09 | 2014-10-07 | Motorola Mobility Llc | Artificial delay inflation and jitter reduction to improve TCP throughputs |
US8381284B2 (en) * | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
WO2011023424A1 (en) * | 2009-08-27 | 2011-03-03 | International Business Machines Corporation | A method and system for testing a computer program |
US8327059B2 (en) * | 2009-09-30 | 2012-12-04 | Vmware, Inc. | System and method to enhance memory protection for programs in a virtual machine environment |
JP5534869B2 (ja) | 2010-03-03 | 2014-07-02 | 積水化学工業株式会社 | 計測管理システム及び管理サーバ |
US8484243B2 (en) | 2010-05-05 | 2013-07-09 | Cisco Technology, Inc. | Order-independent stream query processing |
US9146927B2 (en) * | 2010-06-18 | 2015-09-29 | Mitsubishi Electric Corporation | Data processing apparatus, data processing method, and program |
EP2538632B1 (en) | 2010-07-14 | 2014-04-02 | Google Inc. | Method and receiver for reliable detection of the status of an RTP packet stream |
CN103069394B (zh) * | 2010-08-25 | 2016-06-22 | 起元技术有限责任公司 | 评估数据流图的特征 |
US8260826B2 (en) | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
JP5480395B2 (ja) | 2010-10-06 | 2014-04-23 | 株式会社日立製作所 | ストリームデータ処理方法及び装置 |
US20120158925A1 (en) | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Monitoring a model-based distributed application |
US8510284B2 (en) * | 2010-12-20 | 2013-08-13 | Microsoft Corporation | Large-scale event evaluation using realtime processors |
CN102073697A (zh) * | 2010-12-28 | 2011-05-25 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
US8468461B2 (en) | 2011-03-05 | 2013-06-18 | Flowatch Llc | Form-based user-configurable processing plant management system and method |
US9417940B2 (en) | 2011-03-23 | 2016-08-16 | Nec Corporation | Operations management system, operations management method and program thereof |
US9274919B2 (en) * | 2011-04-29 | 2016-03-01 | Dynatrace Software Gmbh | Transaction tracing mechanism of distributed heterogenous transactions having instrumented byte code with constant memory consumption and independent of instrumented method call depth |
US8990416B2 (en) * | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
JP5699789B2 (ja) | 2011-05-10 | 2015-04-15 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム及び情報処理システム |
US9208218B2 (en) | 2011-10-19 | 2015-12-08 | Zalag Corporation | Methods and apparatuses for generating search expressions from content, for applying search expressions to content collections, and/or for analyzing corresponding search results |
US9215157B2 (en) * | 2011-11-04 | 2015-12-15 | Microsoft Technology Licensing, Llc | Adaptive bandwidth estimation |
US9003375B2 (en) * | 2011-12-30 | 2015-04-07 | Intel Corporation | Optional logging of debug activities in a real time instruction tracing log |
US8699339B2 (en) * | 2012-02-17 | 2014-04-15 | Apple Inc. | Reducing interarrival delays in network traffic |
DE102012101719A1 (de) * | 2012-03-01 | 2013-09-05 | Wirtgen Gmbh | Meißelhalter |
US9454462B2 (en) | 2012-03-16 | 2016-09-27 | International Business Machines Corporation | Run-time instrumentation monitoring for processor characteristic changes |
US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9526091B2 (en) * | 2012-03-16 | 2016-12-20 | Intel Corporation | Method and apparatus for coordination of self-optimization functions in a wireless network |
US9465716B2 (en) | 2012-03-16 | 2016-10-11 | International Business Machines Corporation | Run-time instrumentation directed sampling |
EP3958121A1 (en) * | 2012-03-29 | 2022-02-23 | INTEL Corporation | Architecture and method for managing interrupts in a virtualized environment |
US20130275814A1 (en) | 2012-04-12 | 2013-10-17 | Shiva Prasad Nayak | Adaptive system monitoring |
JP6090681B2 (ja) * | 2012-04-13 | 2017-03-08 | ゴールドマン,サックス アンド カンパニー | スケーラブルな構造化データ配布のためのシステム及び方法 |
WO2013165744A1 (en) * | 2012-04-30 | 2013-11-07 | Webtrends Inc. | Method and system that streams real-time, processed data from remote processor-controlled appliances |
JP5505464B2 (ja) | 2012-06-08 | 2014-05-28 | 沖電気工業株式会社 | センサデータ提供システム、ゲートウェイ及び抽象化センサデータ生成方法 |
WO2013186831A1 (ja) | 2012-06-11 | 2013-12-19 | 株式会社日立製作所 | ストリームデータ処理方法、ストリームデータ処理装置及びプログラム |
US8914317B2 (en) | 2012-06-28 | 2014-12-16 | International Business Machines Corporation | Detecting anomalies in real-time in multiple time series data with automated thresholding |
AT513242B1 (de) * | 2012-07-02 | 2018-07-15 | Frequentis Ag | Verfahren zur Synchronisation von Daten in einem Computernetzwerk |
US8686504B2 (en) * | 2012-07-22 | 2014-04-01 | Richtek Technology Corporation, R.O.C. | Double diffused drain metal oxide semiconductor device and manufacturing method thereof |
US9185235B2 (en) | 2012-08-02 | 2015-11-10 | Ab Initio Technology Llc | Aggregating data in a mediation system |
US9063788B2 (en) | 2012-08-27 | 2015-06-23 | International Business Machines Corporation | Stream processing with runtime adaptation |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US9805095B2 (en) | 2012-09-28 | 2017-10-31 | Oracle International Corporation | State initialization for continuous queries over archived views |
US9317392B2 (en) * | 2012-10-10 | 2016-04-19 | Webtrends, Inc. | Methods and automated systems for testing, optimization, and analysis that preserve continuity in identities and status of users who access remote information from different contexts |
US9185114B2 (en) * | 2012-12-05 | 2015-11-10 | Symantec Corporation | Methods and systems for secure storage segmentation based on security context in a virtual environment |
JP6011639B2 (ja) * | 2012-12-28 | 2016-10-19 | 富士通株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
US9229839B2 (en) * | 2013-01-09 | 2016-01-05 | Microsoft Technology Licensing, Llc | Implementing rate controls to limit timeout-based faults |
US20150234897A1 (en) * | 2013-01-10 | 2015-08-20 | Hitachi, Ltd. | Time series data processing apparatus and method, and storage medium |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US9135145B2 (en) * | 2013-01-28 | 2015-09-15 | Rackspace Us, Inc. | Methods and systems of distributed tracing |
US20130283102A1 (en) * | 2013-02-12 | 2013-10-24 | Concurix Corporation | Deployment of Profile Models with a Monitoring Agent |
US10613965B2 (en) | 2013-03-14 | 2020-04-07 | Adobe Inc. | Method and system of visually combining profiling data from instrumentation and sampling |
US9600550B2 (en) | 2013-03-15 | 2017-03-21 | Uda, Llc | Optimization for real-time, parallel execution of models for extracting high-value information from data streams |
US20130227529A1 (en) * | 2013-03-15 | 2013-08-29 | Concurix Corporation | Runtime Memory Settings Derived from Trace Data |
US9477814B2 (en) * | 2013-05-22 | 2016-10-25 | Broadcom Corporation | Distribution of an IP-based multimedia channel to non-IP enabled devices |
US9292328B2 (en) * | 2013-05-24 | 2016-03-22 | Bromium, Inc. | Management of supervisor mode execution protection (SMEP) by a hypervisor |
US9542291B2 (en) | 2013-05-24 | 2017-01-10 | Software Ag | Self-monitoring event-based system and method |
US9578372B2 (en) * | 2013-09-27 | 2017-02-21 | Cisco Technology, Inc. | Delay tolerant decoder |
WO2015060844A1 (en) * | 2013-10-23 | 2015-04-30 | Hewlett-Packard Development Company, L.P. | Tracking a status of a process |
SG11201603210TA (en) | 2013-10-24 | 2016-05-30 | Carsales Com Ltd | System and method for implementing multi-faceted search queries |
WO2015176048A1 (en) * | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Aspects of hardware virtualization, hypervisors, code detection |
US9479414B1 (en) * | 2014-05-30 | 2016-10-25 | Dell Software Inc. | System and method for analyzing computing performance |
US20160026672A1 (en) * | 2014-07-23 | 2016-01-28 | Netapp. Inc. | Data and metadata consistency in object storage systems |
US9454497B2 (en) * | 2014-08-15 | 2016-09-27 | Intel Corporation | Technologies for secure inter-virtual-machine shared memory communication |
US9804951B2 (en) | 2014-10-08 | 2017-10-31 | Signalfx, Inc. | Quantization of data streams of instrumented software |
WO2016057211A1 (en) | 2014-10-08 | 2016-04-14 | Signalfx, Inc. | Real-time reporting based on instrumentation of software |
CA3158525A1 (en) | 2014-10-08 | 2016-04-14 | Splunk Inc. | Real-time reporting based on instrumentation of software |
US9846574B2 (en) | 2014-12-19 | 2017-12-19 | Signalfx, Inc. | Representing result data streams based on execution of data stream language programs |
WO2016100534A1 (en) | 2014-12-19 | 2016-06-23 | Signalfx, Inc. | Data stream processing language for analyzing instrumented software |
US9858411B2 (en) * | 2014-12-19 | 2018-01-02 | Intel Corporation | Execution profiling mechanism |
US10394692B2 (en) | 2015-01-29 | 2019-08-27 | Signalfx, Inc. | Real-time processing of data streams received from instrumented software |
US9715410B2 (en) * | 2015-01-30 | 2017-07-25 | Red Hat Israel, Ltd. | Protected virtual machine function access |
US10691476B2 (en) * | 2015-06-27 | 2020-06-23 | Mcafee, Llc | Protection of sensitive data |
US10228996B2 (en) | 2015-10-08 | 2019-03-12 | Lightbend, Inc. | Context-aware rule engine for anomaly detection |
US9880871B2 (en) * | 2016-02-23 | 2018-01-30 | Red Hat Israel, Ltd. | Protection from guest interrupts in a virtual machine function |
US9892020B1 (en) | 2016-03-11 | 2018-02-13 | Signalfx, Inc. | User interface for specifying data stream processing language programs for analyzing instrumented software |
US10303899B2 (en) * | 2016-08-11 | 2019-05-28 | Intel Corporation | Secure public cloud with protected guest-verified host control |
KR102511451B1 (ko) * | 2016-11-09 | 2023-03-17 | 삼성전자주식회사 | 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템 |
EP3343366B1 (en) * | 2016-12-27 | 2020-12-30 | OpenSynergy GmbH | System and method for scheduling a plurality of guest systems and/or threads |
US10860718B2 (en) * | 2017-07-28 | 2020-12-08 | Mcafee, Llc | Protecting computer systems used in virtualization environments against fileless malware |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
-
2016
- 2016-01-25 US US15/005,489 patent/US10394692B2/en active Active
- 2016-01-26 JP JP2017540200A patent/JP6793901B2/ja active Active
- 2016-01-26 CN CN202110184989.6A patent/CN112860518A/zh active Pending
- 2016-01-26 WO PCT/US2016/014957 patent/WO2016123126A1/en active Application Filing
- 2016-01-26 AU AU2016211697A patent/AU2016211697B2/en active Active
- 2016-01-26 EP EP16743976.9A patent/EP3251015B1/en active Active
- 2016-01-26 CA CA2974386A patent/CA2974386C/en active Active
- 2016-01-26 EP EP20182552.8A patent/EP3761180B1/en active Active
- 2016-01-26 CN CN201680016597.6A patent/CN107430545B/zh active Active
-
2019
- 2019-08-21 US US16/546,860 patent/US11194697B2/en active Active
-
2020
- 2020-01-31 AU AU2020200713A patent/AU2020200713B2/en active Active
- 2020-07-27 JP JP2020126662A patent/JP7121075B2/ja active Active
-
2021
- 2021-10-29 US US17/515,272 patent/US11928046B1/en active Active
-
2022
- 2022-03-15 AU AU2022201792A patent/AU2022201792B2/en active Active
- 2022-08-04 JP JP2022124934A patent/JP7439189B2/ja active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7121075B2 (ja) | 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 | |
JP2018508881A5 (ja) | ||
JP7437351B2 (ja) | 計測手段が組み込まれたソフトウェアを分析するためのデータストリーム処理言語 | |
US10437705B2 (en) | Real-time reporting based on instrumentation of software | |
US10810107B2 (en) | User interface for specifying data stream processing language programs for analyzing instrumented software | |
JP7391137B2 (ja) | ソフトウェアの計測に基づいたリアルタイム報告 |