JRun では、JRun サーバーと Web サーバーの接続に関するステータス情報が、JRun ログ ファイルに書き込まれます。このステータス情報は JRun サーバーとサードパーティ製 Web サーバーまたは JRun Web サーバー (JWS) の接続から取得できます。
次の図は、サードパーティ製 Web サーバーと JWS の両方に接続されている default JRun サーバーを表しています。
接続ステータス情報が収集されるように JRun を設定するには、JRun サーバーの local.properties
ファイルにあるプロパティ logging.loglevel
に指定されたロギング レベルの一覧にキーワード metrics
を入れます。JRun のロギング メカニズムの詳細については、第 38 章を参照してください。
たとえば、接続ステータス情報を有効にするには、次のプロパティを使用します。
logging.loglevel=info,warning,error,metrics
次のいずれか、またはすべての接続情報をログ ファイルに書き出すことができます。
listenTh
新しい接続を受信するスレッド
idleTh
新しい要求を待っているスレッドdelayTh
実行を待っているスレッドbusyTh
現在実行しているスレッドtotalTh
ワーカー スレッドの総数delayRq
同時発生が多発していることにより遅延した要求droppedRq
却下された要求handledRq
処理された要求handledMS
遅延時間 (delayMs)
を除く、要求のサービスに費やされた時間をミリ秒単位で表したものdelayMs
遅延状態で経過した時間をミリ秒単位で表したものbytesIn
要求から読み込まれたバイト数bytesOut
応答に書き込まれたバイト数freeMemory
ヒープ内の空きメモリ量をキロバイト単位で表したものtotalMemory
使用されているかどうかに関係なく、ヒープ全体のメモリ量をキロバイト単位で表したものsession
現在アクティブなセッション数sessionsInMem
メモリにあるセッション数次に示すのは、接続ステータス情報が記録されたログ メッセージの例です。
03/20 02:57:53 metrics (jcp+web) Heap=3151KB Listen=1 Idle=0 Queued=0
Busy=0 Total=0 Requests (count/total ms)=0/0 Delayed=0 TotalDelay=0 BytesIn=0 BytesOut=0 Sessions (active/in memory)=0/0
監視メカニズムの設定には、プロパティ ファイルを使用します。JRun 管理コンソール (JMC)では制御できません。
監視メカニズムの既定の設定は JRun のインストールに対応するすべての JRun サーバーに対するもので、global.properties
ファイルに保存されています。個々の JRun サーバーの設定を変更する場合は、local.properties
ファイルのそのサーバーの設定を変更します。
global.properties
ファイルでの既定のプロパティ設定は次のとおりです。
monitor.class=allaire.jrun.metrics.MetricsLogger
monitor.interval=60 monitor.format={monitor.combined-format} monitor.max.history=10
これらの設定により、監視メカニズム、監視間隔 (単位は秒)、監視情報の出力形式、監視履歴バッファのサイズを定義するクラスが指定されます。これらの設定では、監視メカニズムにより、60 秒ごとに統計が行われ、最新のものからさかのぼって 10 個の監視サンプルが記録されるように指定されています。
これらのプロパティの詳細については、"プロパティの監視"を参照してください。
global.properties
ファイルには、監視メッセージの形式を表すプロパティ monitor.format が含まれています。既定では、monitor.format は次のように設定されています。
monitor.format={monitor.combined-format}
monitor.combined-format 形式プロパティは、global.properties
ファイルで次のように定義されます。
monitor.combined-format=(jcp+web)
Heap={totalMemory}KB Listen={{jcp.listenTh}+{web.listenTh}} Idle={{jcp.idleTh}+{web.idleTh}} Queued={{jcp.delayTh}+{web.delayTh}} Busy={{jcp.busyTh}+{web.busyTh}} Total={{jcp.totalTh}+{jcp.totalTh}} Requests={{jcp.handledRq}+{web.handledRq}} Delayed={{jcp.delayRq}+{web.delayRq}} TotalDelay={{jcp.delayMs}+{web.delayMs}} BytesIn={{jcp.bytesIn}+{web.bytesIn}} BytesOut={{jcp.bytesOut}+{web.bytesOut}} Sessions (active/in memory)={sessions}/{sessionsInMem}
03/20 02:57:53 metrics (jcp+web) Heap=3151KB Listen=1 Idle=0 Queued=0
Busy=0 Total=0 Requests (count/total ms)=0/0 Delayed=0 TotalDelay=0 BytesIn=0 BytesOut=0 Sessions (active/in memory)=0/0
monitor.<label>=(web | jcp | web+jcp
)
String1={[web.| jcp
.]statistic1} String2={[web.| jcp
.]statistic2} ...
monitor.format プロパティに monitor.label
を指定して、ログ ファイルに書き込まれる監視情報の形式を制御します。
形式定義に対してラベルを指定するとともに、この形式指定が JWS (web
)、サード
パーティ製 Web サーバー (jcp
)、またはこの両方 (web+jcp
) のいずれかから得られ
た管理情報に対する形式を定義しているのかどうかを指定します。
ログ ファイルに書き込まれた監視情報出力に入っている文字列の形式を指定し
ます。メッセージの String= 部分は、変更されることなくそのままログ ファイル
に書き込まれます。JRun により、メッセージの [web.|jcp
.]statistic 部分が
統計値で置き換えられます。この統計情報は、JWS (web
) への JRun 接続、または
サードパーティ製 Web サーバー (jcp
) からの接続から得られたものです。
ログ ファイルに書き出される接続情報に、次のいずれか、またはすべての統計を
入れることができます。これらの統計の多くには、先頭に jcp
または web
が付き
ます。これは、この統計がサードパーティ製 Web サーバーから得られたか (jcp
)、
または JWS から得られたか (web
) を表しています。ただし、一部の統計は JRun
サーバーと関連付けられた JVM に対するもので、接頭辞は付けられません。
freeMemory
ヒープ内の空きメモリ量をキロバイト単位で表したもの
totalMemory
使用されているかどうかに関係なく、ヒープ全体のメモリ量をキロバイト単位で表したものsession
現在アクティブなセッション数sessionsInMem
メモリにあるセッション数web.|jcp
.]busyTh
現在実行しているスレッドweb.|jcp
.]delayTh
実行待ちスレッドweb.|jcp
.]idleTh
新しい要求を待っているスレッドweb.|jcp
.]listenTh
新しい接続を受信するスレッドの数web.|jcp
.]totalTh
ワーカー スレッドの総数web.|jcp
.]delayRq
同時発生が多発していることにより遅延した要求の数web.|jcp
.]droppedRq
却下された要求web.|jcp
.]handledRq
処理された要求web.|jcp
.]handledMS
遅延時間 (delayMs)
を除く、要求のサービスに費やされた時間をミリ秒単位で表したものweb.|jcp
.]delayMs
遅延状態で経過した時間をミリ秒単位で表したものweb.|jcp
.]bytesIn
要求から読み込まれたバイト数web.|jcp
.]bytesOut
応答に書き込まれたバイト数monitor.combined-format=(jcp+web)
Heap={totalMemory}KB Total={{jcp.totalTh}+{web.totalTh}}
この定義は、このメッセージ形式が、JWS とサードパーティ製 Web サーバーの両方から得られた情報に適用されることを表しています。この監視メッセージには、ヒープ メモリの量、および JWS とサードパーティ製 Web サーバーの両方で使用されているワーカー スレッドの数を合計したものが含まれます。
JWS とサードパーティ製 Web サーバーの両方で使用されているワーカー スレッド数の合計を表示するには、次の形式で指定します。
Total={{jcp.totalTh}+{web.totalTh}}
上記のとおり、表示される値は JWS から得られた値と、サードパーティ製 Web サーバーから得られた値の合計です。数式を中かっこ {} で囲むことにより、統計値に対する計算ができることが、この例からわかります。
JRun の global.properties
ファイルには、次のような定義済み形式が用意されています。このような定義済み形式の 1 つを monitor.format プロパティに指定できます。また、ユーザが形式を作成することもできます。
# JWS とサードパーティ製 Web サーバーの両方から得られた監視情報で
# 使用されるメッセージ形式を定義します。 # これは既定の監視形式です。 monitor.combined-format=(jcp+web) Heap={totalMemory}KB Listen={{jcp.listenTh}+{web.listenTh}} Idle={{jcp.idleTh}+{web.idleTh}} Queued={{jcp.delayTh}+{web.delayTh}} Busy={{jcp.busyTh}+{web.busyTh}} Total={{jcp.totalTh}+{web.totalTh}} Requests (count/total ms)={{jcp.handledRq}+{web.handledRq}}/ {{jcp.handledMs}+{web.handledMs}} Delayed={{jcp.delayRq}+{web.delayRq}} TotalDelay={{jcp.delayMs}+{web.delayMs}} BytesIn={{jcp.bytesIn}+{web.bytesIn}} BytesOut={{jcp.bytesOut}+{web.bytesOut}} Sessions (active/in memory)={sessions}/{sessionsInMem} # JWS だけから得られる監視情報のメッセージ形式を定義します。 monitor.web-format=(web) Heap={totalMemory}KB Listen={web.listenTh} Idle={web.idleTh} Queued={web.delayTh} Busy={web.busyTh} Total={web.totalTh} Requests (count/total ms)={web.handledRq}/{web.handledMs} Delayed={web.delayRq} TotalDelay={web.delayMs} BytesIn={web.bytesIn} BytesOut={web.bytesOut} Sessions (active/in memory)={sessions}/{sessionsInMem} # JWS だけから得られる情報のショート メッセージ形式を定義します。 monitor.web-short-format=(web) Busy={web.busyTh} Total={web.totalTh} Requests={web.handledRq} TotalDelay={web.delayMs} # サードパーティ製 Web サーバーだけから得られた監視情報で使用される # メッセージ形式を定義します。 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} # サードパーティ製 Web サーバーだけから得られた監視情報で使用されるショート # メッセージ形式を定義します。 monitor.jcp-short-format=(jcp) Busy={jcp.busyTh} Total={jcp.totalTh} Requests={jcp.handledRq} TotalDelay={jcp.delayMs}