第422回 SORACOM公式ブログ

ソラコム公式ブログ

IoTのデータ活用を広げる「通知」を SORACOM Lagoonで設定するポイント

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「IoT のデータ活用を広げる「通知」を SORACOM Lagoon で設定するポイント」を再編集したものです。

 こんにちは、ソラコムのプロダクトマネージャー 小林(ニックネーム tau)です。IoTデバイスが集めたデータの可視化と通知ができる SORACOM Lagoon 3(以下、Lagoon 3)は、ソラコムで人気のサービスの一つです。Lagoon 3はダッシュボードツール Grafanaをベースにしており、様々な設定項目により柔軟な通知を実現しています。

 この記事では、Lagoon 3の通知の仕組みに登場する3つの重要な要素を解説します。Lagoon 3で思い通りの通知を組み立てるとき、これらをしっかりと理解しておくことが役に立ちます。

重要な3つの要素

 Lagoon 3の通知の仕組みに登場する3つの重要な要素とは、[Alert rule]、[Contact Point]、[Notification Policy]です。

SORACOM Lagoon 3の通知設定画面の一部
  • ・[Alert rule]は、通知を行う条件を決めるものです。
    • ・[Alert rule]に従ってデータの値を監視し、値が設定された条件を満たすと状態(Status)が[Normal]から[Firing]に変化します。また、[Alert rule]には[Label]という重要な属性情報が設定されています。
  • ・[Contact point]は、通知手段(通知方法と通知先)の設定です。
    • ・通知方法とはメール、Slack、Webhook などの手段で、通知先とはメールアドレス、Slackチャンネル、Teamsチャンネルといった具体的な宛先を指定できます。
  • ・[Notification policy]は、[Alert rule]が[Firing]に変わったとき、どの[Contact point]に通知するかを対応付けます。
    • ・[Notification policy]が対応付けを仲介するおかげで、Lagoon 3では[Alert rule]と[Contact point]の柔軟な紐づけが実現されています。

 通知の流れを簡単に説明すると、このようになります:

  1. ・[Alert rule]の測定値が条件を満たすと、[Status]が[Firing]に変化します。
  2. ・Lagoon 3は、[Firing]状態の[Alert rule]に付与された[Label]を確かめます。
  3. ・[Notification policy]を参照して、[Label]と対応する[Contact point]を特定します。
  4. ・特定した[Contact point]に対して通知します。

通知の仕組みを喩えてみると?

 通知の振る舞いをイメージするために、こんな喩えを考えてみましょう。[Alert rule]は、ランプの付いたメーターです。このメーターには付せんが貼り付けられています(「付せん」は[Label]に対応します)。[Contact point]は、発送前の郵便物を置いたレターケースです。[Notification policy]は、付せんとレターケースの棚番号を対応付けたリストです。

各要素の想像図

 すると、通知の流れはこのように表現できます:

  1. ・メーターの測定値が基準値を超えると、ランプが点灯します。
  2. ・ランプが点灯したメーターに貼られた付せんを確かめます。
  3. ・対応付けリストを使って、付せんと対応するレターケースの棚を調べます。
  4. ・棚を特定したら、そこから手紙を取り出して発送します。
3 つの要素が連携して通知が実現される

 これ以降の節では、Lagoon 3の通知システムの3要素をより詳しく説明します。各要素の比喩を頭の隅に置いて、続きを読み進めてみてください。

Alert rule

 [Alert rule]は通知の規則を決める要素で「どのデータが」「どうなったら」状態を[Firing]にするかを設定します。例えば「直近1時間の温度の平均が」「25度を上回ったら」のようにです。[Alert rule]は通常は[Normal]状態になっており、設定したアラート条件を満たすと[Firing]状態に移ります。[Firing]は「通知を出してください」の意味で、[Normal]は「今は通知は不要です」の意味です。

[Alert rule] は、[Normal] と [Firing] の状態を取りうる

 [Alert rule]には[Label]という属性情報が付けられています。[Label]はただの補足情報のように聞こえますが、Lagoon 3では重要な役割を担います。[Alert rule]が[Firing]になったとき、どの[Contact point]へ通知するかを決めるのに[Label]が使われます。

 [Label]は、key(変数)と value(変数の値)の組で構成されます。Lagoon 3では、いくつかの[Label]が自動的に付与されます。主なものとして、grafana_folder=****alertname=****があります。=の左側が[Label]のkeyで、=の右側がvalueです。

key 意味
grafana_folder [Alert rule] が保存されている Folder の名前
alertname [Alert rule] の名前
Lagoonが自動で付与する[Label]の例

Contact point

 [Contact point]は、「通知方法(メール、Slack、Webhookなど)」と「通知先」をあらかじめ設定したものです。例えば、通知方法は「Slackで」、通知先は「#temperature-alertチャンネルに通知する」と設定できます。

[Contact point]は、通知方法と通知先を設定するもの

 [Contact point]はあくまでも「通知方法」と「通知先」を決めるものであって、通知の設定はまだ完了していません。通知の設定を完了するために、最後に[Notification policy]を設定します。[Notification policy]が、[Alert rule]が[Firing]になったときに、どの[Contact point]へ通知するかを決めるのです。

Notification policy

 [Notification policy]は、[Label]と[Contact point]を対応付けるリストです。[Alert rule]が[Firing]に変わったとき、Lagoon 3は[Alert rule]に付けられた[Label]を確認し、その[Label]に対応する[Contact point]を[Notification policy]から探して通知します。

[Notification policy] は、[Label] を [Contact point] に対応付ける

 [Alert rule]と[Contact point]を1:1に対応させるなら、grafana_folder=****alertname=****を[Contact point]に対応させるのが簡単です(上図参照)。[Alert rule]がどのgrafana_folderに入っているか、どんなalertnameが付いてるかは、[Alert rule]の画面に戻れば確かめられます。

まとめ

 この記事は、Lagoon 3の初心者や入門者が通知の仕組みの全体像をざっくりと理解する助けになることを目指しました。

[再掲] 3 つの要素が連携して通知が実現される

 3つの要素をうまく組み合わせて柔軟な通知を実現するのが Lagoon 3の特徴です。Lagoon 3で通知を設定するときは、この記事で説明した要素の役割や振る舞いを思い出してみてください。

 より詳しく理解したい方は Lagoon 3のドキュメントもご覧ください。通知の設定手順を解説したこの手順を参照すると、よりイメージが湧きやすいと思います。Lagoon 3の通知で、ぜひ便利なIoTシステムを構築してみてください。

SORACOM Discovery 2024で担当者に直接相談できます

 来週に迫った7月17日(水)に開催される SORACOM Discovery 2024では、SORACOM Lagoon 3などの SORACOMサービスを使ったIoTのデータ活用法を解説する展示コーナー「IoTデバイスからのデータ活用を支えるSORACOMサービス」を出展します。当日は私もブースにおりますので、ご相談やご不明点があればぜひSORACOM Discovery 2024へお越しください。参加するにはSORACOM Discovery 2024サイトよりお申し込みください。

― ソラコム 小林(tau)

投稿 IoT のデータ活用を広げる「通知」を SORACOM Lagoon で設定するポイントSORACOM公式ブログ に最初に表示されました。

過去記事アーカイブ

2024年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
2023年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2022年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2021年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月