MENU

Soracom

Users

Alert をカスタマイズする

SORACOM Lagoon (以降、Lagoon) の Alert (アラート) をカスタマイズするシナリオ別の方法を紹介します。

アラートの作成方法

アラートの作成方法はチュートリアル Alert を設定する を参照してください。 また、アラートの設定項目の詳細は Alert Rule を参照ください。

アラート設定例

定期的に送信されるデータを監視する

温度などをセンサーで計測し、過去 4 分間の最大値が 30 より大きい場合にアラートを通知するシナリオを考えます。設定例は以下の通りです。

  • Evaluate every : データリフレッシュ間隔と同じ (Free プランなら 1m)
  • For : 設定しない (0m)
  • Conditions : WHEN max() OF query(A, 4m, now) IS ABOVE 30 (過去 4 分間の最大値が 30 より大きい場合にアラート)
  • If no data or all values are null : No Data (データが存在しない場合に通知する)

上記では評価対象期間を過去 4 分間としています。これは評価対象期間を Lagoon のデータリフレッシュ間隔 (SORACOM Harvest Data からのデータ反映間隔)および評価間隔の 3 ~ 4 倍に設定することがアラートの漏れを防止しやすいためです。式で表すと以下のようになります。

データリフレッシュ間隔 = 評価間隔 << 評価対象期間 (3 ~ 4 倍)

データリフレッシュ間隔はプランにより異なります。

  • Free プラン : 60 秒
  • Maker プラン : 30 秒
  • Pro プラン : 5 秒

センサーの計測異常などによる誤検知を抑止したい場合

For を設定することでアラート条件を満たした場合でもアラート通知を一定期間保留できます。以下のように For を 10m (10 分) に設定すると、10 分間アラート通知を保留でき、この間にアラート条件から外れた場合はアラートは通知されません。

詳細は For を設定した際の挙動を参照ください。

For を設定した場合は If no data or all values are nullNo Data 以外を設定します (上の例では Keep Last State を設定しています)。No Data に対しては For が考慮されず即通知されます。また、PENDING から OK への状態遷移時はアラート解除が通知されません。よって、状態が No DataPENDINGOK と遷移した場合に、OK が通知されません。

不定期に送信されるデータを監視する

SORACOM LTE-M Button for Enterprise のようなデバイスから不定期に送信された値を監視するシナリオを考えます。設定例は以下の通りです。

  • Evaluate every : データリフレッシュ間隔と同じ (Free プランなら 1m)
  • For : 設定しない (0m)
  • Conditions : WHEN last() OF query(A, 4m, now) IS ABOVE 0 (過去 4 分間の直近の値が 0 より大きい場合にアラート)
  • If no data or all values are null : Ok (データが存在しない場合にアラートの状態を解除する)

上記の設定に加えて、 Notification Channel の設定項目 にて Disable Resolve Message を設定することで、Ok のアラート送信を抑止できます。

集計関数に last() を利用する場合、デバイスからのデータ送信間隔はデータリフレッシュ間隔および評価間隔よりも長くしてください。そうでない場合、アラートが通知されないことがあります。詳細は FAQ: SORACOM Lagoon のアラートがトリガーされないことがある を参照してください。式で表すと以下のようになります。

データリフレッシュ間隔 = 評価間隔 < デバイスからのデータの送信間隔

デバイスの死活監視を実施する

定期的 (1 時間に 1 回) に SORACOM Harvest Data へデータが送信されることを以てデバイスの死活監視を実施するシナリオを考えます。設定例は以下の通りです。

  • Evaluate every : データリフレッシュ間隔と同じ (Free プランなら 1m)
  • For : 設定しない (0m)
  • Conditions : WHEN count() OF query(A, 64m, now) HAS NO VALUE (過去 64 分以内にデータが送信されなかった場合にアラート)
  • If no data or all values are null : Keep Last State (データが存在しない場合にアラートの状態を維持する)

上記では評価対象期間を 1 時間ではなく、4 分間のバッファを足して 1 時間 4 分 (64 分) としています。これはデバイスからデータが送信されてから Lagoon がアラートを評価するまでのタイムラグを考慮しているためです。詳細は アラート通知までのタイムラグ を参照ください。バッファはデータリフレッシュ間隔および評価間隔の 3 ~ 4 倍を推奨しています。式で表すと以下のようになります。

データリフレッシュ間隔 = 評価間隔 << 評価対象期間のバッファ (3 ~ 4 倍)

Lagoon を利用しないアラート送信パターン

現時点において Lagoon のアラート機能には以下の制約があります。

  • 通知のタイトルに付加される [Alerting], [OK], [NoData] というプレフィックスは変更できません。また、状態ごとに異なるタイトルを設定できません。
  • 通知の本文に定義できるのはテキストメッセージのみであり、監視対象の IMSI など動的なデータを付加できません。
  • アラートの閾値は動的に変更できません。
  • 同一の Alert Rule で複数の Metric を監視できますが、Metric ごとに通知を分けることはできません。

さらなるカスタマイズをしたい場合は他の SORACOM サービスを利用することも考えられます。 例として 2 つのパターンを紹介します。これらのパターンでは連携先のサービスにてお客様が条件の設定および通知機能の実装をする必要があり、また Unified Endpoint などを利用してそれぞれのサービスへデータを送信する必要があることに留意してください。

SORACOM Funk + FaaS パターン

SORACOM Funk は AWS Lambda、Azure Functions など各種パブリッククラウドの FaaS へ連携するサービスです。連携した FaaS にて通知先や条件を設定します。

(参考) Getting Started: SORACOM Funk を利用して AWS Lambda を呼び出し Slack へ通知する

SORACOM Funnel + クラウドサービスパターン

SORACOM Funnel は AWS IoT Core、Azure Event Hubs などのクラウドサービスや SORACOM パートナースペースの認定済みパートナーが運営するクラウドサービスなどへの連携ができます。連携したクラウドサービスにて通知先や条件を設定します

(参考) Getting Started: AWS IoT アダプターを使用する