JP7121075B2 - 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 - Google Patents

計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 Download PDF

Info

Publication number
JP7121075B2
JP7121075B2 JP2020126662A JP2020126662A JP7121075B2 JP 7121075 B2 JP7121075 B2 JP 7121075B2 JP 2020126662 A JP2020126662 A JP 2020126662A JP 2020126662 A JP2020126662 A JP 2020126662A JP 7121075 B2 JP7121075 B2 JP 7121075B2
Authority
JP
Japan
Prior art keywords
data
data stream
value
values
time interval
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.)
Active
Application number
JP2020126662A
Other languages
English (en)
Other versions
JP2020205055A (ja
Inventor
リウ フィリップ
ムクヘルジ アリジット
ラマン ラジェシュ
Original Assignee
スプランク インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by スプランク インコーポレイテッド filed Critical スプランク インコーポレイテッド
Publication of JP2020205055A publication Critical patent/JP2020205055A/ja
Priority to JP2022124934A priority Critical patent/JP7439189B2/ja
Application granted granted Critical
Publication of JP7121075B2 publication Critical patent/JP7121075B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本開示は一般に、計測手段が組み込まれたソフトウェアの分析に関し、より詳細には、計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理に関する。
関連出願の相互参照
本出願は、参照によりその全体が組み込まれている、2015年1月29日に出願した米国特許仮出願第62/109,308号明細書の利益を主張するものである。
ソフトウェア開発者は、コードに計測手段を組み込むことによって、開発するソフトウェアの種々の側面を監視する。これらは、ソフトウェアの性能、ソフトウェアの実行時に遭遇するエラー、ソフトウェアの実行時に遭遇する重要なイベント、実行されているコードの部分および実行されていない部分などを含む。コードに計測手段を組み込むための従来の技法は、ファイルをロギングするための情報をロギングする、または画面に情報をプリントするコード内の命令文を含む。このタイプの計測は簡単なアプリケーション、例えば単一のマシン上の簡単な実行のフローを有するアプリケーションに適している。しかしソフトウェアに計測手段を組み込むためのこれらの技法は、複雑な実行のフローを有する複雑なアプリケーション、例えば複数のシステムにわたって分散され、各システムが複数のプロセス、または実行のスレッドを実行するアプリケーションには不十分である。
分散システムの計測手段が組み込まれたソフトウェアによって生成されるデータを処理することは、分析のためにデータを同化することを必要とする。分散システム上で実行される計測手段が組み込まれたソフトウェアから送信されるデータを同化し処理することは、同時に異なるシステムから送信されるデータ値は異なるネットワーク遅延に遭遇する場合があり、従ってデータを一様に同化するシステムに到達するのに異なる大きさの時間がかかり得るという事実によって複雑になる。さらに、計測手段が組み込まれたソフトウェアを実行する1つまたは複数のシステムは、故障する場合がある。結果として、データを同化するシステムは、データ値がネットワーク遅延により遅くなる、またはデータソースの故障により到着する可能性がないかどうかを、決定する必要がある。これらの決定を行うことは結果として、データ値の処理に遅延を生じ、および/または提示される結果に不正確さを生じる。それに従って、ソフトウェアの計測に基づいて報告を生成するための従来のシステムはしばしば、計測手段が組み込まれたソフトウェアを稼働させる高度に分散されたシステムを分析するためには不十分である。
説明される実施形態は、計測手段が組み込まれたソフトウェアによって生成されるデータを処理する。ソフトウェア開発者はしばしば、開発されるソフトウェア内に、コードに計測手段を組み込むためのコードスニペットを含める。分析システムは、外部システム上で実行される計測手段が組み込まれたソフトウェアによって生成されるデータストリームを受信する。分析システムは、受信されたデータストリームの分析を行う。分析システムは、複数の時間間隔にわたるデータストリームのデータ値を用いて、式を評価する。例えば分析システムは、各時間間隔に対するデータストリームのデータ値を総計し、リアルタイムに更新されるチャートによる提示のためにその結果を送信することができる。
分析システムは、時間間隔の間のデータ値の到着時間に基づいて、データストリームが時間間隔における式の評価のために考慮されるか否かを決定する。分析システムは、それに対するデータ値が時間間隔の間に遅く到着する、データストリームを除外する。分析システムは、処理される各データストリームに対する最大予想遅延値を決定する。分析システムは、時間間隔の間にそれらの最大予想遅延値の前に到着しなかったデータ値を除外する。それに従って、分析システムは、これらのデータストリームを考慮せずに、その時間間隔に対して式を評価する。分析システムは、提示のために各時間間隔に対する式の評価の結果を送信する。
いくつかの実施形態において分析システムは、データストリームの過去のデータ値の遅延に基づいて最大予想遅延値を決定する。例えば分析システムは、データストリームのいくつかのデータ値の移動平均に基づいて、データストリームに対する最大予想遅延値を決定することができる。分析システムは、最大予想遅延値を定期的に、例えば各時間間隔に対して更新する。
いくつかの実施形態において分析システムはさらに、データストリームに対する不成功閾値を決定する。データストリームのデータ値がデータストリームの不成功閾値の前に到着しなかった場合、分析システムは、データストリームを不活性としてマークする。それに従って、分析システムはデータストリームを、後続の時間間隔に対する式の評価のために考慮しない。分析システムは、データストリームの次のデータ値が受信されたとき、データストリームを活性としてマークする。分析システムは、データストリームが活性とマークされた後、式の評価のためにデータストリームを考慮することを開始する。
本明細書で説明される特徴および利点は、すべてを包含するものではなく、特に、図面、明細書、および「特許請求の範囲」に鑑みて、当業者にはさらなる特徴および利点が明らかとなるであろう。さらに本明細書で用いられる述語は、主として読みやすさおよび教育的目的のために選択されており、開示される主題を詳細に叙述するまたは制限するために選択されていない場合があることが留意されるべきである。
開示される実施形態は、他の利点および特徴を有し、それらは詳細な説明、添付の「特許請求の範囲」、および添付の図(または図面)から、より容易に明らかになるであろう。以下は図の簡単な序論である。
実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するための全体のシステム環境を示す図である。 実施形態による、計測手段が組み込まれたソフトウェアから受信されたデータストリームに基づいてリアルタイム報告を生成するためのシステムのアーキテクチャを示す図である。 実施形態による、計測分析システムによって受信されたデータストリームのデータに基づいて、リアルタイムに更新されるチャートを表示するユーザインターフェースのスクリーンショットを示す図である。 実施形態による、データセンタによってグループ化されたデータストリームの合計を決定する式を示す、リアルタイムに更新されるチャートを表示するユーザインターフェースのスクリーンショットを示す図である。 実施形態による、計測分析システムによるデータストリームの処理に対する、データ値の到着遅延の影響を示す図である。 実施形態による、計測分析システムによってデータストリームを処理するための全体のプロセスを示す図である。 実施形態による、計測分析システムによって受信されたデータストリームのデータ値に基づいて、式の値を決定するための全体のプロセスを示す図である。 実施形態による、データストリームを送信するデータソースの故障を識別するプロセスを示す図である。
次にいくつかの実施形態が詳しく参照され、その例は添付の図に示される。図において可能な限り、同様なまたは類似の参照番号が用いられ、同様なまたは類似の機能を示し得ることが留意される。図は、説明の目的のためのみに、開示されるシステム(または方法)の実施形態を示す。当業者は以下の説明から、本明細書で説明される原理から逸脱せずに、本明細書に示される構造および方法の代替的実施形態が用いられ得ることを容易に認識するであろう。
全体のシステム環境
図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に割り当てる。カウンタオブジェクトは、ソース「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は、本明細書で説明されない他のモジュールを含むことができる。特定のモジュールによって提供されるように示される機能は、代わりに他のモジュールによって実施され得る。
インターフェースモジュール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によってユーザインターフェース上に提示される報告の例を示す。
図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は実施形態による、計測分析システムによってデータストリームを処理するための全体のプロセスを示す。実施形態において計測分析システム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マネジメントシステムにおいて見られる多くの他の要素を除いていることを理解されたい。当業者は、本発明の実施において他の要素および/またはステップが、望ましいおよび/または必要であることを認識し得る。しかし、このような要素およびステップは当技術分野においてよく知られているので、およびそれらは本発明のよりよい理解の助けとならないので、このような要素およびステップの議論は本明細書で与えられない。本明細書での開示は、当業者には知られているこのような要素および方法へのすべてのこのような変形および変更を対象とする。
上記の説明のいくつかの部分は、実施形態を、情報に対する動作を表すアルゴリズムおよび記号表示の観点から述べている。これらのアルゴリズムによる説明および表示は、データ処理技術における当業者によって、業務の内容を他の当業者に効果的に伝達するために一般に用いられる。これらの動作は、機能的に、計算的に、または論理的に説明されるが、コンピュータプログラム、または等価な電気回路、マイクロコードなどによって実施されるものと理解される。さらにまた、時には、一般性を失わずにこれらの動作の構成をモジュールと呼ぶことが便利であることが実証されている。説明される動作、およびそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせにおいて具体化され得る。
本明細書で用いられる「一実施形態(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 (13)

  1. 計測手段が組み込まれたソフトウェアによって生成されたデータを処理するためのコンピュータ実装方法であって、前記方法は、
    複数の時間区間のうちのそれぞれの時間区間について、データストリームの最大予想遅延値を決定するステップであって、前記最大予想遅延値は、前記計測手段が組み込まれたソフトウェアから分析システムへのデータストリームのデータ値の到着遅延の制限を含む、ステップと、
    前記時間区間の前記データストリームについて、前記データストリームの前記データ値が前記最大予想遅延値内に到着しなかった場合、前記データストリームを、データ値を処理するための式を評価するためのデータストリームのセットから除外することにより、前記データストリームのセットを変更するステップと、
    前記時間区間に関連する複数のデータストリームのデータ値を処理するための前記式の指定を受信するステップと、
    前記変更されたデータストリームのセットの前記データ値を使用して前記式を評価するステップと、
    前記式を評価した結果を、ユーザインターフェースを介して表示するために送信するステップと
    を含み、前記方法は、
    データストリームに対する不成功閾値を決定するステップであって、前記不成功閾値は前記最大予想遅延値より大きい、ステップと、
    前記データストリームのデータ値が前記不成功閾値の前に到着しなかった場合、前記データストリームを不活性としてマークするステップと
    をさらに含む、コンピュータ実装方法。
  2. 前記最大予想遅延値の後に到着するデータストリームのデータ値を永続的データストアに格納するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
  3. 1つまたは複数の後続の時間区間について、データ値の到着が監視される前記データストリームのセットから、不活性としてマークされたデータストリームを除外するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
  4. 前記データストリームを不活性としてマークした後でデータ値が受信された場合、前記データストリームを活性としてマークするステップと、
    1つまたは複数の後続の時間区間について、データ値の到着が監視される前記データストリームのセットに前記データストリームを含めるステップと
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  5. 時間区間ごとに更新されるリアルタイムチャートで表示するための前記式の評価の結果を構成するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
  6. 前記分析システムによって、1つまたは複数の外部システムから、前記複数のデータストリームを識別する情報を受信するステップであって、各データストリームは、外部システム上で実行される計測手段が組み込まれたソフトウェアのインスタンスによって生成される、ステップをさらに含む、請求項1に記載のコンピュータ実装方法。
  7. 前記式は前記データストリームのセットの前記データ値を総計し、前記データ値は時間区間に関連する、請求項1に記載のコンピュータ実装方法。
  8. 前記最大予想遅延値は、前記データストリームのデータ値の履歴到着遅延に基づいて決定される、請求項1に記載のコンピュータ実装方法。
  9. 時間区間の前記最大予想遅延値は、過去の統計に基づく時間区間の前記データストリームの前記データ値の前記到着遅延に基づいて決定される、請求項1に記載のコンピュータ実装方法。
  10. 計測手段が組み込まれたソフトウェアによって生成されたデータを処理するためのシステムであって、
    命令が格納された少なくとも1つのメモリと、
    前記命令を実行するように構成された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサは、
    複数の時間区間それぞれの時間区間について、データストリームの最大予想遅延値を決定し、前記最大予想遅延値は、前記計測手段が組み込まれたソフトウェアから分析システムへの前記データストリームのデータ値の到着遅延の制限を含み、
    前記時間区間の前記データストリームについて、前記データストリームの前記データ値が前記最大予想遅延値内に到着しなかった場合、前記データストリームを、データ値を処理するための式を評価するためのデータストリームのセットから除外することにより、前記データストリームのセットを変更し、
    前記時間区間に関連する複数のデータストリームのデータ値を処理するための前記式の指定を受信し、
    前記変更されたデータストリームのセットの前記データ値を使用して式を評価し、
    前記式を評価した結果を、ユーザインターフェースを介して表示するために送信する
    ように構成され、さらに
    データストリームに対する不成功閾値を決定し、前記不成功閾値は前記最大予想遅延値より大きく、
    前記データストリームのデータ値が前記不成功閾値の前に到着しなかった場合、前記データストリームを不活性としてマークするように構成されている、システム。
  11. 前記最大予想遅延値の後に到着するデータストリームのデータ値を永続的データストアに格納するようにさらに構成される、請求項10に記載のシステム。
  12. 1つまたは複数の後続の時間区間について、データ値の到着が監視される前記データストリームのセットから、不活性としてマークされたデータストリームを除外するようにさらに構成される、請求項10に記載のシステム。
  13. 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、計測手段が組み込まれたソフトウェアによって生成されたデータを処理するための動作を実行させる命令を格納した非一時的なコンピュータ可読記憶媒体であって、前記動作は、
    複数の時間区間のうちのそれぞれの時間区間について、データストリームの最大予想遅延値を決定するステップであって、前記最大予想遅延値は、前記計測手段が組み込まれたソフトウェアから分析システムへのデータストリームのデータ値の到着遅延の制限を含む、ステップと、
    前記時間区間の前記データストリームについて、前記データストリームの前記データ値が前記最大予想遅延値内に到着しなかった場合に前記データストリームを、データ値を処理するための式を評価するためのデータストリームのセットから除外することにより、前記データストリームのセットを変更するステップと、
    前記時間区間に関連する複数のデータストリームのデータ値を処理するための前記式の指定を受信するステップと、
    前記変更されたデータストリームのセットの前記データ値を使用して前記式を評価するステップと、
    前記式を評価した結果を、ユーザインターフェースを介して表示するために送信するステップと
    を含み、前記動作は、
    データストリームに対する不成功閾値を決定するステップであって、前記不成功閾値は前記最大予想遅延値より大きい、ステップと、
    前記データストリームのデータ値が前記不成功閾値の前に到着しなかった場合、前記データストリームを不活性としてマークするステップと
    をさらに含む、非一時的なコンピュータ可読記憶媒体。
JP2020126662A 2015-01-29 2020-07-27 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理 Active JP7121075B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022124934A JP7439189B2 (ja) 2015-01-29 2022-08-04 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562109308P 2015-01-29 2015-01-29
US62/109,308 2015-01-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017540200A Division JP6793901B2 (ja) 2015-01-29 2016-01-26 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022124934A Division JP7439189B2 (ja) 2015-01-29 2022-08-04 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理

Publications (2)

Publication Number Publication Date
JP2020205055A JP2020205055A (ja) 2020-12-24
JP7121075B2 true JP7121075B2 (ja) 2022-08-17

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 Before (1)

Application Number Title Priority Date Filing Date
JP2017540200A Active JP6793901B2 (ja) 2015-01-29 2016-01-26 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022124934A Active JP7439189B2 (ja) 2015-01-29 2022-08-04 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理

Country Status (7)

Country Link
US (3) US10394692B2 (ja)
EP (2) EP3761180B1 (ja)
JP (3) JP6793901B2 (ja)
CN (2) CN107430545B (ja)
AU (3) AU2016211697B2 (ja)
CA (1) CA2974386C (ja)
WO (1) WO2016123126A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
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
US9760353B2 (en) 2014-12-19 2017-09-12 Signalfx, Inc. Dynamically changing input data streams processed by 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
US20230385288A1 (en) * 2021-01-29 2023-11-30 Splunk Inc. User interface for customizing data streams and processing pipelines
US11636116B2 (en) * 2021-01-29 2023-04-25 Splunk Inc. User interface for customizing data streams
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348670A (ja) 2003-05-26 2004-12-09 Mitsubishi Electric Corp ログ仲介システム
JP2009266007A (ja) 2008-04-25 2009-11-12 Hitachi Ltd ストリームデータ処理方法及び計算機システム
JP2011180957A (ja) 2010-03-03 2011-09-15 Sekisui Chem Co Ltd 計測管理システム及び管理サーバ
WO2011158372A1 (ja) 2010-06-18 2011-12-22 三菱電機株式会社 データ処理装置及びデータ処理方法及びプログラム
WO2012128388A1 (ja) 2011-03-23 2012-09-27 日本電気株式会社 運用管理システム、運用管理方法、及びプログラム
WO2014109038A1 (ja) 2013-01-10 2014-07-17 株式会社日立製作所 時系列データ処理装置及び方法並びに記憶媒体

Family Cites Families (127)

* Cited by examiner, † Cited by third party
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
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
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
DE60307252T2 (de) * 2002-04-11 2007-07-19 Matsushita Electric Industrial Co., Ltd., Kadoma Einrichtungen, verfahren und programme zur kodierung und dekodierung
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
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
US8019747B2 (en) * 2007-10-30 2011-09-13 Oracle International Corporation Facilitating flexible windows in data stream management systems
US8356289B2 (en) 2008-03-26 2013-01-15 Avaya Inc. Efficient encoding of instrumented data in real-time concurrent systems
US20090287729A1 (en) 2008-05-16 2009-11-19 Microsoft Corporation Source code coverage testing
US8589436B2 (en) 2008-08-29 2013-11-19 Oracle International Corporation Techniques for performing 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
US8484243B2 (en) 2010-05-05 2013-07-09 Cisco Technology, Inc. Order-independent stream query processing
EP2538632B1 (en) 2010-07-14 2014-04-02 Google Inc. Method and receiver for reliable detection of the status of an RTP packet stream
EP2609507B1 (en) * 2010-08-25 2019-05-15 Ab Initio Technology LLC Evaluating dataflow graph characteristics
US8260826B2 (en) 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. Data processing system and method
WO2012046316A1 (ja) 2010-10-06 2012-04-12 株式会社日立製作所 ストリームデータ処理方法及び装置
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
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
WO2013101214A1 (en) * 2011-12-30 2013-07-04 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
US9526091B2 (en) * 2012-03-16 2016-12-20 Intel Corporation Method and apparatus for coordination of self-optimization functions in a wireless network
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
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9594703B2 (en) * 2012-03-29 2017-03-14 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
CA2870021C (en) * 2012-04-13 2018-07-31 Goldman, Sachs & Co. Systems and methods for scalable structured data distribution
US9961025B2 (en) * 2012-04-30 2018-05-01 Oracle America, 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
US9262479B2 (en) 2012-09-28 2016-02-16 Oracle International Corporation Join operations for continuous queries over archived views
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
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
WO2014103037A1 (ja) * 2012-12-28 2014-07-03 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US9229839B2 (en) * 2013-01-09 2016-01-05 Microsoft Technology Licensing, Llc Implementing rate controls to limit timeout-based faults
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
US20130227529A1 (en) * 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
US9477733B2 (en) 2013-03-15 2016-10-25 Uda, Lld Hierarchical, parallel models for extracting in real-time high-value information from data streams and system and method for creation of same
US9477814B2 (en) * 2013-05-22 2016-10-25 Broadcom Corporation Distribution of an IP-based multimedia channel to non-IP enabled devices
US9542291B2 (en) 2013-05-24 2017-01-10 Software Ag Self-monitoring event-based system and method
US9292328B2 (en) * 2013-05-24 2016-03-22 Bromium, Inc. Management of supervisor mode execution protection (SMEP) by a hypervisor
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
EP3061010A4 (en) 2013-10-24 2017-04-26 Carsales.com Ltd System and method for implementing multi-faceted search queries
US9203855B1 (en) * 2014-05-15 2015-12-01 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
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
WO2016057211A1 (en) 2014-10-08 2016-04-14 Signalfx, Inc. Real-time reporting based on instrumentation of software
CA3177882A1 (en) 2014-10-08 2016-04-14 Splunk Inc. Real-time reporting based on instrumentation of software
US9804951B2 (en) 2014-10-08 2017-10-31 Signalfx, Inc. Quantization of data streams of instrumented software
US9858411B2 (en) * 2014-12-19 2018-01-02 Intel Corporation Execution profiling mechanism
WO2016100534A1 (en) 2014-12-19 2016-06-23 Signalfx, Inc. Data stream processing language for analyzing instrumented software
US9760353B2 (en) 2014-12-19 2017-09-12 Signalfx, Inc. Dynamically changing input data streams processed by data stream language programs
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
US10210038B2 (en) 2015-10-08 2019-02-19 Lightbend, Inc. Tuning 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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348670A (ja) 2003-05-26 2004-12-09 Mitsubishi Electric Corp ログ仲介システム
JP2009266007A (ja) 2008-04-25 2009-11-12 Hitachi Ltd ストリームデータ処理方法及び計算機システム
JP2011180957A (ja) 2010-03-03 2011-09-15 Sekisui Chem Co Ltd 計測管理システム及び管理サーバ
WO2011158372A1 (ja) 2010-06-18 2011-12-22 三菱電機株式会社 データ処理装置及びデータ処理方法及びプログラム
WO2012128388A1 (ja) 2011-03-23 2012-09-27 日本電気株式会社 運用管理システム、運用管理方法、及びプログラム
WO2014109038A1 (ja) 2013-01-10 2014-07-17 株式会社日立製作所 時系列データ処理装置及び方法並びに記憶媒体

Also Published As

Publication number Publication date
WO2016123126A1 (en) 2016-08-04
CA2974386A1 (en) 2016-08-04
JP6793901B2 (ja) 2020-12-02
JP2018508881A (ja) 2018-03-29
CN107430545B (zh) 2021-02-26
EP3761180C0 (en) 2024-06-05
US11928046B1 (en) 2024-03-12
AU2016211697A1 (en) 2017-08-10
AU2020200713B2 (en) 2022-01-27
JP7439189B2 (ja) 2024-02-27
EP3761180B1 (en) 2024-06-05
CN112860518A (zh) 2021-05-28
JP2022140767A (ja) 2022-09-27
AU2022201792B2 (en) 2023-03-09
US11194697B2 (en) 2021-12-07
AU2016211697B2 (en) 2019-10-31
EP3251015A4 (en) 2018-08-08
EP3251015A1 (en) 2017-12-06
AU2022201792A1 (en) 2022-04-07
CN107430545A (zh) 2017-12-01
US20160224459A1 (en) 2016-08-04
US20200050535A1 (en) 2020-02-13
EP3251015B1 (en) 2020-09-02
CA2974386C (en) 2020-10-13
EP3761180A1 (en) 2021-01-06
US10394692B2 (en) 2019-08-27
AU2020200713A1 (en) 2020-02-20
JP2020205055A (ja) 2020-12-24

Similar Documents

Publication Publication Date Title
JP7121075B2 (ja) 計測手段が組み込まれたソフトウェアから受信されるデータストリームのリアルタイム処理
JP7437351B2 (ja) 計測手段が組み込まれたソフトウェアを分析するためのデータストリーム処理言語
US11126538B1 (en) User interface for specifying data stream processing language programs for analyzing instrumented software
JP2018508881A5 (ja)
WO2016100534A1 (en) Data stream processing language for analyzing instrumented software

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220804

R150 Certificate of patent or registration of utility model

Ref document number: 7121075

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150