トンネルヘルスアラートは、トンネル接続の信頼性が許容しきい値を下回ったときに通知します。Cloudflare がこのアラートをどう算出するかを理解すると、通知の意味を判断しやすくなります。短時間で回復する問題と、対応が必要な継続的な劣化を区別できます。
Cloudflare は、短期と長期の指標を組み合わせた複数ウィンドウ方式を使います。一時的な問題ではアラートを出さず、実際の劣化は検出します。以降のセクションで、この処理の要点を説明します。
SLI は、肯定的なイベント数を全イベント数で割った比率です。SLI が 0% なら機能はまったく動作しておらず、100% なら期待どおりに動作しています。
SLO は SLI のしきい値であり、IPsec/GRE トンネルの信頼性の目標です。たとえば、過去 30 日間のトンネル状態のうち 99.9% が健全である、といった SLO を設定できます。Cloudflare は、トンネルヘルスチェックのタイムアウト結果ではなく、down トンネル状態の値 に基づいて SLO 用の SLI を算出します。
エラーバジェットは、SLO が定める可用性を維持したまま、SLO の時間窓のあいだに許容できる失敗イベントの量です。
SLO は目標の割合です。エラーバジェットは 100% から SLO を引いた値です。たとえば、30 日間にアカウントで 100 万回のトンネルヘルスチェックがあり、SLO が 99.9% の場合、エラーバジェットは次のとおりです。
number of events x (1 - SLO) = 1,000,000 x (1-0.999) = 1,000この場合、30 日間で 1,000 回までの失敗したトンネルヘルスチェックが SLO で許容されます。ただし、同じ失敗が 30 日ではなく 1 時間に集中したらどうなるでしょうか。そこでバーンレートの考え方が出てきます。
バーンレートは、SLO の期間に対して、ある時間窓のあいだにエラーバジェットをどれだけ速く消費しているかを示します。この例では、SLO 99.9% なら 30 日間で 1,000 回のトンネルヘルスチェック失敗まで許容されます。同じ 1,000 回の失敗を 1 時間で起こすことは許容されません。
トンネルヘルスアラートを送るタイミングは、複数ウィンドウと複数バーンレートの組み合わせで決めます。Cloudflare は 5 分ごとに、直近 1 時間と直近 5 分のデータを分析します。短いウィンドウ(5 分)と長いウィンドウ(1 時間)それぞれで SLI を算出します。
アラートは、短いウィンドウと長いウィンドウの両方が、設定したしきい値を下回ったときだけ送信します。どちらか一方だけではアラートは出ません。たとえばしきい値を 99% にした場合は次のとおりです。
- 短いウィンドウ: 99.2%、長いウィンドウ: 99%。短いウィンドウが 99% を超えているため、アラートは出ません。
- 短いウィンドウ: 98%、長いウィンドウ: 98%。両方のウィンドウが 99% を下回るため、アラートが出ます。