Alert をカスタマイズする
バージョンに関する注意
- ここでは、Lagoon 2 (旧バージョンの Lagoon) について説明しています。最新バージョンの Lagoon 3 については、Lagoon 3 のドキュメント を参照してください。
- Lagoon 2 は 2024 年 5 月 31 日に終了します。Lagoon 2 が終了するまでに Lagoon 3 へ移行してください。Lagoon 3 への移行方法は、Lagoon 2 から Lagoon 3 に移行する を参照してください。Lagoon 2 終了後は、Dashboard が閲覧できません。また、Alert も停止します。
- 各バージョンに関する情報は、SORACOM Lagoon 2 と SORACOM Lagoon 3 の違い を参照してください。
- Lagoon 2 の新規契約はできません。
- Lagoon Classic の提供は終了しました。
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 秒
センサーの計測異常などによる誤検知を抑止したい場合
を設定することでアラート条件を満たした場合でもアラート通知を一定期間保留できます。以下のように を 10m (10 分) に設定すると、10 分間アラート通知を保留でき、この間にアラート条件から外れた場合はアラートは通知されません。
詳細は For を設定した際の挙動 を参照ください。
For
を設定した場合は If no data or all values are null
に No Data
以外を設定します (上の例では Keep Last State
を設定しています)。No Data
に対しては For
が考慮されず即通知されます。また、PENDING
から OK
への状態遷移時はアラート解除が通知されません。よって、状態が No Data
→ PENDING
→ OK
と遷移した場合に、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 の設定で、 を設定することで、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 がアラートを評価するまでのタイムラグを考慮しているためです。詳細は Alert 通知までのタイムラグ を参照ください。バッファはデータリフレッシュ間隔および評価間隔の 3 ~ 4 倍を推奨しています。式で表すと以下のようになります。
データリフレッシュ間隔 = 評価間隔 << 評価対象期間のバッファ (3 ~ 4 倍)
Lagoon を利用しないアラート送信パターン
現時点において Lagoon のアラート機能には以下の制約があります。
- 通知のタイトルに付加される [Alerting], [OK], [NoData] というプレフィックスは変更できません。また、状態ごとに異なるタイトルを設定できません。
- 通知の本文に定義できるのはテキストメッセージのみであり、監視対象の IMSI など動的なデータを付加できません。
- アラートの閾値は動的に変更できません。
- 同一の Alert Rule で複数の Metric を監視できますが、Metric ごとに通知を分けることはできません。
さらなるカスタマイズをする場合は他の SORACOM サービスを利用することも考えられます。例として、SORACOM Funk を利用するパターンと、SORACOM Funnel を利用するパターンを紹介します。
- 連携先のサービスで、お客様が条件を設定し、通知機能を実装してください。
- Unified Endpoint などを利用して、それぞれのサービスへデータを送信してください。
SORACOM Funk + FaaS パターン
SORACOM Funk は、AWS Lambda、Azure Functions など、パブリッククラウドが提供する FaaS の Function へデータを転送するサービスです。通知先や条件は、SORACOM ユーザーコンソールや Function で設定します。詳しくは、SORACOM Funk の AWS Lambda を実行し Slack へ通知する を参照してください。
SORACOM Funnel + クラウドサービスパターン
SORACOM Funnel は AWS IoT Core、Azure Event Hubs などのクラウドサービスや SORACOM パートナースペースの認定済みパートナーが運営するクラウドサービスなどへの連携ができます。連携したクラウドサービスにて通知先や条件を設定します。詳しくは、SORACOM Funnel の AWS IoT アダプターを使用する を参照してください。