スマートスタイル TECH BLOG

データベース&クラウド技術情報

Percona Monitoring and ManagementのPercona Alerting機能の紹介

はじめに

2022年9月26日にリリースされた、Percona Monitoring and Management(以下PMM)2.31.0で Percona AlertingがGAとなりました。
今回はPercona Alertingでアラートのテンプレートを作成する方法を紹介します。

テンプレートの作成

テンプレートのフォーマット

公式マニュアルにテンプレートの例が紹介されています。

引用元 :Percona Monitoring and Management | Percona Alerting

閾値を設定するテンプレート

アラートの本体となるのがexprの部分です。今回はこのexprの部分を既存のダッシュボードのグラフをベースにして作成する方法を紹介します。

まずはMySQL Instance SummaryのMySQL Slow Queriesのグラフをもとにテンプレートを作成していきます。
パネルのメニューからExploreを選択します。

Metrics browserにグラフの式があるのでコピーします。

コピーしたメトリクスが以下となります。

上記の式の{service_name=~"mysql-1"}service_nameというラベルでフィルタリングをしています。
フィルタリングはアラート作成時に行うため、テンプレートでは行いません。そのため、式の{service_name=~"mysql-1"}は削除します。

この式に対して、閾値を超えた場合にアラートとしたいので、 > [[ .threshold ]]とします。
これでexprの部分は完成です。

閾値(threshold)に関してはparamsで詳細を設定します。今回は必須部分のみを設定します。

ここで設定できる各項目の意味は以下の通りです。

  • name(必須): パラメータの名前
  • summary(必須): パラメータの説明
  • unit: 単位
  • type(必須): データ型
  • range: float型の場合、取りうる値の範囲

テンプレート名(name:)や説明(summary:)などはわかりやすい名前や説明を記載します。

設定が必須な各項目の説明は以下の通りです。

  • for: アラートが発生する前に式が満たされる必要がある期間を指定します。この場合1分間スロークエリの発生数が閾値を上回り続ける必要があります。
  • severity: デフォルトのアラート重大度レベルを指定します。これはアラート作成時に任意のレベルに変更ができます。

annotationsは必須ではありませんが、生成されたアラートに追加の注釈を設定できます。このdescriptionがアラート通知のメッセージ内容となります。
descriptionで使用している、$labels.service_nameはservice_nameラベルの値となります。
詳しくは、こちらのマニュアルをご参照ください。

ON/OFFを判定するテンプレート

次に閾値ではなく、何らかの値がON/OFF(1/0)となるのを判定したい場合のテンプレート例を紹介します。
今回はシステム変数read_onlyがOFFになった場合にアラートとするテンプレートを作成していきます。
read_onlyのメトリクス名はmysql_global_variables_read_onlyです。このメトリクスに対して、1(ON)の状態を正とし、0(OFF)の場合はアラートとしたい場合は、== bool 0という条件にします。
演算子についてはこちらのマニュアルをご参照ください。

テンプレートは以下のようになります。

なお、0(OFF)の状態を正とし、1(ON)の場合はアラートとしたい場合は、== bool 1という条件にします。

テンプレートの追加方法

テンプレートの追加方法を説明します。
画面左側のAlertingAlert rule templatesを選択します。

右上にある+ Addを押すとウィンドウが出るので、テンプレートを張り付けてAddを押すとテンプレートが追加されます。

アラートの作成

テンプレートをもとにアラートを作成します。

Alert rulesタブを選択すると下図のような画面が表示されます。
New alert ruleを選択し、アラートを作成していきます。

テンプレートを使用する場合は、Percona templated alertを選択します。

Templateは作成したテンプレートを選択します。なお、テンプレートのsummaryが表示名となります。

Templateを基にデフォルト値が自動で記入されます。手動で書き換えることも可能です。

Folderはアラートルールのフォルダーです。MySQL関連のアラートであればMySQLのフォルダーに入れておくといいでしょう。

Add Filterでラベルを使用したフィルタリングができます。例えば、以下のように設定するとmysql-1というサービスのみにこのアラートが適用されます。

まとめ

テンプレートの作成方法とそれを使用したアラートの作成方法を紹介しました。慣れていないとexpr部分を1から考えるのは難しいので、既存のグラフの式を活用していくといいかと思います。
また、今回はアラートの作成までを紹介し、通知方法などについては触れませんでした。Percona Alertingは通知をグループ化したり、回数制限を設けたりして、類似のアラート通知を何度も送らないように抑制するための機能もあります。次回はこのようなPercona Alertingの通知関連の機能について紹介したいと思います。

Return Top