JRun には、メトリック サービスが用意されています。メトリック サービスを使用すると、JWS または JCP サービス、メモリの使用状況、スレッド、セッション、およびその他のデータに関する情報を効率よく柔軟に収集できます。メトリック サービスを使用して収集できる情報の種類を把握したら、メトリック サービスをログ サービスに組み込むことによって、独自のレポートを生成できます。
このセクションでは、メトリック サービスの概要を述べ、一部のサンプルの使用例を記載します。詳細は、『JRun によるアプリケーションの開発』を参照してください。
[ログ ファイルの設定] パネルが表示されます。
[ログ ファイルの設定] 編集ウィンドウが表示されます。
Logging
Level
] フィールドで、[Metrics] チェックボックスをオンにします。これにより、この JRun サーバの local.properties ファイル内の logging.loglevel
プロパティにメトリックが追加されます。
logging.loglevel=info,warning,error,metrics
メトリック サービスをすべてのサーバが使用できるように、メトリックを global.properties ファイルに手作業で追加できます。
10/02 12:48:04 metrics (JRun) (jcp+web) Heap=4263KB Listen=2 Idle=0 Queued=0 Busy=0 Total=2 Requests (count/total ms)=3/594 Delayed=0 TotalDelay=0 BytesIn=778 BytesOut=539 Sessions (active/in memory)=0/0
既定では、メトリック ログ エントリは、JRun サーバの <server>-event.log ファイル 内に表示されます。すべての情報は同じ行に表示されます。独自のログ ファイルの 作成方法については、『JRun によるアプリケーションの開発』を参照してください。
既定のメトリック ログ メッセージには、JRun Web サーバ (web
サービス) とサードパーティ Web サーバへの接続 (jcp
サービス) の両方のメトリックが含まれています。ほかの JRun ログ メッセージと同様に、使用可能なメトリック変数を追加または削除することによって、メトリックの形式を制御できます。使用可能なメトリック変数についての説明は、"ログ形式について"に記載されています。
メトリック サービスは複数のメトリック変数を使用します。メトリック変数には、JVM および JRun サーバ専用のものと、JRun Web サーバ (JWS) または外部 Web サーバ接続専用のものがあります。次のセクションでは、これらの変数について説明します。
monitor.format
プロパティは、メトリック サービスのログ メッセージの形式を指定します。このプロパティは、あらかじめ定義された形式に指定するか、または独自の形式を作成できます。次に例を示します。
monitor.format={monitor.jcp-format}
JRun には次のあらかじめ定義された形式が含まれています。
monitor.web-format
monitor.jcp-format monitor.combined-format
これらの形式の構成を調べるには、global.properties ファイルを参照してください。たとえば、既定の jcp-format
は、このプロパティ ファイルでは、次のメッセージから構成されています。
monitor.jcp-format=(jcp) Heap={totalMemory}KB Listen={jcp.listenTh} Idle={jcp.idleTh} Queued={jcp.delayTh} Busy={jcp.busyTh} Total={jcp.totalTh} Requests (count/total ms)={jcp.handledRq}/ {jcp.handledMs} Delayed={jcp.delayRq} TotalDelay={jcp.delayMs} BytesIn={jcp.bytesIn} BytesOut={jcp.bytesOut} Sessions (active/ in memory)={sessions}/{sessionsInMem}
JRun は、ログ メッセージを生成するときにすべての変数値をリセットします。したがって、ログ内の各ログ メッセージ内には、直前の時間間隔において発生したイベントを蓄積できます。
カスタム レポートでは、monitor.interval
プロパティが非常に重要です。このプロパティを秒単位で設定することによって、分、時、日、またはどのような間隔でも統計を追跡できます。これは、課金モデルのサポートに役立ちます。このセクションで取り上げられているサンプル データは 10 秒間隔で追跡されています。
たとえば、JVM 空きメモリ容量、処理する要求の数、JRun Web サーバのクライアントに書き戻される総バイト数のみを追跡する場合は、monitor.format
プロパティは次のように設定してください。
monitor.format=Free={freeMemory}KB Requests={web.handledRq} Out={web.bytesOut}
ログ ファイル内のメトリック ログ メッセージは次のように表示されます。
10/02 13:16:11 metrics (JRun) Free=4271KB Requests=9 Out=1613
jcp.
(外部 Web サーバの場合) またはweb.
(JWS の場合)を付けます。{{totalMemory} - {freeMemory}}
は、2 つのメトリック間の差を返します。次の 2 つのセクションでは、メトリック サービスが利用できる変数について説明します。
JRun には、JVM および JRun サーバ固有のメトリック変数がいくつか用意されています。これらの変数をモニタ形式に追加すると、JVM または JRun サーバに関する特殊情報を記録できます。次の表でこれらのメトリックを説明します。
変数 |
説明 |
---|---|
freeMemory |
JVM ヒープ内の空きメモリのキロバイト数 |
totalMemory |
JVM ヒープの総キロバイト数 (空きメモリおよび使用メモリ) |
sessions |
アクティブ セッションの現在の数 |
sessionsInMem |
メモリ内のアクティブ セッションの現在の数。セッションの永続性は、JRun の構成により、セッション レポジトリまで維持できます。 |
また JRun には、JRun Web サーバ (JWS) および外部 Web サーバに関する特殊情報を反映するメトリックも用意されています。これらの変数をモニタ形式に追加すると、JWS または JRun サーバの外部 Web サーバへの接続に関する特殊情報を記録できます。
これらの変数の前には jcp.
(外部 Web ブラウザの場合) または web.
(JWS の場合)を付ける必要があります。次に例を示します。
{web.bytesIn}
{jcp.bytesIn}
JRun のメトリック ログ メカニズムを使用すると、データを出力して、パフォーマンス解析またはトラフィック レポートなどのさまざまな種類のデータを生成できます。
このセクションでは、JRun ログ情報を使用して生成できる、簡単なカスタム レポートについて説明します。
メトリック データの一般的な用途は、スプレッドシート アプリケーションに直接インポートできる CSV (Comma Separated Value) ファイルの出力です。CSV 出力を生成するには、メトリック変数および定数間にカンマが挿入されるようにモニタ形式を変更します。次の例のように、必ずカンマで開始して日付/時刻を区切ります。
monitor.jcp-format= ,{jcp.bytesIn},{jcp.bytesOut},{totalMemory}, {freeMemory},{{totalMemory}-{freeMemory}}
この例では、次のような JRun サーバのログ ファイルが作成されます。
11/01 13:34:51 metrics (JRun) ,0,0,3191,944,2247 11/01 13:35:01 metrics (JRun) ,0,0,3191,1239,1952 11/01 13:35:11 metrics (JRun) ,0,0,3191,1180,2011
モニタ形式変更後に JRun サーバを再起動して変更を有効にする必要があります。
次のセクションでは一般的なモニタ形式について説明します。また、データを例示するサンプル グラフも記載します。
JRun サーバの JVM ヒープ統計は、totalMemory
および freeMemory
メトリックを使用することによって記録できます。仮に monitor.format
プロパティ が jcp-format
を参照する場合は、次の行を JRun サーバの local.properties ファイルに追加します。
monitor.jcp-format=,{totalMemory},{{totalMemory}-{freeMemory}}
このサンプルには、日付/時刻の列のほかに次の 2 つの列があります。
totalMemory
: JVM ヒープの総キロバイト数 (空きメモリおよび使用メモリ) を表します。
freeMemory
: JVM ヒープ内の空きメモリのキロバイト数を表します。10/27 15:29:55 metrics (JRun) ,3191,2518 10/27 15:30:05 metrics (JRun) ,3267,2811 10/27 15:30:15 metrics (JRun) ,4291,2866 10/27 15:30:25 metrics (JRun) ,4291,2912
次のサンプル グラフは、使用メモリが一定の場合に、ヒープ サイズが増加していることを示します。
転送量の追跡は、非常に重要なレポート要素です。トラフィック量の周囲に収益モデルを設計したり、JRun サーバの使用量のレポートをベースにトラフィックを制限できます。仮に monitor.format
プロパティが jcp-format
を参照する場合は、次の行を JRun サーバの local.properties ファイルに追加します。
monitor.jcp-format=,{jcp.bytesIn},{jcp.bytesOut}
このサンプルには、日付/時刻の列のほかに次の 2 つの列があります。
bytesIn
: すべての要求から読み出されたバイトの数
bytesOut
: すべての応答のために書き込まれたバイトの数10/27 16:41:46 metrics (JRun) ,1925,12596 10/27 16:41:56 metrics (JRun) ,5320,25503 10/27 16:42:06 metrics (JRun) ,0,0 10/27 16:42:16 metrics (JRun) ,20841,179626 10/27 16:42:26 metrics (JRun) ,1491,4017 10/27 16:42:36 metrics (JRun) ,14580,23002 10/27 16:42:46 metrics (JRun) ,13113,74097 10/27 16:42:56 metrics (JRun) ,26674,29309 10/27 16:43:06 metrics (JRun) ,115106,107670 10/27 16:43:16 metrics (JRun) ,14529,64132
次のサンプル グラフは、一般的にトラフィックが増大傾向にある場合の負荷量の急激な増加をバイト単位で示します。
もう 1 つのトラフィック解析方法は要求を利用したものです。この場合、JCP 要求を追跡する際に、Web サーバと JRun サーバ間の通信をチェックします。仮に monitor.format
プロパティが jcp-format
を参照する場合は、次の行を JRun サーバの local.properties ファイルに追加します。
monitor.jcp-format=,{jcp.handledRq},{jcp.handledMs},{jcp.bytesOut}
このサンプルには、日付/時刻の列のほかに次の 3 つの列があります。
handledRq
: 処理された要求の数
handledMs
: 要求の処理に要したミリ秒数bytesOut
: すべての応答のために書き込まれたバイトの数10/27 16:38:08 metrics (JRun) ,4,110,13440 10/27 16:38:18 metrics (JRun) ,14,241,52907 10/27 16:38:28 metrics (JRun) ,6,190,23828 10/27 16:38:38 metrics (JRun) ,31,401,143053 10/27 16:38:48 metrics (JRun) ,58,560,302296
次のサンプル グラフは、この要求について、各要求の平均キロバイト数が一定であることを示します。要求を処理する MS の平均数は実際には、要求数が増えるにつれて小さくなります。
このセクションで説明してきたレポートのほかに、次の JRun メトリック変数にも留意してください。これらの変数を使用すると、カスタム レポートを生成したり、Netcool や BMC Software の PATROL などの NOC に対して、カスタム データを提供できます。
delayTh
delayRq
droppedRq
delayMS
busyTh
たとえば、droppedRq
(破棄された要求) をログに含め、monitor.interval
を 60 に設定します。PATROL ナレッジ モジュール エージェントにカスタム ログ ファイルを解析させ、droppedRq
をチェックさせます。エージェントのルールの一環として、1 分間に破棄された要求の数が 5 を超えたかどうかをチェックします (エラーに備えて少し余裕を残しておきます)。JRun サーバが要求の破棄を開始すると、NOC によってユーザに通知されます。