ユーザーのログイン用に MFA SMS を送信するために Twilio を使用しています。
Twilio から SMS を送信するように依頼するときは、メッセージのステータスが変更されたときに Twilio が POST するコールバック URL も送信します。そのコールバック エンドポイントで、ステータス ラベル ( ) を使用して Prometheus カウンターをインクリメントしていますmessage-status
。可能なステータスは次のとおりです: キューに入れられた、送信済み、配信済み、失敗、および未配信。一方、「正常な」ステータス遷移は、キューに入れられた-->送信済み-->配信済みです。
さらに、SMS の送信要求を受信するたびに、ラベルをまったく付けずに別の単純なプロメテウス カウンターをインクリメントしています ( total-messages
)。
Grafana でこれらのカウンターを照会しました。
sum(increase(message-status{status="delivered"}[1h]))
sum(increase(total_messages[1h]))
配信されたすべてのメッセージと送信されたメッセージの総数との比率にアラートを設定しようとしました。
sum(increase(twilio_messages_status{status="delivered"}[1h])) / sum(increase(twilio_total_messages[1h]))
いくつかの手動テストを行いましたが、グラフは期待どおりに見えませんでした。送信したメッセージはすべて正常に配信されましたが、これら 2 つのメトリックの比率は 1 になると予想していましたが、そうではありませんでした。カウンター ( total-messages
) の方が高かったのです。
これで、すべてのメッセージが実際に配信されたことは確かです。
- Twilio アカウントのダッシュボードを見る
- ポッドのログを見る (これらのカウンターのいずれかがインクリメントされるたびにログを出力します)
- メッセージは私の私用の電話に向けられていて、私はそれらすべてを手に入れました。
メトリックのクエリ方法が間違っていると思います。「増加」関数を削除して、合計関数のみを使用しようとしました。次に、予想どおり、両方のグラフが同一であることがわかりました!!
では、増加を使用しているときにまったく同じグラフが表示されない可能性はありますか? 私は何を間違っていますか?このような場合、どの Prometheus 関数を使用すればよいですか? これらの種類のメトリック (成功したリクエストに対する合計リクエスト) にアラートを設定するより便利な方法はありますか?
ありがとうございました!