intra-mart Accel Platform 設定ファイルリファレンス 第34版 2024-04-01

ヘルスチェック

ヘルスステータス

ヘルスチェックは実行されるたびにヘルスステータスとメッセージを生成します。
下記はヘルスステータスと一般的な意味の一覧です。
名前 順序 説明
UNKNOWN 0 ヘルスチェックがまだ実行されていない、または適切に実行されなかったことを表します。ステータスが他のいずれにも該当していない場合に設定されるステータスです。
OK 1 ヘルスチェックの結果、正常な状態であることを表します。これは何らかの回復を意味するものではありません。
WARNING 2 ヘルスチェックの結果、警告のしきい値に到達した項目が存在する、または重大な状態であることを表します。
CRITICAL 3 ヘルスチェックの結果、重大な状態が発生していることを表します。結果を確認し、何らかの対応を行う必要があります。
FATAL 4 ヘルスチェックは致命的な状態であることを表します。デフォルトの設定では、ヘルスチェックの結果で1つでもFATALを返却すると、Resinの再起動が行われます。

システム チェック

<health:ConnectionPoolHealthCheck>

<health:ConnectionPoolHealthCheck>では、Resinのデータベースコネクションプールの状態を監視します。

属性

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

状態

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

設定例

<health:ConnectionPoolHealthCheck/>

<health:CpuHealthCheck>

<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>

<health:HealthSystemHealthCheck>では、ヘルスシステム自体を監視します。
このヘルスチェック項目は、独立したスレッドを使用してヘルスチェックがフリーズしていないか、または時間がかかりすぎていないかを監視します。

属性

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

状態

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

設定例

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

<health:HeartbeatHealthCheck>

<health:HeartbeatHealthCheck>では、クラスタの他のメンバーからのハートビートを監視します。

属性

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

状態

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

設定例

<health:HeartbeatHealthCheck/>

<health:JvmDeadlockHealthCheck>

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

属性

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

状態

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

設定例

<health:JvmDeadlockHealthCheck/>

<health:LicenseHealthCheck>

<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>

<health:MemoryPermGenHealthCheck>では、JavaVMのPermGenメモリプールの空き領域を監視します。空き領域が不足した場合には、ガベージコレクションのリクエストをJavaVMに送信します。

コラム

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

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
memory-free-min クリティカルな状況の空きメモリ最小量 バイト値 1メガバイト(1m)
free-warning
警告のしきい値
PermGenメモリプールの全領域(1.0)に対する空き領域の割合を設定します。
たとえば、デフォルトの 0.01 の場合はPermGenメモリプールの空き領域が、PermGenメモリプールの全領域の 1% を下回ると警告を出力します。
double(0.0 - 1.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>

<health:MemoryTenuredHealthCheck>では、JavaVMのTenuredメモリプールの空き領域を監視します。空き領域が不足した場合には、ガベージコレクションのリクエストをJavaVMに送信します。

コラム

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

属性

属性名 説明 デフォルト
enabled チェックの有無 boolean true
memory-free-min クリティカルな状況のメモリプールの空き領域の最小値 バイト値 1メガバイト(1m)
free-warning
警告のしきい値
Tenuredメモリプールの全領域(1.0)に対する空き領域の割合を設定します。
たとえば、デフォルトの 0.01 の場合はTenuredメモリプールの空き領域が、Tenuredメモリプールの全領域の 1% を下回ると警告を出力します。
double(0.0 - 1.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>

<health:TransactionHealthCheck>では、Resinのトランザクションマネージャのコミット失敗を監視します。

属性

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

状態

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

設定例

<health:TransactionHealthCheck/>

ユーザ チェック

<health:HttpStatusHealthCheck>

<health:HttpStatusHealthCheck>では、HTTP GETのリクエストを行い、返されたHTTPステータスコードをパターンと比較することにより、現在のResinインスタンス上の1つ以上のURLを監視します。

属性

属性名 説明 デフォルト
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>

<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>