Struts 2 モニタリング

Apache Struts 2 は、Java EE Web アプリケーションを開発するためのオープン ソースの Web アプリケーション フレームワークです。 開発者によるモデル ビュー コントローラ(MVC)アーキテクチャの採用を促進するため、Java サーブレット API を使用し、それを拡張しています。 CA APM Struts 2 モニタリングの拡張機能は、Struts 2 アプリケーションをインスツルメントし、Struts|Struts2|Apps|{appName}|action|{action} の下の Struts 2 アクションに関するメトリックをレポートします。
apmdevops106
Apache Struts 2 は、Java EE Web アプリケーションを開発するためのオープン ソースの Web アプリケーション フレームワークです。 開発者によるモデル ビュー コントローラ(MVC)アーキテクチャの採用を促進するため、Java サーブレット API を使用し、それを拡張しています。 CA APM Struts 2 モニタリングの拡張機能は、Struts 2 アプリケーションをインスツルメントし、以下の下の Struts 2 アクションに関するメトリックをレポートします。
Struts|Struts2|Apps|{appName}|action|{action}
Struts 2 モニタリングの拡張機能は、CA Application Performance Management に以下の 2 つのアーティファクトという形で付属しています。
  • Struts2Monitoring.jar
    この機能のためのトレーサ、名前フォーマッタ、およびクランプ プロパティ設定クラスで構成されています。
  • struts.pbd
    トレーサ マッピングのための ProbeBuilder ディレクティブで構成されています。 これは既存のアーティファクトであり、以前は Struts1 用の ProbeBuilder ディレクティブで構成されていました。
マップ ビューでは、Struts 2 アプリケーションは、専用の Struts 2 ノードで表示されています。 ノードでは、フロントエンドのコンポーネントをバックエンドのコンポーネントにリンクさせると、グラフによるさらなる可視レイヤが表示されます。 各 Struts 2 ノードには、
Struts2ActionName
という属性があります。これを使用すると、アプリケーションの Struts 2 コンポーネントのカスタム フィルタリングやパースペクティブをビュー内に生成できます。
wikiDoc_ATC2.png
Struts 2 モニタリングのメトリック
Struts 2 アプリケーションがあると、それに対して以下の BlamePoint メトリックがレポートされます。
  • Average Response Time (ms)
    直前の間隔中の、このノード下のすべてのオペレーションの加重平均応答時間(ミリ秒)
  • Concurrent Invocations
    直前の間隔中に完了した、このノード下のすべてのオペレーションの要求の合計数
  • Errors Per Interval
    直前の間隔中に発生した、このノード下のすべてのオペレーションのエラーの合計数
  • Responses Per Interval
    直前の間隔中の、このノード下のすべてのオペレーションの間隔ごとの応答の合計。
  • Stall Count
    直前の間隔中に、このノード下のすべてのオペレーションに関してストールしたトランザクションの合計数。
Struts 2 メトリック クランプ
大量の Struts 2 アクションがトリガされたためにメトリックが急増することを防止するため、特定のアプリケーションのメトリックに生成されるアクションの総数にクランプが設けられています。 デフォルト値は 20 です。 クランプに達すると、すべての新しいアクションはデフォルト ノード下にレポートされるようになります。
: クランプ サイズを特定の値に設定した後で減らすと、それ以前のクランプに達していないアクションは、引き続きそれぞれのアクション名でレポートされます。 デフォルト ノード下には、新しいアクションのみが表示されます。
プロパティは、
IntroscopeAgent.profile
ファイルで以下のように定義されています。
#introscope.agent.struts2.action.clamp=20
このプロパティは、デフォルトではコメント化されています。 このプロパティはホットです。つまり、変更を有効にするためにエージェントを再起動する必要はありません。