投稿日

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)