記事
· 2023年5月12日 2m read

ヘルスモニタのセンサー値をコマンドで変更する方法

こちらの記事 では、ヘルスモニタのセンサー値を ^%SYSMONMGR ユーティリティを使用して変更する方法をご紹介しました。
今回は、ヘルスモニターセンサー値を コマンド(プログラム)で変更する方法をご紹介します。


ヘルスモニタは、CPUUsage(CPU使用率)、DBLatency(DBからのランダム読取に要する時間)、DiskPercentFull(DBのディスク使用率)などの該当しきい値を超えた場合に、通知を生成します。
ヘルスモニタのセンサー値(閾値)について

センサーのしきい値を超えると、IRISのシステムログ(messages.log)に以下のようなメッセージが記録されます。

[SYSTEM MONITOR] CPUusage Warning: CPUusage = 81 ( Warnvalue is 75).
[SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1092.228 ( Warnvalue is 1000).
[SYSTEM MONITOR] DiskPercentFull(/hs-connect/sys/mgr/) Alert: DiskPercentFull = 99.00, 99.02, 99.03 (Max value is 99).

  

センサー値のしきい値は、センサー名をキーにして %SYS ネームスペースで変更することが可能です。
※変更には、システムモニタの停止が必要です。

以下の例は、DiskPercentFullのセンサー値を 95% -> 80% でWaning (1)、99% -> 90% でAlert (2) に変更しています。

zn "%SYS"
set sc = ##class(%SYS.Monitor).Stop()    ;; システムモニタを停止
set SensorObj=##class(SYS.Monitor.Health.SensorObject).%OpenId("DiskPercentFull")
write SensorObj.WarnValue_","_SensorObj.AlertValue   ;; 現在の値 --> 95,99
set SensorObj.WarnValue = 80    ;; 新しい値
set SensorObj.AlertValue = 90   ;; 新しい値
set sc = SensorObj.%Save()
set sc = ##class(%SYS.Monitor).Start()   ;; システムモニタを開始


センサー名を一覧で見たい場合は、以下のようにして確認できます。

zn "%SYS"
set oSensors=##class(SYS.Monitor.Health.Control).%New()
do oSensors.LoadSensors()
zwrite oSensors


実際に設定されている AlertValue, WarnValue を見たいときは以下のようにします。

zn "%SYS"
Set rset = ##class(%ResultSet).%New("SYS.Monitor.Health.SensorObject:SensorsMaxVal") 
Set sc = rset.Execute()
while rset.Next() { write rset.%GetData(1)_", "_rset.%GetData(2)_", "_rset.%GetData(3),! }
;; AlertValue が設定されているセンサーのみリスト
;; SensorsMaxVal : SELECT Sensor,AlertValue,WarnValue FROM SensorObject WHERE AlertValue <> 0


enlightened【ご参考】
ヘルスモニタでのチェック頻度およびアラート通知条件の確認と変更方法

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください