それぞれの表現にはアラートをトリガするしきい値があります。THRESHOLD
キーワードは、Info
、Warning
、Critical
のいずれかのアラート
レベルの値と関係しています。
たとえば、パフォーマンス アドバイザ表現である 「Thread Cache Size May Not Be Optimal」 は次のとおりです。
100-((%Threads_created% / %Connections%) * 100) < THRESHOLD
情報アラートの THRESHOLD
を 95
%、警告アラートでは 85 %、重要アラートでは 75
% とセットして 3
段階のアラートを生成します。
表現は非常にシンプルにできます。「Binary Logging Not Enabled」 (管理アラートの一つ)の表現は次のとおりです。
%log_bin% == THRESHOLD
結果が OFF
のときは、警告レベルのアラートだけがトリガされます。この状況の場合、単に
%log_bin% == "OFF"
という表現を使用すると考えますが、これを行うと、しきい値に対するバイナリ
ロギングをテストしないため、アラートに繋がりません。
表現を作成するときは、評価するものとしないものの条件について十分考慮してください。たとえば、「MyISAM Key Cache Has Sub-Optimal Hit Rate」 ルールの表現は次のとおりです。
(%Uptime% > 10800) && (%Key_read_requests% > 10000) » && (100-((%Key_reads% / %Key_read_requests%) * 100) < THRESHOLD)
このルールの要所は、(100-((%Key_reads% /
%Key_read_requests% ) * 100) < THRESHOLD)
です。しかし、サーバが最初に立ち上がるときは、ノーマル操作を表すステートに達するまでに時間がかかることがあります。たとえば、キー
キャッシュとクエリ
キャッシュには、スタートアップと初期化データと対立するものとして、通常のアプリケーション
データをキャッシュする前に一定の時間を必要とすることがあります。その場合は、システムを稼動させてから
10800 秒 (3 時間)
経過するまで、表現の最初の部分である
(%Uptime% > 10800)
がこの表現の評価を待機します。
さらに、システムのある部分があまり使用されていない場合、データが限られていることを基にしてアラートをトリガすることがあります。たとえば、アプリケーションで
MyISAM のストレージ
エンジンを使用しない場合、別の MyISAM
テーブル (mysql.user
テーブルなど)
の使用が非常に限られている、ということを基にして、「MyISAM
Key Cache Has Sub-Optimal Hit Rate」
ルールがトリガされることがあります。このため、アドバイザには
(%Key_read_requests% > 10000)
という、キーキャッシュと関係のあるアクティビティが十分になければルールが評価されないという意味を持つ部分が
2 番目にあります。
別の状況として、ブラックアウトしたときなど、一定時間のルール評価を避けたい場合があります。たとえば、「Slave
Too Far Behind Master」
ルールの表現は、%Seconds_Behind_Master% >
THRESHOLD
です。.
しかし、午後6時から7時までレプリケーション
スレーブのバックアップを実行するとします。その時間帯は、THRESHOLD
よりもスレーブがマスタに遅れを取るのは普通のことです。この場合、ルール違反に該当しますが、アラートを受け取る必要がありません。故に、&&
CURTIME() NOT BETWEEN '18:00:00' AND
'19:00:00'
という表現を与えます。これは、「18:00:00
から 19:00:00 まで(午後 6 pm から 7 pm まで)
はアラート不要」 という意味です。