Interceptor実装サービス jp.ossc.nimbus.service.aop.interceptor.MethodMetricsInterceptorService

jp.ossc.nimbus.service.aop.interceptor.MethodMetricsInterceptorServiceは、メソッドの呼び出しの処理時間統計を取得するInterceptor実装サービスです。

取得した処理時間統計は、JMX経由で取得するか、出力/Categoryサービスで出力する事ができます。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.writer.Category処理時間統計を出力するサービス。
jp.ossc.nimbus.service.performance.PerformanceRecorder処理時間を記録するサービス。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- メソッドの呼び出しの処理時間統計を取得するInterceptorサービス -->
  8. <service name="MethodMetricsInterceptor"
  9. code="jp.ossc.nimbus.service.aop.interceptor.MethodMetricsInterceptorService"/>
  10. </manager>
  11. </server>

以下に定期的に標準出力に処理時間統計を出力するサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- メソッドの呼び出しの処理時間統計を取得するInterceptorサービス -->
  8. <service name="MethodMetricsInterceptor"
  9. code="jp.ossc.nimbus.service.aop.interceptor.MethodMetricsInterceptorService">
  10. <!-- 出力する間隔[ms]を設定する -->
  11. <attribute name="OutputInterval">10000</attribute>
  12. <!-- 出力先のCategoryサービスのサービス名を設定する -->
  13. <attribute name="CategoryServiceName">#Category</attribute>
  14. <depends>Category</depends>
  15. </service>
  16. <!-- 任意のオブジェクトをフォーマットして出力するCategoryサービス -->
  17. <service name="Category"
  18. code="jp.ossc.nimbus.service.writer.SimpleCategoryService">
  19. <attribute name="WritableRecordFactoryServiceName">#WritableRecordFactory</attribute>
  20. <attribute name="MessageWriterServiceName">#Writer</attribute>
  21. <depends>WritableRecordFactory</depends>
  22. <depends>Writer</depends>
  23. </service>
  24. <!-- 出力情報をフォーマットするWritableRecordFactoryサービス -->
  25. <service name="WritableRecordFactory"
  26. code="jp.ossc.nimbus.service.writer.WritableRecordFactoryService">
  27. <attribute name="Format">""%Order%","%Method%","%Count%","%BestPerformance%","%WorstPerformance%","%AveragePerformance%""</attribute>
  28. </service>
  29. <!-- コンソールに出力するMessageWriterサービス -->
  30. <service name="Writer"
  31. code="jp.ossc.nimbus.service.writer.ConsoleWriterService"/>
  32. </manager>
  33. </server>


アスペクト指向/Interceptor