intra-mart Accel Platform 設定ファイルリファレンス 第20版 2018-08-01

ヘルスチェック

ヘルスステータス

ヘルスチェックは実行されるたびにヘルスステータスとメッセージを生成します。
下記はヘルスステータスと一般的な意味のリストです。
名前 順序 説明
UNKNOWN 0 ヘルスチェックはまだ実行されていない、または適切に実行されませんでした。ステータスが決定されていない状態です。
OK 1 ヘルスチェックは正常な状態であることを報告しました。
WARNING 2 ヘルスチェックは警告の域に達しているか、重要なことが起こりうることを報告しました。
CRITICAL 3 ヘルスチェックは重要の域に達していることを報告しました。何らかの処置がされるべきです。
FATAL 4 ヘルスチェックは致命的な状態であることを報告しました。再起動することを期待しています。

システム チェック

<health:ConnectionPoolHealthCheck>

Resinのデータベースコネクションプールの状態を監視します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true

状態

ヘルスステータス 状態
WARNING resin-web 設定<max-connections> を超過した場合。
CRITICAL resin-web 設定<max-overflow-connections> を超過した場合。

設定例

<health:ConnectionPoolHealthCheck/>

<health:CpuHealthCheck>

CPU使用率を監視します。マルチコアマシンでは、各CPUが個別にチェックされます。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
warning-threshold ヘルスステータス「WARNING」のしきい値 int(パーセンテージ 0-100) 95
critical-threshold ヘルスステータス「CRITICAL」のしきい値 int(パーセンテージ 0-100) 200(無効)

状態

ヘルスステータス 状態
WARNING CPUのどれかが warning-threshold を超過した場合。
CRITICAL CPUのどれかが critical-threshold を超過した場合。

設定例

<health:CpuHealthCheck>
  <warning-threshold>95</warning-threshold>
  <critical-threshold>99</critical-threshold>
</health:CpuHealthCheck>

<health:HealthSystemHealthCheck>

ヘルスシステム自体を監視します。
独立したスレッドを使用してヘルスチェックがフリーズしていないか、または時間がかかりすぎていないかを確認します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
thread-check-period 独立したスレッドの確認頻度。 期間 1分(1m)
freeze-timeout ヘルスシステムがフリーズしてヘルスチェックが行えない状態と判断するまでの最大時間。 期間 15分(15m)

状態

ヘルスステータス 状態
FATAL ヘルスチェックが freeze-timeout の期間内に行われなかった場合。
FATAL ヘルスチェックが許容される期間内に完了しなかった場合。期間は<health:HealthSystem> の startup-delayperiodrecheck-period から算出されます。

設定例

<health:HealthSystemHealthCheck>
  <thread-check-period>1m</thread-check-period>
  <freeze-timeout>15m</freeze-timeout>
</health:HealthSystemHealthCheck>

<health:HeartbeatHealthCheck>

クラスタの他のメンバーからのハートビートを監視します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true

状態

ヘルスステータス 状態
WARNING クラスタの既知のメンバーからのハートビートが受信されていない場合。
WARNING クラスタの既知のメンバーからのハートビートが最後に受信されてから180秒以内に受信されていない場合。

設定例

<health:HeartbeatHealthCheck/>

<health:JvmDeadlockHealthCheck>

JavaVMによってデッドロック状態であると認識されたスレッドを監視します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true

状態

ヘルスステータス 状態
FATAL デッドロックのスレッドが検出された場合。

設定例

<health:JvmDeadlockHealthCheck/>

<health:LicenseHealthCheck>

Resin-Proのライセンスの期限切れを確認します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
warning-period ライセンス警告の期間 期間 30日(30D)

状態

ヘルスステータス 状態
WARNING ライセンスが warning-period の期間内に期限切れになる場合。

設定例

<health:LicenseHealthCheck>
  <warning-period>30D</warning-period>
</health:LicenseHealthCheck>

<health:MemoryPermGenHealthCheck>

JavaVMのPermGenメモリプールの空き領域を監視します。空き領域が低下しすぎた場合ガベージコレクションを要求します。

コラム

このヘルスチェックは、JavaVMベンダの実装によっては使用できない場合があります。
JavaVMにPermGenメモリプールが存在しない場合はヘルスステータスが UNKNOWN で表示されます。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
memory-free-min クリティカルな状況の空きメモリ最小量 バイト値 1メガバイト(1m)
free-warning 警告のしきい値 double(パーセンテージ 0.0 - 100.0) 0.01
objectName 明示的にメモリの統計を照会するMBean名を設定します。 未設定の場合、メモリ統計が可能なMBeanを検索します。 javax.management.ObjectName なし

状態

ヘルスステータス 状態
UNKNOWN JavaVMにPermGenメモリプールが存在しない場合。または適切なMBeanを決定することができなかった場合。
WARNING 空きメモリが、ガベージコレクション実行後に free-warning の割合を下回っている場合。
CRITICAL 空きメモリが、ガベージコレクション実行後に memory-free-min を下回っている場合。

設定例

<health:MemoryPermGenHealthCheck>
  <memory-free-min>1m</memory-free-min>
  <free-warning>0.01</free-warning>
</health:MemoryPermGenHealthCheck>

<health:MemoryTenuredHealthCheck>

JavaVMのTenuredメモリプールの空き領域を監視します。空き領域が低下しすぎた場合ガベージコレクションを要求します。

コラム

JavaVMにTenuredメモリプールが存在しない場合はJavaVMでヒープメモリを監視します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
memory-free-min クリティカルな状況の空きメモリ最小量 バイト値 1メガバイト(1m)
free-warning 警告のしきい値 double(パーセンテージ 0.0 - 100.0) 0.01
objectName 明示的にメモリの統計を照会するMBean名を設定します。 未設定の場合、メモリ統計が可能なMBeanを検索します。 javax.management.ObjectName なし

状態

ヘルスステータス 状態
UNKNOWN JavaVMにTenuredメモリプールが存在しない場合。または適切なMBeanを決定することができなかった場合。
WARNING 空きメモリが、ガベージコレクション実行後に free-warning の割合を下回っている場合。
CRITICAL 空きメモリが、ガベージコレクション実行後に memory-free-min を下回っている場合。

設定例

<health:MemoryTenuredHealthCheck>
  <memory-free-min>1m</memory-free-min>
  <free-warning>0.01</free-warning>
</health:MemoryTenuredHealthCheck>

<health:TransactionHealthCheck>

Resinのトランザクションマネージャのコミット失敗を監視します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true

状態

ヘルスステータス 状態
WARNING 前回のチェック以降にコミット失敗があった場合。

設定例

<health:TransactionHealthCheck/>

ユーザ チェック

<health:HttpStatusHealthCheck>

1つ以上のURLを作成し、現在のResinインスタンスにHTTP GETのリクエストを行い、返されたHTTPステータスコードのパターンを監視します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
ping-host チェック対象のホスト(url が URI の場合に使用します) String なし
ping-port チェック対象のポート(url が URI の場合に使用します) int 80
url チェック対象のURLまたはURI String なし
socket-timeout ソケットコネクションのタイムアウト時間 期間 10秒(10s)
regexp HTTPステータスコードの正規表現 java.util.regex.Patternにコンパイルされる正規表現 200

状態

ヘルスステータス 状態
CRITICAL HTTP GET リクエストが接続に失敗した場合。またはHTTPステータスコードが、正規表現と一致しなかった場合。

設定例

<health:HttpStatusHealthCheck>
  <ping-host>localhost</ping-host>
  <ping-port>8080</ping-port>
  <url>/custom-test-1.jsp</url>
  <url>/custom-test-2.jsp</url>
  <socket-timeout>2s</socket-timeout>
  <regexp>^2|^3</regexp>
</health:HttpStatusHealthCheck>

<health:ExprHealthCheck>

ユーザが指定したEL式の真偽を評価します。

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
fatal-test trueと評価された場合にステータスをFATALするEL式。 EL式 なし
critical-test trueと評価された場合にステータスをCRITICALするEL式。 EL式 なし
warning-test trueと評価された場合にステータスをWARNINGするEL式。 EL式 なし

状態

ヘルスステータス 状態
FATAL fatal-test がtrueと評価された場合。
CRITICAL critical-test がtrueと評価された場合。
WARNING warning-test がtrueと評価された場合。

設定例

<health:ExprHealthCheck>
  <critical-test>${mbean('java.lang:type=Threading').ThreadCount > 100}</critical-test>
</health:ExprHealthCheck>