JP5978401B2 - 分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム - Google Patents

分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム Download PDF

Info

Publication number
JP5978401B2
JP5978401B2 JP2015532018A JP2015532018A JP5978401B2 JP 5978401 B2 JP5978401 B2 JP 5978401B2 JP 2015532018 A JP2015532018 A JP 2015532018A JP 2015532018 A JP2015532018 A JP 2015532018A JP 5978401 B2 JP5978401 B2 JP 5978401B2
Authority
JP
Japan
Prior art keywords
identifier
user request
servers
distributed system
logs
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
JP2015532018A
Other languages
English (en)
Other versions
JP2015528612A (ja
Inventor
カイ・ホワ
ジョウ・チイ
スゥン・ティーンタオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2015528612A publication Critical patent/JP2015528612A/ja
Application granted granted Critical
Publication of JP5978401B2 publication Critical patent/JP5978401B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • 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/006Identification
    • 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
    • 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/3075Monitoring 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 in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Description

[関連出願の相互参照]
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、2012年9月14日に出願された、発明の名称を「METHOD AND DEVICE FOR MONITORING THE RUNNING OF USER REQUEST IN DISTRIBUTED SYSTEMS(分散システムにおいてユーザリクエストの実行を監視するための方法及び装置)」とする中国特許出願第201210342909.6号に基づく優先権を主張する。
本出願は、分散システムにおいてユーザリクエストの実行を監視するための方法及びシステムに関する。
大規模な分散システムにおいて、ユーザアプリケーションサービスリクエストは、多くの場合、実行される前に多くのサービスモジュールを経る。例えば、アリババのクラウドコンピューティングプラットフォームにおいて、ユーザによる1つの動作リクエストは、インデックスバッファの更新、メタ情報の維持、ファイルの書き込み、及びアクセスログの書き込みなどの多くの動作の完了前に、スケジューリングモジュール、通信モジュール、インデクシングモジュール、分散ストレージモジュール、及びその他のサービスモジュールを経る。これらのサービスモジュールは、通常は、幾百ものサーバにおいて様々なプロセス上に展開されており、様々なソフトウェアプログラムで構成される。
現在では、ユーザによって呼び出される分散システム挙動の監視及び解析は、多くの場合、例えばファイルシステムの監視、読み出し、及び書き込み、又は上位システムのスループットの監視などの、分散システムにおける1つのサービスコンポーネント上に集中している。このような監視手法は、1つのサービスモジュールのみを解析するものであり、ユーザによるアプリケーションサービスリクエストが分散システム全体に及ぼす影響を正確に得ることはできない。
以下の詳細な説明及び添付の図面において、本発明の様々な実施形態が開示される。
ユーザリクエストの実行を監視するためのプロセスの一実施形態を示すフローチャートである。
出力されたログの一例を示す図である。
ログを収集するためのプロセスの一実施形態を示すフローチャートである。
ログの解析の一例を示す図である。
ログの解析の詳細な一例を示す図である。
ログに基づいて統計をまとめる一例を示す図である。
ユーザリクエスト分布の一例を示す図である。
ユーザリクエストの実行を監視するためのシステムの一実施形態を示す構造図である。
ユーザリクエストの実行を監視するためのシステムの一実施形態を示す構造図である。
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能記憶媒体に実装されたコンピュータプログラム製品、並びに/又は結合先のメモリに記憶された命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されているプロセッサのようなプロセッサなどの、数々の形態で実現することができる。本明細書では、これらの実現形態、又は本発明がとりえるその他のあらゆる形態が、技術と称されてよい。総じて、開示されるプロセスの各段階の順番は、本発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されるとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成されている汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実装されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成されている1つ以上の機器、回路、並びに/又は処理コアを言う。
本発明の原理を例示する添付の図面とともに、以下で、本発明の1つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されるものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲に従って実施されえる。明瞭を期するために、本発明に関係した技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
図1は、ユーザリクエストの実行を監視するためのプロセスの一実施形態を示すフローチャートである。一部の実施形態では、プロセス100は、図9のサーバ910によって実行に移され、以下を含む。
ステップ110において、サーバは、分散システムにおける複数のサーバによって受信されるユーザリクエストをサンプリングする。
ステップ120において、サーバは、複数のサーバによってサンプリングされたユーザリクエストに対応する識別子を生成する。一部の実施形態では、識別子は、ユーザリクエストがスレッドを呼び出すときに、現スレッドへ変数として送信される。一部の実施形態では、各スレッドは、データの読み出し及び書き込みのためのストレージインターフェースを有するローカルストレージを有する。一部の実施形態では、変数は、ストレージインターフェースに記憶される。
ステップ130において、サーバは、分散システムにおける複数のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトする。
以下の、追跡インターフェースの一例は、2つの概念、すなわち追跡インターフェース、及び追跡インターフェースをどのようにしてオンオフ切り替えするかを示している。
FunctionB(){
TRACE_LOG (FunctionB,(”Message”, “exception throw”)(“User”,”100240”));
}
上記の例では、追跡インターフェースのためのコードが手動でインジェクトされる。追跡インターフェースの切り替えは、追跡インターフェースによって決定されるのではなく、現識別子が0に設定されているか否かに基づく。
ステップ140において、サーバは、現時点で実行されているプロセス(現プロセス)が、インジェクトされた追跡インターフェースを含むときに、この実行されているプロセスが、ユーザリクエストに対応する識別子を含むか否かを判定する。
ステップ150において、現プロセスが、ユーザリクエストに対応する識別子を含む場合に、サーバは、追跡インターフェースによって示された関数に関係する識別子に対応する情報を記録し、ログを作成する。
ステップ160において、サーバは、対応する識別子に基づいて、作成されたログを個々に収集する。
分散システムのパフォーマンスを監視することによる乱れの影響を軽減するために、及び監視システムによって消費される負荷が重すぎないことを保証するために、分散システムにおける複数のサーバによって受信されるユーザリクエストは、一般に、1〜5%の比率にしたがったランダムダンプリングを経る。サンプリングされたユーザリクエストは、呼び出された個々のスレッドにおいてまとめて追跡され、対応するログを作成される。
一例として、サンプリングされたユーザリクエストの追跡は、ユーザリクエストに対応する識別子に基づく。更に、複数のサーバによってサンプリングされたユーザリクエストに対応する識別子が生成されるときに、サーバは、生成される識別子が分散システムにおいて一意であることを保証する。例えば、ユーザリクエストに一意に対応する識別子が、設定アルゴリズムに従って生成される。一部の実施形態では、アルゴリズムは、複数の受信サーバによってサンプリングされたユーザリクエストについて、そのサンプリングされたユーザリクエストの送信時間及びリクエスト受信サーバのマーカに基づいて、識別子を生成する。識別子の生成について、アルゴリズムに課される制約はない。
サンプリングされたユーザリクエストが、複数のサーバによって実行されるプロセスにおいて効果的に検出されることを保証するために、ユーザリクエストに対応する識別子は、ユーザリクエストによって現時点で呼び出されているスレッドへ変数として送信される。一部の実施形態では、ユーザリクエストが同じプロセスにおいて異なるスレッドを呼び出すときは、識別子は、スレッドローカルストレージ(TLS)内に保持される。プロセスがサブプロセスを作成するときは、サーバは、それらのサブプロセスへ識別子を送信する。ユーザリクエストが複数のプロセスに跨っており、異なるスレッドを呼び出すときは、識別子は、通信プロトコルを通じて全てのプロセスへ送信される。以下は、通信プロトコルの一例である。
Header
TracerID:1001234311111(Identifier)
Body
[Original transmitted content]
一部の実施形態では、ネットワークモジュールがネットワークリクエストを送信するときに、スレッドから識別子が得られ、ネットワークリクエストのヘッダに置かれ、受信端末へ送信される。受信端末は、受信されたネットワークリクエストから識別子を抽出し、その識別子を、現時点でネットワークリクエストを処理しているスレッドへ送信する。
一部の実施形態では、分散システムにおける各サーバについて、サーバは、監視対象とされるプロセスに、事前に追跡インターフェースをインジェクトする。例えば、追跡インターフェースは、Windows(登録商標)オペレーティングシステムにおけるTRACE_LOGインターフェースに対応している。
例えば、関数が実行されるときに、サーバは、識別子が0であるか否かを判定する。識別子が0でない場合、サーバは、現TRACE_LOGの内容及び識別子の値をログへ出力する。
追跡インターフェースは、インジェクト点において、そのインジェクト点のタイプに関する記述的情報を明示的に追加する。一部の実施形態では、全ての追跡インターフェースが、「リソースの取得は初期化である(RAII)」プログラミング仕様を採用している。つまり、追跡インターフェースは、システムリソースの解放及び要求を完成させる。一部の実施形態では、追跡インターフェースを通じて、コンストラクタ関数及びデストラクタ関数によってユーザリクエストインジェクト点の出入りのタイムスタンプが個々に記録され、ログに組み込まれる。
一部の実施形態では、以下のコードを通じてインジェクトプローブ追跡が実行に移される。
FunctionB(){
TRACE_LOG(FunctionB);
……
}
FunctionC(){
TRACE_LOG(FunctionC);
……
}
FunctionA(){
TRACE_LOG(FunctionA);
FunctionB();
FunctionC();
……
}
Main(…){
ENABLE_TRACE();
FunctionA();
}
したがって、分散システムにおける複数のサーバのプログラムがTRACE_LOGインターフェースに到達すると、プログラムは、常に、現時点で実行されているプロセスがユーザリクエストに対応する識別子を含むか否かを判定する。
一例では、識別子は、スレッド関数が呼び出されたときはそのスレッド関数によって使用される。識別子の値が0に対応する(リクエストがサンプリングされなかったことを意味する)場合、何も出力されない。識別子の値が0に等しくない(リクエストがサンプリングされている)場合、識別子の値及びログの内容が、処理のためにログへ出力される。
現時点で実行されているプロセスがユーザリクエストに対応する識別子を含むことが、プログラムによって判定された場合は、サーバは、スレッドから識別子を取得する。サーバは、追跡インターフェースによって示された関数に関係する情報を記録する。例えば、識別子及び呼び出された関数の名前及び場所を含む情報、関数が呼び出されたときの時刻、関数が呼び出された時点で生成されたエラー情報、又はこれらの任意の組み合わせが、ログへ出力される。
図2は、出力されたログの一例である。この出力されたログにおいて、「TRACE_ID_:001」は、識別子がリクエスト001についての識別子であることを示し、「_FUNC_:FunctionA_start」は、「Function A」の開始時刻を示し、「_FUNC_:FunctionA_end」は、「Function A」の終了時刻を示し、「/Example.cpp:117」は、ログが「Example.cpp」のライン117上に位置することを示す補助的な情報である。
現時点で実行されているプロセスがユーザリクエストに対応する識別子を含まないことが、プログラムによって判定された場合は、サーバは、いかなる動作も実行しない。つまり、識別子がセットアップされなかった又は識別子が0である場合は、識別子は、プロセスを呼び出したユーザリクエストが追跡又は監視されていないことを示す。
一部の実施形態では、ステップ160において、サーバは、分散システムにおける全てのサーバについてのログを作成した後、バックグラウンド収集手順を通じて、処理サーバにおいて一定間隔でログを収集し、それらの収集されたログを相互に関係付ける。つまり、識別子の違いに従って、収集動作が実行される。例えば、同じ識別子を持つログが、同じタイプとして収集される。
図3は、ログを収集するためのプロセスの一実施形態を示すフローチャートである。一部の実施形態では、プロセス300は、図1の160を実行に移したものであり、以下を含む。
ステップ310において、サーバは、収集されたログを、識別子の違いに基づいて個々に分類する。
ステップ320において、サーバは、同じ識別子を有するログを、プロセスの違いに基づいて個々に分類する。
ステップ330において、サーバは、同じ識別子及び同じプロセスを有するログを、関数、並びに開始時刻及び終了時刻に基づいて個々に合体させる。
ステップ340において、サーバは、同じ識別子を有する、プロセスに跨るログを、時系列に基づいて組み合わせる。
ステップ350において、ログが収集された後に、サーバは、具体的なニーズに基づいて、収集されたログを解析し、解析結果を出力する。例えば、サーバは、異なる識別子を組み合わせて解析のための未加工データを形成するために、収集されたログを解析する。一部の実施形態では、プログラムにおいてユーザリクエストがどのように実行されるかについての便利な解析を可能にするために、プログラム実行モードを解釈するための視覚化/解析フレームワークが使用される。
一部の実施形態では、以下のログ解析のうちの1つ以上が実施される。
1.サーバは、同じ呼び出しフォームを有するユーザリクエストに対し、経路が異なる解析を実施する。一部の実施形態では、分散システムにおいて、同じ呼び出しフォームが、システム状態が異なるゆえに異なる挙動を引き起こす。例えば、分散システムは、キャッシュがヒットしたか否かに関し、同じ2種類の応答を有する。同じ処理モードについての異なる呼び出し挙動を数えることによって、分散システムの真の処理状態を解析することが可能である。図4は、ログの解析の一例である。例えば、同じ、MailBox::GetMail処理に関して、合計の99.77%及び0.22%をそれぞれ占める2つの異なる挙動(A及びB)が存在する。図5は、ログの解析の詳細な一例である。詳細な解析は、挙動Aと挙動Bとの間の差を示している。一例として、図5の左側502は、挙動Aを示しており、図5の右側504は、挙動Bを示している。
2.サーバは、分散システムにおけるユーザリクエスト実行経路の、及び実行時間の解析を実施する。図6は、ログに基づいて統計をまとめる一例である。収集されたユーザリクエストログに基づいて、複数のサーバのプロセスにおける、ユーザリクエスト呼び出しデータに関して及びユーザリクエストを実行させるために費やされる時間について統計をまとめることが可能である。
3.サーバは、分散システムにおける全てのモジュールの頻度解析を呼び出す。各モジュールにおける各ユーザリクエスト頻度の平均値及び最大値の検査を可能にすることに加えて、解析は、様々な次元に基づく、すなわち時間、識別子、及び器具の観点からの、プログラム呼び出し状況の分布の検査も可能にする。図7は、ユーザリクエストの分布の一例である。
更に、方法に対応する、分散システムにおいて実行されるユーザリクエストを監視するためのシステムが提供される。このシステムが稼働時にしたがう原則は、分散システムにおいて実行されるユーザリクエストを監視するための上記の方法と同様である。したがって、システムを実現するにあたっては、方法の実行を参照することができる。簡潔を期するために、繰り返し部分のこれ以上の説明は省略される。
図8は、ユーザリクエストの実行を監視するためのシステムの一実施形態を示す構造図である。一部の実施形態では、システム800は、サンプリングモジュール810と、識別子生成モジュール820と、追跡インターフェースインジェクトモジュール830と、判定モジュール840と、生成モジュール850と、ログ収集モジュール860と、ログ解析モジュール870とを含む。
サンプリングモジュール810は、分散システムにおける複数のサーバよって受信されたユーザリクエストをサンプリングする。
識別子生成モジュール820は、様々なサーバによってサンプリングされたユーザリクエストに対応する識別子を生成する。一部の実施形態では、識別子は、ユーザリクエストがスレッドを呼び出す場合に、現スレッドへ変数として送信される。
追跡インターフェースインジェクトモジュール830は、分散システムにおける様々なサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトする。
判定モジュール840は、現プロセスが、インジェクトされた追跡インターフェースを含むときに、この実行されているプロセスが、ユーザリクエストに対応する識別子を含むか否かを判定する。
現プロセスが追跡インターフェースを含むときに、この実行されているプロセスがユーザリクエストに対応する識別子を含むとして検出された場合は、生成モジュール850は、追跡インターフェースによって示された関数に関係する識別子に対応する情報を記録し、ログを作成する。
ログ収集モジュール860は、対応する識別子に基づいて、作成されたログを個々に収集する。
ログ解析モジュール870は、収集されたログを解析し、解析結果を出力する。一例として、解析は、1)同じ呼び出しフォームを有するユーザリクエストに対し、経路が異なる解析を実施する方法、2)分散システムにおけるユーザリクエスト実行経路の、及び様々なモジュールにおける実行時間の解析を実施する方法、並びに3)分散システムにおける様々なモジュールの頻度解析を呼び出す方法のうちの、1つ以上を含む。
図9は、ユーザリクエストの実行を監視するためのシステムの一実施形態を示す概略図である。システム900は、複数のサーバ910と、クライアント920とを含む。サーバ910は、ネットワーク930を通じてクライアント920に接続されている。
例えば、クライアント920は、ネットワーク930を通じて、システム900におけるサーバ910の1つへユーザリクエストを送信する。
分散システムにおいて実行されるユーザリクエストを監視するための方法及びシステムが提供される。ユーザが分散システムにアクセスするときに、分散システムによって受信されたユーザリクエストがサンプリングされ、サンプリングされたユーザリクエストに対応する識別子が生成される。識別子は、ユーザリクエストによって呼び出される各スレッドへ送信される。分散システムの複数のサーバによって実行されるプロセスに、追跡インターフェースが挿入される。このような各プロセスが追跡インターフェースに到達したときに、現プロセスがユーザリクエストに対応する識別子を含むとして検出された場合は、追跡インターフェースによって示される関数に関係する識別子に対応する情報が記録され、ログが作成される。続いて、作成されたログは、対応するそれらの識別子に基づいて、個々に収集される。ユーザリクエストは、ユーザリクエストの監視中に、サンプリング方法を使用してサンプリング監視されるので、システムパフォーマンスに対する影響は少ない。したがって、監視システムに過度な負担がかかることはない。更に、分散システムの監視において複数のサーバによって作成されたログは、ユーザリクエストの識別子に基づいてリアルタイムで収集され、ユーザリクエスト挙動のリアルタイム解析へのサポートを可能にする。
上述されたユニットは、1つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラマブル論理装置及び/若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はこれらの組み合わせとして実装することができる。一部の実施形態では、ユニットは、本発明の実施形態で説明される方法を(パソコン、サーバ、ネットワーク機器などの)計算装置に実行させるための幾つかの命令を含み尚且つ(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの)不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。ユニットは、1つの装置に実装されてよい、又は複数の装置に分散されてよい。ユニットの機能は、互いに統合されてよい、又は複数の小ユニットに更に分けられてよい。ユニットの機能は、互に合体されてよい、又は複数のサブユニットに更に分けられてよい。
本明細書で開示される実施形態に照らして説明される方法又はアルゴリズムステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、又はこれら両方の組み合わせを使用して実現することができる。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、メモリ、読み出し専用メモリ(ROM)、電気的にプログラム可能なROM、電気的に消去可能でプログラム可能なROM、レジスタ、ハードドライブ、着脱式ディスク、CD−ROM、又は当該技術分野で知られるその他の任意の形態のストレージ媒体にインストールすることができる。
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的であり、限定的ではない。
適用例1:分散システムにおいてユーザリクエストの実行を監視する方法であって、
分散システムにおける複数のサーバによって受信されるユーザリクエストをサンプリングし、
前記複数のサーバによってサンプリングされた前記ユーザリクエストに対応する識別子を生成し、前記識別子は、前記ユーザリクエストによって呼び出された現スレッドへ変数として送信され、
前記分散システムにおける前記複数のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトし、
前記現プロセスが前記ユーザリクエストに対応する前記識別子を含むか否かを判定し、
前記現プロセスが前記追跡インターフェースを実行した際、前記現プロセスが前記ユーザリクエストに対応する前記識別子を含む場合に、前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成し、
前記作成されたログを、前記対応する識別子に従って個々に収集すること、
を備える方法。
適用例2:適用例1に記載の方法であって、
前記分散システムにおける複数のサーバによって受信されるユーザリクエストをサンプリングすることは、
前記分散システムにおける前記複数のサーバによって受信される前記ユーザリクエストのランダムサンプリングを、1〜5%の比率に基づいて行うことを含む、方法。
適用例3:適用例1に記載の方法であって、
前記複数のサーバによってサンプリングされた前記ユーザリクエストに対応する識別子を生成することは、
前記複数の受信サーバによってサンプリングされた前記ユーザリクエストについて、ユーザリクエスト送信時間及びリクエスト受信サーバのマーカに基づいて、一意に対応する識別子を生成することを含む、方法。
適用例4:適用例1に記載の方法であって、
前記ユーザリクエストがスレッドを呼び出す場合に、前記識別子が現スレッドへ変数として送信されることは、
同じプロセスにおける別のユーザリクエストが異なるスレッドを呼び出す場合は、前記識別子は前記スレッド変数内に保持され、
前記プロセスがサブプロセスを作成した場合は、前記識別子は前記サブプロセスへ送信され、
前記ユーザリクエストが複数のプロセスに跨っており、異なるスレッドを呼び出すときは、前記識別子は通信プロトコルを通じて全てのプロセスへ送信されること、
を備える、方法。
適用例5:適用例1に記載の方法であって、
前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成することは、
前記識別子、前記呼び出された関数の名前及び場所、前記関数が呼び出されたときの時刻、呼び出しの時点で生成されたエラー情報、又はこれらの任意の組み合わせを前記ログへ出力することを含む、方法。
適用例6:適用例1に記載の方法であって、
前記作成されたログを、前記対応する識別子に従って個々に収集することとは、
受信されたログを、識別子の違いに従って個々に分類し、
同じ識別子を有するログを、プロセスの違いに従って個々に分類し、
同じ識別子及び同じプロセスを有するログを、関数に従って、並びに開始時刻及び終了時刻の呼び出しに従って、個々に合体させ、
同じ識別子を有する、プロセスに跨がるログを、時系列に従って組み合わせること、
を含む、方法。
適用例7:適用例1に記載の方法であって、更に、
前記作成されたログを個々に収集した後に、前記収集されたログを解析し、解析結果を出力することを備える方法。
適用例8:適用例7に記載の方法であって、
前記収集されたログを解析することは、
同じ呼び出しフォームを有するユーザリクエストに対し、経路が異なる解析を実施し、
前記分散システムにおけるユーザリクエスト実行経路及びモジュールにおける実行時間を解析し、
前記分散システムにおいて前記モジュールにおける頻度解析を呼び出すこと、
又はこれらの任意の組み合わせ
を備える、方法。
適用例9:分散システムにおいてユーザリクエストの実行を監視するためのシステムであって、
少なくとも1つのプロセッサであって、
分散システムにおける複数のサーバによって受信されるユーザリクエストをサンプリングし、
前記複数のサーバによってサンプリングされた前記ユーザリクエストに対応する識別子を生成し、前記識別子は、前記ユーザリクエストによって呼び出された現スレッドへ変数として送信され、
前記分散システムにおける前記複数のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトし、
前記現プロセスが前記ユーザリクエストに対応する前記識別子を含むか否かを判定し、
前記現プロセスが前記追跡インターフェースを実行した際、前記現プロセスが前記ユーザリクエストに対応する前記識別子を含む場合に、前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成し、
前記作成されたログを、前記対応する識別子に従って個々に収集するように構成されている少なくとも1つのプロセッサと、 前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するように構成されているメモリと、
を備える、システム。
適用例10:適用例9に記載のシステムであって、
前記少なくとも1つのプロセッサは、更に、
前記作成されたログを収集した後に、
同じ呼び出しフォームを有するユーザリクエストに対し、経路が異なる解析を実施し、
前記分散システムにおけるユーザリクエスト実行経路及びモジュールにおける実行時間を解析し、
前記分散システムにおいて前記モジュールにおける頻度解析を呼び出すように、又は
これらの任意の組み合わせを行うように、
構成されている、システム。
適用例11:非一時的なコンピュータ読み取り可能ストレージ媒体に埋め込まれた、分散システムにおいてユーザリクエストの実行を監視するためのコンピュータプログラム製品であって、
分散システムにおける複数のサーバによって受信されるユーザリクエストをサンプリングするためのコンピュータ命令と、
前記複数のサーバによってサンプリングされた前記ユーザリクエストに対応する識別子を生成するためのコンピュータ命令と、前記識別子は、前記ユーザリクエストによって呼び出された現スレッドへ変数として送信され、
前記分散システムにおける前記複数のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトするためのコンピュータ命令と、
前記現プロセスが前記ユーザリクエストに対応する前記識別子を含むか否かを判定するためのコンピュータ命令と、
前記現プロセスが前記追跡インターフェースを実行した際、前記現プロセスが前記ユーザリクエストに対応する前記識別子を含む場合に、前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成するためのコンピュータ命令と、
前記作成されたログを、前記対応する識別子に従って個々に収集するためのコンピュータ命令と、
を備えるコンピュータプログラム製品。

Claims (11)

  1. 分散システムにおいてユーザリクエストの実行を監視する方法であって、
    分散システムにおける複数のサーバの内の1以上のサーバによって受信されるユーザリクエストをサンプリングし、
    前記複数のサーバの内の1以上のサーバによって受信された前記ユーザリクエストに対応する識別子を生成し、前記識別子は、前記ユーザリクエストによって呼び出された現スレッドへ変数として送信され、
    前記分散システムにおける前記複数のサーバの内の1以上のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトし、
    プロセスが前記ユーザリクエストに対応する前記識別子を含むか否かを判定し、
    前記現プロセスが追跡インターフェースを実行した際、前記現プロセスが前記ユーザリクエストに対応する前記識別子を含む場合に、前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成し、
    前記作成されたログを、前記対応する識別子に従って個々に収集すること、
    を備える方法。
  2. 請求項1に記載の方法であって、
    前記分散システムにおける複数のサーバの内の1以上のサーバによって受信されるユーザリクエストをサンプリングすることは、
    前記分散システムにおける前記複数のサーバによって受信される前記ユーザリクエストのランダムサンプリングを、1〜5%の比率に基づいて行うことを含む、方法。
  3. 請求項1に記載の方法であって、
    前記複数のサーバの内の1以上のサーバによって受信された前記ユーザリクエストに対応する識別子を生成することは、
    前記複数の受信サーバの内の1以上のサーバによって受信された前記ユーザリクエストについて、ユーザリクエスト送信時間及びリクエスト受信サーバのマーカに基づいて、一意に対応する識別子を生成することを含む、方法。
  4. 請求項1に記載の方法であって、
    前記ユーザリクエストがスレッドを呼び出す場合に、前記識別子が現スレッドへ変数として送信されることは、
    同じプロセスにおける別のユーザリクエストが異なるスレッドを呼び出す場合は、前記識別子は前記スレッド変数内に保持され、
    前記プロセスがサブプロセスを作成した場合は、前記識別子は前記サブプロセスへ送信され、
    前記ユーザリクエストが複数のプロセスに跨っており、異なるスレッドを呼び出すときは、前記識別子は通信プロトコルを通じて全てのプロセスへ送信されること、
    を備える、方法。
  5. 請求項1に記載の方法であって、
    前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成することは、
    前記識別子、前記呼び出された関数の名前及び場所、前記関数が呼び出されたときの時刻、呼び出しの時点で生成されたエラー情報、又はこれらの任意の組み合わせを前記ログへ出力することを含む、方法。
  6. 請求項1に記載の方法であって、
    前記作成されたログを、前記対応する識別子に従って個々に収集することとは、
    受信されたログを、識別子の違いに従って個々に分類し、
    同じ識別子を有するログを、プロセスの違いに従って個々に分類し、
    同じ識別子及び同じプロセスを有するログを、関数に従って、並びに開始時刻及び終了時刻の呼び出しに従って、個々に合体させ、
    同じ識別子を有する、プロセスに跨がるログを、時系列に従って組み合わせること、
    を含む、方法。
  7. 請求項1に記載の方法であって、更に、
    前記作成されたログを個々に収集した後に、前記収集されたログを解析し、解析結果を出力することを備える方法。
  8. 請求項7に記載の方法であって、
    前記収集されたログを解析することは、
    同じ呼び出しフォームを有するユーザリクエストに対し、経路が異なる解析を実施し、
    前記分散システムにおけるユーザリクエスト実行経路及びモジュールにおける実行時間を解析し、
    前記分散システムにおいて前記モジュールにおける頻度解析を呼び出すこと、
    又はこれらの任意の組み合わせ
    を備える、方法。
  9. 分散システムにおいてユーザリクエストの実行を監視するためのシステムであって、
    少なくとも1つのプロセッサであって、
    分散システムにおける複数のサーバの内の1以上のサーバによって受信されるユーザリクエストをサンプリングし、
    前記複数のサーバの内の1以上のサーバによって受信された前記ユーザリクエストに対応する識別子を生成し、前記識別子は、前記ユーザリクエストによって呼び出された現スレッドへ変数として送信され、
    前記分散システムにおける前記複数のサーバの内の1以上のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトし、
    プロセスが前記ユーザリクエストに対応する前記識別子を含むか否かを判定し、
    前記現プロセスが追跡インターフェースを実行した際、前記現プロセスが前記ユーザリクエストに対応する前記識別子を含む場合に、前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成し、
    前記作成されたログを、前記対応する識別子に従って個々に収集するように構成されている少なくとも1つのプロセッサと、 前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するように構成されているメモリと、
    を備える、システム。
  10. 請求項9に記載のシステムであって、
    前記少なくとも1つのプロセッサは、更に、
    前記作成されたログを収集した後に、
    同じ呼び出しフォームを有するユーザリクエストに対し、経路が異なる解析を実施し、
    前記分散システムにおけるユーザリクエスト実行経路及びモジュールにおける実行時間を解析し、
    前記分散システムにおいて前記モジュールにおける頻度解析を呼び出すように、又は
    これらの任意の組み合わせを行うように、
    構成されている、システム。
  11. 分散システムにおいてユーザリクエストの実行を監視するためのコンピュータプログラムであって、
    分散システムにおける複数のサーバの内の1以上のサーバによって受信されるユーザリクエストをサンプリングするための機能と、
    前記複数のサーバの内の1以上のサーバによって受信された前記ユーザリクエストに対応する識別子を生成するための機能と、前記識別子は、前記ユーザリクエストによって呼び出された現スレッドへ変数として送信され、
    前記分散システムにおける前記複数のサーバの内の1以上のサーバによって実行されるプロセスに、事前に追跡インターフェースをインジェクトするための機能と、
    プロセスが前記ユーザリクエストに対応する前記識別子を含むか否かを判定するための機能と、
    前記現プロセスが追跡インターフェースを実行した際、前記現プロセスが前記ユーザリクエストに対応する前記識別子を含む場合に、前記追跡インターフェースによって示された関数に関係する前記識別子に対応する情報を記録し、ログを作成するための機能と、
    前記作成されたログを、前記対応する識別子に従って個々に収集するための機能と、
    をコンピュータによって実現させるコンピュータプログラム。
JP2015532018A 2012-09-14 2013-09-11 分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム Active JP5978401B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201210342909.6A CN103684898B (zh) 2012-09-14 2012-09-14 一种监测用户请求在分布式***中运行的方法及装置
CN201210342909.6 2012-09-14
US14/023,014 2013-09-10
US14/023,014 US9485317B2 (en) 2012-09-14 2013-09-10 Method and system for monitoring execution of user request in distributed system
PCT/US2013/059229 WO2014043211A1 (en) 2012-09-14 2013-09-11 Method and system for monitoring execution of user request in distributed system

Publications (2)

Publication Number Publication Date
JP2015528612A JP2015528612A (ja) 2015-09-28
JP5978401B2 true JP5978401B2 (ja) 2016-08-24

Family

ID=50275660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015532018A Active JP5978401B2 (ja) 2012-09-14 2013-09-11 分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム

Country Status (6)

Country Link
US (1) US9485317B2 (ja)
EP (1) EP2895956B1 (ja)
JP (1) JP5978401B2 (ja)
CN (1) CN103684898B (ja)
TW (1) TWI564732B (ja)
WO (1) WO2014043211A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683181B (zh) * 2015-02-12 2019-02-15 北京蓝海讯通科技有限公司 一种性能监控方法、设备和***
CN105183621A (zh) * 2015-08-17 2015-12-23 浪潮(北京)电子信息产业有限公司 一种基于多线程的日志管理方法及***
CN105207806A (zh) * 2015-08-20 2015-12-30 百度在线网络技术(北京)有限公司 分布式服务的监控方法及装置
CN105227395B (zh) * 2015-08-28 2018-09-28 北京奇艺世纪科技有限公司 一种分布式jvm性能分析的方法、装置及***
CN105512027B (zh) * 2015-11-26 2018-10-30 珠海多玩信息技术有限公司 进程状态监控方法和装置
CN105808414A (zh) * 2016-03-08 2016-07-27 联想(北京)有限公司 一种日志处理方法及日志处理电子设备
CN107273276A (zh) * 2016-04-06 2017-10-20 中兴通讯股份有限公司 一种基于虚拟化的全流程跟踪方法及装置
CN108228432A (zh) * 2016-12-12 2018-06-29 阿里巴巴集团控股有限公司 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN108228322B (zh) * 2016-12-12 2022-03-25 阿里巴巴集团控股有限公司 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN107592230B (zh) * 2017-09-22 2023-02-21 北京奇艺世纪科技有限公司 一种跟踪信息获取方法及装置
CN107872353A (zh) * 2017-12-27 2018-04-03 北京奇艺世纪科技有限公司 一种故障定位方法及装置
CN108319536B (zh) * 2017-12-29 2021-11-23 北京五八信息技术有限公司 一种日志设置方法、装置、设备及计算机可读存储介质
CN108459939B (zh) * 2018-01-08 2020-06-23 平安科技(深圳)有限公司 一种日志收集方法、装置、终端设备及存储介质
CN108694061A (zh) * 2018-05-11 2018-10-23 深圳壹账通智能科技有限公司 一种数据库的调用方法、装置及计算机可读存储介质
CN108958850A (zh) * 2018-06-29 2018-12-07 郑州云海信息技术有限公司 一种日志优化方法、装置、设备及计算机可读存储介质
CN109039817B (zh) * 2018-08-03 2020-09-01 京东数字科技控股有限公司 一种用于流量监控的信息处理方法、装置、设备及介质
US11556120B2 (en) 2018-10-29 2023-01-17 Honeywell International Inc. Systems and methods for monitoring performance of a building management system via log streams
CN109474698A (zh) * 2018-12-14 2019-03-15 平安城市建设科技(深圳)有限公司 访问请求标记方法、装置、设备及存储介质
CN111385122B (zh) * 2018-12-29 2023-06-16 广州市百果园信息技术有限公司 分布式***链路跟踪方法、装置、计算机设备及存储介质
CN111625431B (zh) * 2019-02-28 2022-04-22 华为技术有限公司 一种日志信息生成方法、装置及电子设备
CN112115012A (zh) * 2019-06-19 2020-12-22 中兴通讯股份有限公司 分布式数据库的事务监控方法及装置、***、存储介质
CN110413496B (zh) * 2019-07-29 2022-08-19 福建南威软件有限公司 一种实现电子证照运行数据组件化收集的方法
CN111459766B (zh) * 2019-11-14 2024-01-12 国网浙江省电力有限公司信息通信分公司 一种面向微服务***的调用链跟踪与分析方法
CN111274091B (zh) * 2020-01-17 2024-01-09 北京达佳互联信息技术有限公司 日志的处理方法、装置、计算机设备和存储介质
CN113760640A (zh) * 2020-11-13 2021-12-07 北京沃东天骏信息技术有限公司 监控日志处理方法、装置、设备及存储介质
CN112463561B (zh) * 2020-11-20 2024-06-18 中国建设银行股份有限公司 一种故障定位方法、装置、设备及存储介质
CN113656247A (zh) * 2021-08-16 2021-11-16 北京奇艺世纪科技有限公司 一种服务监控方法、装置、电子设备及可读存储介质
CN114115746A (zh) * 2021-12-02 2022-03-01 北京乐讯科技有限公司 一种用户态存储***的全链路追踪装置
CN115589307A (zh) * 2022-09-07 2023-01-10 支付宝(杭州)信息技术有限公司 分布式***的风险监测方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191440B2 (en) 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7185085B2 (en) 2002-02-27 2007-02-27 Webtrends, Inc. On-line web traffic sampling
US7401141B2 (en) * 2003-01-07 2008-07-15 International Business Machines Corporation Method and system for monitoring performance of distributed applications
JP4300808B2 (ja) * 2003-01-24 2009-07-22 株式会社日立製作所 統合ログ表示方法及びシステム
US7093073B2 (en) * 2003-06-26 2006-08-15 International Business Machines Corporation Systems and methods for adjusting caching policies for web service requests
US7606814B2 (en) * 2004-03-11 2009-10-20 Microsoft Corporation Tracing a web request through a web server
US7716335B2 (en) 2005-06-27 2010-05-11 Oracle America, Inc. System and method for automated workload characterization of an application server
JP4867864B2 (ja) 2007-09-05 2012-02-01 富士電機株式会社 性能データ収集・表示システム、性能データ表示装置、そのプログラム
US8321840B2 (en) 2007-12-27 2012-11-27 Intel Corporation Software flow tracking using multiple threads
US8554623B2 (en) * 2008-03-03 2013-10-08 Yahoo! Inc. Method and apparatus for social network marketing with consumer referral
CN101778105B (zh) * 2010-01-20 2013-04-17 杭州华三通信技术有限公司 获取基于web的实时性能监视指标数的方法、***及设备
JP4778092B2 (ja) 2010-01-25 2011-09-21 富士通株式会社 トレース処理方法、プログラム及び装置
US8631356B2 (en) * 2010-07-22 2014-01-14 Yahoo! Inc. Presentation of advertisements based on user interactivity with a web page
KR101892273B1 (ko) 2011-10-12 2018-08-28 삼성전자주식회사 스레드 프로그레스 트래킹 방법 및 장치

Also Published As

Publication number Publication date
US20140082184A1 (en) 2014-03-20
WO2014043211A1 (en) 2014-03-20
EP2895956A1 (en) 2015-07-22
JP2015528612A (ja) 2015-09-28
EP2895956B1 (en) 2024-02-07
US9485317B2 (en) 2016-11-01
CN103684898A (zh) 2014-03-26
TWI564732B (zh) 2017-01-01
TW201411367A (zh) 2014-03-16
CN103684898B (zh) 2017-06-23

Similar Documents

Publication Publication Date Title
JP5978401B2 (ja) 分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム
US9785532B2 (en) Performance regression manager for large scale systems
US7747986B2 (en) Generating static performance modeling factors in a deployed system
US20070277155A1 (en) Evaluating performance of software application
US8326971B2 (en) Method for using dynamically scheduled synthetic transactions to monitor performance and availability of E-business systems
Dean et al. Perfcompass: Online performance anomaly fault localization and inference in infrastructure-as-a-service clouds
US20070203973A1 (en) Fuzzing Requests And Responses Using A Proxy
US9355003B2 (en) Capturing trace information using annotated trace output
US20080276129A1 (en) Software tracing
JP6363152B2 (ja) データフロー分析のための装置、方法、コンピュータプログラム及び記憶媒体
US10360140B2 (en) Production sampling for determining code coverage
US20100180158A1 (en) Managing Statistical Profile Data
CN111563014A (zh) 接口服务性能测试方法、装置、设备和存储介质
CN108255716A (zh) 一种基于云计算技术的软件测评方法
Amaral et al. Microlens: A performance analysis framework for microservices using hidden metrics with bpf
Zhang et al. CLUE: System trace analytics for cloud service performance diagnosis
Qi et al. Data mining based root-cause analysis of performance bottleneck for big data workload
Altekar et al. Focus replay debugging effort on the control plane
US10481993B1 (en) Dynamic diagnostic data generation
Smith et al. Slicing event traces of large software systems
Muralidharan et al. Trident: an automated system tool for collecting and analyzing performance counters
Šor et al. Automated statistical approach for memory leak detection: Case studies
Vögler et al. Non-intrusive monitoring of stream processing applications
US9317262B2 (en) Identification of code synchronization points
Rhee et al. Software system performance debugging with kernel events feature guidance

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150512

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160506

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: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160725

R150 Certificate of patent or registration of utility model

Ref document number: 5978401

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250