Slide 1

Slide 1 text

「複数ウィンドウ、複数バーンレートのアラート」を 設定する際の注意点 2023-05-19 SRE大集合!みんなで学ぶ、信頼性を高めるための取り組みLT大会 https://findy.connpass.com/event/281605/ ENECHANGE株式会社 CTO室 インフラエンジニア兼SRE 岩本隆史 (iwamot)

Slide 2

Slide 2 text

こんな人    

Slide 3

Slide 3 text

複数ウィンドウ、複数バーンレートのアラート

Slide 4

Slide 4 text

Google推奨のアラート設定 https://sre.google/workbook/alerting-on-slos/

Slide 5

Slide 5 text

2つのウィンドウで エラーバジェット消費を賢く通知

Slide 6

Slide 6 text

3つのバーンレートの監視が推奨 Severity Long window Short window Burn rate Error budget consumed Page 1 hour 5 minutes 14.4 2% Page 6 hours 30 minutes 6 5% Ticket 3 days 6 hours 1 10%

Slide 7

Slide 7 text

条件式(ページ・チケット) ( job:slo_errors_per_request:ratio_rate1h{job="myjob"} > (14.4*0.001) and job:slo_errors_per_request:ratio_rate5m{job="myjob"} > (14.4*0.001) ) or ( job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (6*0.001) and job:slo_errors_per_request:ratio_rate30m{job="myjob"} > (6*0.001) ) job:slo_errors_per_request:ratio_rate3d{job="myjob"} > 0.001 and job:slo_errors_per_request:ratio_rate6h{job="myjob"} > 0.001

Slide 8

Slide 8 text

そうか、この条件式をそのまま使えばいいんだな

Slide 9

Slide 9 text

違います

Slide 10

Slide 10 text

注意点1 適切な閾値はSLOによって異なる

Slide 11

Slide 11 text

係数 (0.001) は目標値次第

Slide 12

Slide 12 text

「0.001」は目標値99.9%のこと 1 - 0.999 = 0.001

Slide 13

Slide 13 text

99%なら「0.01」 1 - 0.99 = 0.01

Slide 14

Slide 14 text

バーンレート (14.4 / 6 / 1) は期間次第

Slide 15

Slide 15 text

条件式のバーンレートは30日間が前提 (30 * 24) / 1 * 2% = 14.4 (30 * 24) / 6 * 5% = 6 (30 * 24) / (3 * 24) * 10% = 1

Slide 16

Slide 16 text

7日間で計算すると (7 * 24) / 1 * 2% = 3.36 (7 * 24) / 6 * 5% = 1.4 (7 * 24) / (3 * 24) * 10% = 0.233

Slide 17

Slide 17 text

Googleは28日間を推奨

Slide 18

Slide 18 text

28日間で計算すると (28 * 24) / 1 * 2% = 13.44 (28 * 24) / 6 * 5% = 5.6 (28 * 24) / (3 * 24) * 10% = 0.933

Slide 19

Slide 19 text

「28日間で99%以上」の条件式 ( job:slo_errors_per_request:ratio_rate1h{job="myjob"} > (13.44*0.01) and job:slo_errors_per_request:ratio_rate5m{job="myjob"} > (13.44*0.01) ) or ( job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (5.6*0.01) and job:slo_errors_per_request:ratio_rate30m{job="myjob"} > (5.6*0.01) ) job:slo_errors_per_request:ratio_rate3d{job="myjob"} > (0.933*0.01) and job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (0.933*0.01)

Slide 20

Slide 20 text

なるほど。ちゃんと設定しよう これでエラーが急増しても ページが飛ぶから安心だな

Slide 21

Slide 21 text

違います

Slide 22

Slide 22 text

注意点2 SLOによってはページが飛ばない

Slide 23

Slide 23 text

例:1秒以内の応答が30日間で50%以上

Slide 24

Slide 24 text

「30日間で50%以上」の条件式 ( job:slo_errors_per_request:ratio_rate1h{job="myjob"} > (14.4*0.5) and job:slo_errors_per_request:ratio_rate5m{job="myjob"} > (14.4*0.5) ) or ( job:slo_errors_per_request:ratio_rate6h{job="myjob"} > (6*0.5) and job:slo_errors_per_request:ratio_rate30m{job="myjob"} > (6*0.5) ) job:slo_errors_per_request:ratio_rate3d{job="myjob"} > 0.5 and job:slo_errors_per_request:ratio_rate6h{job="myjob"} > 0.5

Slide 25

Slide 25 text

ページ条件 = エラー率300%超… 14.4 * 0.5 = 7.2 = 720% 6 * 0.5 = 3 = 300% 0.5 = 50%

Slide 26

Slide 26 text

エラー率300%はありえない ページは飛ばない

Slide 27

Slide 27 text

30日間の場合、飛ぶのは83.34%以上 6 * (1 - N) < 1 (1 - N) < 0.1666 N > 0.8334

Slide 28

Slide 28 text

まとめ

Slide 29

Slide 29 text

「複数ウィンドウ、複数バーンレートのアラート」を 設定する際の注意点

Slide 30

Slide 30 text

適切な閾値はSLOによって異なる SLOによってはページが飛ばない