3 分ごとに 2 つのセンサーの最新 5 分間の温度の平均値を確認し、平均値の温度差が 7 °C を超えたら、Slack の #notification
チャンネルに通知する Alert を設定します。
ここでは、2 つのセンサーとして、サンプルデータソース (Demo) の Device-1 と Device-4 の温度データを利用します。
項目 | 設定内容 |
---|---|
Alert rule 名前: Temperature difference alert | 3 分ごとに「Device-1 の最新 5 分間の温度の平均値」と「Device-4 の最新 5 分間の温度の平均値」を確認し、平均値の温度差が 7 °C を超えたら、Alert rule の State を Firing にします。 Label は、以下のように設定します。
|
Contact point 名前: Sample slack channel | Slack の #notification チャンネルに通知します。 |
Notification policy | 以下の Label が設定された Alert rule の State が Firing になったときに、Contact point「Sample slack channel」を利用して通知します。
|
ステップ 1: Query および評価間隔を設定する
3 分ごとに「Device-1 の最新 5 分間の温度の平均値」と「Device-4 の最新 5 分間の温度の平均値」を確認し、平均値の温度差が 7 °C を超えたら、Alert rule の State が Firing に変化するように設定します。
Lagoon コンソールにログイン して、 → → の順にクリックします。
「Add rule」画面が表示されます。
Query「A」を以下のように設定します。
項目 説明 Query の名前 をクリックして、D1 temp
を入力します。データソース (1 行目 1 項目) 「Harvest (default)」を選択します。 評価範囲 (1 行目 2 項目) 「Alert の概要」で説明している評価範囲 を選択します。具体的には、「Last 5 minutes」を選択して、「now-5m to now」(現在時刻から 5 分前までのデータを評価) が表示されていることを確認します。 リソースの種類 (2 行目 1 項目) 「Demo」を選択します。 リソース (2 行目 2 項目) 「Device-1」を選択します。 データフォーマット (2 行目 3 項目) 「Standard」を選択します。 系列 (2 行目 4 項目) 「temperature」(温度) を選択します。 サンプルデータソース (Demo) の Device-1 の温度データのグラフが表示されます。
「temperature」を選択したときに、想定したグラフが表示されない場合は、もう一度「temperature」を選択してください。
をクリックして、新しい Query「A」を以下のように設定します。
項目 説明 Query の名前 をクリックして、D4 temp
を入力します。データソース (1 行目 1 項目) 「Harvest (default)」を選択します。 評価範囲 (1 行目 2 項目) 「Alert の概要」で説明している評価範囲 を選択します。具体的には、「Last 5 minutes」を選択して、「now-5m to now」(現在時刻から 5 分前までのデータを評価) が表示されていることを確認します。 リソースの種類 (2 行目 1 項目) 「Demo」を選択します。 リソース (2 行目 2 項目) 「Device-4」を選択します。 データフォーマット (2 行目 3 項目) 「Standard」を選択します。 系列 (2 行目 4 項目) 「temperature」(温度) を選択します。 サンプルデータソース (Demo) の Device-4 の温度データのグラフが表示されます。
「temperature」を選択したときに、想定したグラフが表示されない場合は、もう一度「temperature」を選択してください。
Expression「B」を以下のように設定します。
項目 説明 Expression の名前 をクリックして、D1 temp reduce
を入力します。計算方法 「Reduce」を選択します。 「Mean」を選択します。 「D1 temp」を選択します。 「Strict」を選択します。 Expression「C」を以下のように設定します。
項目 説明 Expression の名前 をクリックして、D4 temp reduce
を入力します。計算方法 「Reduce」を選択します。 「Mean」を選択します。 「D4 temp」を選択します。 「Strict」を選択します。 をクリックして、新しい Expression「A」を以下のように設定します。
項目 説明 Expression の名前 をクリックして、Difference
を入力します。計算方法 「Math」を選択します。 abs(${D1 temp reduce}-${D4 temp reduce})
を入力します。をクリックして、新しい Expression「A」を以下のように設定します。
項目 説明 Expression の名前 をクリックして、Condition
を入力します。計算方法 「Threshold」を選択します。 「Difference」を選択します。また、 (より大きい) が表示されていることを確認して7
を入力します。Expression「Condition」の
をクリックします。をクリックします。
データが更新され、ここまでに設定した Expression の計算結果と、条件の評価結果が表示されます。
評価結果 説明 Normal Alert rule を満たしません。 Firing Alert rule を満たしました。なお、ここで Alert rule を満たしただけでは、Alert の State は Firing にはなりません。続けて、次のステップを行います。 引き続き、Alert rule の評価間隔 (「Alert の概要」で説明している評価間隔) を設定します。ここでは、3 分間隔で Alert rule を評価し、Alert rule を満たしたらすぐに、Alert の State が Firing に変化するように設定します。
以下の項目を設定します。
項目 説明 3m
を入力します。0
を入力します。Firing に変化するまでの Alert rule の継続時間です。0
を入力すると、Alert rule を満たすとすぐに (0 秒で) Alert の State が Firing に変化します。サンプルデータソース (Demo) の場合、データの欠落が発生しないため、
は設定しません。
ステップ 2: Alert rule の詳細を設定する
以下の項目を設定します。
項目 説明 Temperature difference alert
を入力します。Alert rule の名前です。「Sample」を選択します。 Sample difference group
を入力します。Alert rule の Group の名前です。次に、Alert rule の Label を設定します。このあとに設定する Notification policy では、この Label を監視します。
以下のように設定します。
2 つ目の Label の入力欄を追加するには、
をクリックします。severity
を入力します。info
を入力します。alert_type
を入力します。temperature difference
を入力して、Enter キーを押します。画面右上にある
をクリックします。
ステップ 3: Slack のチャンネルを設定する (Contact point)
Contact point を作成して、Slack のチャンネルに通知するための Contact point を作成します。
操作を始める前に準備が必要です (クリックして確認してください)
(1) Slack App を作成する
Slack App を作成してください。詳しくは、Slack App を作成する を参照してください。
(2) Slack チャンネルを作成する
「#notification」という名前のチャンネルを作成してください。
(3) Slack App を Slack チャンネルに追加する
Slack を起動して、以下の手順で Slack App をチャンネルに追加します。
- Slack で通知先のチャンネルを右クリックして、 をクリックします。
- → の順にクリックします。
- Slack App の をクリックします。
→ → の順にクリックします。
「New contact point」画面が表示されます。
Message templates については、Message template を作成する を参照してください。
以下の項目を設定します。
項目 説明 Sample slack channel
を入力します。Contact point の名前です。「Slack」を選択します。 (*1) Slack のチャンネル名を入力します。たとえば、 #notification
を入力します。(*1) Slack App の Bot User OAuth Token を入力します。 (*2) Slack App の Webhook URL を入力します。 - (*1) Bot User OAuth Token を利用してメッセージを送信する場合にのみ設定します。
- (*2) Webhook URL を利用してメッセージを送信する場合にのみ設定します。
をクリックします。
ステップ 4: Alert rule と Contact point を関連付ける (Notification policy)
ここまでの設定では、Alert rule と Contact point が別々に登録されている状態です。Notification policy を設定して、Alert rule と Contact point を関連付けます。
→ → の順にクリックします。
新しい Policy が作成されます。
以下の項目を設定します。
項目 説明 をクリックして、以下の Label を設定します。
severity
を入力します。「=」を選択します。 info
を入力します。alert_type
を入力します。「=」を選択します。 temperature difference
を入力します。この Policy が動作する条件です。条件に一致すると、次の Contact point に Alert が通知されます。
で選択した「Sample slack channel」を選択します。 をクリックします。
以上で、3 分ごとに 2 つのセンサーの最新 5 分間の温度の平均値を確認し、平均値の温度差が 7 °C を超えたら、Slack の #notification
チャンネルに通知されます。
通知が不要になったときは
通知が不要になったときは、作成した設定を以下の順番で削除します。
Notification policy の Specific routing (Policy) を削除します。
詳しくは、Specific routing (Policy) を削除する を参照してください。
Contact point を削除します。
詳しくは、Contact point を削除する を参照してください。
Alert rule を削除します。
詳しくは、Alert rule を削除する を参照してください。