アラーム(複合アラーム・AlarmRule構文)難易度 高無料
運用チームは、次の2つの子アラームが両方ともALARM状態になった場合にのみ通知を送りたい(どちらか一方だけがALARM状態でも通知しない)。
HighCPUAlarm:CPU使用率が閾値を超えているHighLatencyAlarm:アプリケーションのレイテンシが閾値を超えている
この要件を満たす複合アラーム(Composite Alarm)のAlarmRuleとして最も適切なものを選べ。(単一選択)
- A
ALARM(HighCPUAlarm) AND ALARM(HighLatencyAlarm) - B
ALARM(HighCPUAlarm) OR ALARM(HighLatencyAlarm) - C
HighCPUAlarm AND HighLatencyAlarm - D
NOT ALARM(HighCPUAlarm) AND NOT ALARM(HighLatencyAlarm)
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
複合アラームは、複数の子アラーム(メトリクスアラーム、または他の複合アラーム)の状態を
ALARM()/OK()/INSUFFICIENT_DATA() 関数と論理演算子(AND/OR/NOT)で
組み合わせたAlarmRuleという式で評価する。
- 「両方ともALARM状態のときだけ発報」はAND条件で表現する:
ALARM(HighCPUAlarm) AND ALARM(HighLatencyAlarm)。 - 複合アラームを使う目的は、相関する複数の子アラームをまとめて評価し、単独の一時的なスパイクだけでは発報させない(アラート疲れの軽減)こと。 本問のように「CPUだけ高い」「レイテンシだけ高い」は個別の一過性ノイズの可能性があるが、両方同時に閾値超過している場合は本当に深刻な障害である可能性が高い、という運用判断を式に落とし込める。
- 逆に「どちらか一方でも」という要件であれば
ORを使う。
- BORは「どちらか一方でもALARM状態なら発報」という条件になり、「両方ともALARM状態のときだけ」という要件より広い範囲で発報してしまう。
- CAlarmRuleではアラーム名を直接記述せず、
ALARM()/OK()/INSUFFICIENT_DATA()のような状態関数でラップする必要がある。この構文は無効。 - Dこの式は「両方ともALARM状態でない」場合に真になる複合アラームであり、要件(両方ともALARM状態の時に発報)とは逆の条件になっている。
ひっかけ:
ORとANDの取り違えが最頻出のひっかけ。「両方とも」=AND、「どちらか」=ORという
日本語表現と論理演算子の対応を機械的に読み違えないこと。また関数名は ALARM() であり、アラーム名を直接ブール値のように書く記法(C)は正しい構文ではない。
一方、D(NOT ALARM(...) AND NOT ALARM(...))はALARM()関数を正しくラップした構文としては有効な式であり、
問題があるのはあくまで意味論(要件と逆の条件になっている)である点をCと混同しないこと。AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)