それぞれの式にはアラートをトリガするしきい値があります。THRESHOLD
キーワードは、その値を
情報
、警告
、重大
のいずれかのアラートレベルに関連付けるために使用されます。
たとえば、パフォーマンスアドバイザ式である 「スレッドキャッシュのサイズが最適化されていない可能性があります。」は次のとおりです。
100-((%Threads_created% / %Connections%) * 100) < THRESHOLD
情報アラートでは しきい値
を
95%、警告アラートでは 85 %、重要アラートでは
75% と設定して 3 段階のアラートを生成します。
式は非常にシンプルにできます。「バイナリログが有効になっていません」 (管理アラートの一つ)の式は次のとおりです。
%log_bin% == THRESHOLD
結果が OFF
のときは、警告レベルのアラートだけがトリガされます。この状況の場合、単に
%log_bin% == "OFF"
という式を使用すると考えます。ただし、これを行うと、しきい値に対するバイナリロギングをテストしないため、アラートに繋がりません。
式を作成するときは、評価するものとしないものの条件について十分考慮してください。たとえば、 「MyISAM キーキャッシュヒット率が最適化されていません」 ルールの式は次のとおりです。
(%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_read_requests% > 10000)
という、キーキャッシュと関係のあるアクティビティが十分になければルールが評価されないという意味を持つ部分が
2 番目にあります。
別の状況として、ブラックアウトしたときなど、一定時間のルール評価を避けたい場合があります。たとえば、「スレーブの実行がカスタから大幅に遅れています」
ルールの式は、 %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
まで) はアラート不要」 という意味です。