システムの性能を測定したい

システムの性能を測定する場合、まず大きく

の2つが考えられます。

性能統計は、各処理時間をサマリーした情報で、おおよその性能指標を調べるのに有用です。
性能スタンプは、各処理時間そのもので、詳細な性能を調べるのに有用です。

性能統計情報の取得

Nimbusでは、以下のような様々な性能統計情報が取得できます。

サーブレットへのリクエストの性能統計の取得

サーブレットへのリクエストの性能統計の取得は、サーブレットフィルタ層で取得します。
Nimbusでは、サーブレットフィルタ層にInterceptorChainCallFilterというサーブレットフィルタを挟み込む事で、Interceptorと呼ばれる機能チェインを組み込み、サーブレットへのリクエストに対して、様々な処理を付与する事ができます。
そのInterceptorの実装の1つに、HttpServletRequestMetricsInterceptorServiceというサービスがあり、サーブレットへのリクエストの性能統計を取得できます。
取得した、性能統計は、JMXで取得したり、出力カテゴリに出力する事ができます。

業務フローの性能統計の取得

業務フローサービスに、InterceptorChainFactoryインジェクションする事で、Interceptorと呼ばれる機能チェインを組み込み、業務フローの呼び出しに対して、様々な処理を付与する事ができます。
そのInterceptorの実装の1つに、BeanFlowMetricsInterceptorServiceというサービスがあり、業務フローの性能統計を取得できます。
取得した、性能統計は、JMXで取得したり、出力カテゴリに出力する事ができます。

SQLの性能統計の取得

Nimbusでは、JDBCの接続を取得するConnectionFactoryサービスがあります。
そのConnectionFactoryの実装の1つにWrappedConnectionFactoryServiceというサービスがあり、JDBCの接続をラッパークラスでラップする事で、JDBC実装に機能を付与する事ができます。
そのサービスを使って、JDBCのラッパークラスjp.ossc.nimbus.util.sql.WrappedConnectionでJDBCの接続をラップして、SQLの性能統計を取得するSQLMetricsCollectorServiceをインジェクションする事で、SQLの性能統計を取得できます。
取得した、性能統計は、JMXで取得したり、出力カテゴリに出力する事ができます。

任意のメソッド呼び出しの性能統計の取得

Nimbusでは、アスペクト指向を使う事で、任意のメソッド呼び出しに対して、Interceptorと呼ばれる機能チェインを組み込み、様々な処理を付与する事ができます。
そのInterceptorの実装の1つに、MethodMetricsInterceptorServiceというサービスがあり、メソッド呼び出しの性能統計を取得できます。
取得した、性能統計は、JMXで取得したり、出力カテゴリに出力する事ができます。

性能スタンプの取得

Nimbusでは、ジャーナルサービスを使う事で、様々な処理の処理情報と共に性能スタンプを取得する事ができます。

サーブレットへのリクエストの性能スタンプの取得

サーブレットへのリクエストの性能スタンプの取得は、サーブレットフィルタ層で取得します。
Nimbusでは、サーブレットフィルタ層にInterceptorChainCallFilterというサーブレットフィルタを挟み込む事で、Interceptorと呼ばれる機能チェインを組み込み、サーブレットへのリクエストに対して、様々な処理を付与する事ができます。
そのInterceptorの実装の1つに、AccessJournalInterceptorServiceというサービスがあり、サーブレットへのリクエストのジャーナルを取得できます。
取得した、ジャーナルは、出力カテゴリに出力する事ができます。

業務フローの性能スタンプの取得

業務フローサービスに、Journalサービスをインジェクションする事で、業務フローのジャーナルを取得できます。
取得した、ジャーナルは、出力カテゴリに出力する事ができます。

SQLの性能スタンプの取得

Nimbusでは、JDBCの接続を取得するConnectionFactoryサービスがあります。
そのConnectionFactoryの実装の1つにWrappedConnectionFactoryServiceというサービスがあり、JDBCの接続をラッパークラスでラップする事で、JDBC実装に機能を付与する事ができます。
そのサービスを使って、JDBCのラッパークラスjp.ossc.nimbus.util.sql.WrappedConnectionでJDBCの接続をラップして、Journalサービスをインジェクションする事で、SQLのジャーナル(実行したSQLやその処理時間など)を取得できます。
取得した、ジャーナルは、出力カテゴリに出力する事ができます。

HTTP通信の性能スタンプの取得

HTTP通信を行うHttpClientFactoryサービスに、Journalサービスをインジェクションする事で、HTTP通信のジャーナル(リクエストURL、パラメータ、レスポンスステータス、処理時間など)を取得できます。
取得した、ジャーナルは、出力カテゴリに出力する事ができます。

任意のメソッド呼び出しの性能スタンプの取得

Nimbusでは、アスペクト指向を使う事で、任意のメソッド呼び出しに対して、Interceptorと呼ばれる機能チェインを組み込み、様々な処理を付与する事ができます。
そのInterceptorの実装の1つに、MethodJournalInterceptorServiceというサービスがあり、メソッド呼び出しのジャーナルを取得できます。
取得した、ジャーナルは、出力カテゴリに出力する事ができます。


FAQ