Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エラーバジェット枯渇の原因 - 偽陽性との戦い -
Search
Tomonori Hayashi
January 26, 2025
Technology
1
150
エラーバジェット枯渇の原因 - 偽陽性との戦い -
SRE Kaigi 2025 LT 大会で登壇させていただいた際の資料です。
https://2025.srekaigi.net/
Tomonori Hayashi
January 26, 2025
Tweet
Share
More Decks by Tomonori Hayashi
See All by Tomonori Hayashi
Pub/Sub vs Cloud Tasks - その違い、わかりますか?-
phaya72
1
120
OpenTelemetry SpanProcessor を Let's カスタマイズ!
phaya72
2
260
非同期処理でも分散トレーシングしたい!- OpenTelemetry × Pub/Sub -
phaya72
1
580
Vertex AI Experimentsの実態 - コードを辿った先にあったもの -
phaya72
2
960
オブザーバビリティと開発優先度との向き合い方
phaya72
4
840
Cloud Service Mesh への期待が止まらない!!
phaya72
2
1.6k
とあるソフトウェアエンジニアの小さく始めるオブザーバビリティ
phaya72
2
420
OpenTelemetry Collector の Connectors って何者?
phaya72
2
1.9k
Cloud Service Mesh に触れ合う
phaya72
3
1.8k
Other Decks in Technology
See All in Technology
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.5k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
roppongirb_20250911
igaiga
1
210
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1k
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
240
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
130
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
790
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
390
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.1k
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
370
ガチな登山用デバイスからこんにちは
halka
1
240
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Music & Morning Musume
bryan
46
6.8k
BBQ
matthewcrist
89
9.8k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
It's Worth the Effort
3n
187
28k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
For a Future-Friendly Web
brad_frost
180
9.9k
Transcript
エラーバジェット 枯渇の原因 - 偽陽性との戦い - SRE Kaigi 2025 LT 大会
- Tomonori Hayashi 1
Tomonori Hayashi • NTT コミュニケーションズ ◦ ノーコード AI ツール「Node-AI」の開発/運用 ◦
ソフトウェアエンジニア ▪ Front:TypeScript - React/Next.js ▪ Infra:Google Cloud • Google Cloud Partner Top Engineer 2024 - 2025 • Google Cloud Partner Tech Blog Challenge 2024 個人カテゴリ 優秀ブログ • Google Cloud All Certifications • コミュニティ ◦ Google Cloud 公式ユーザーコミュニティ「 Jagu’e’r」 ▪ オブザーバビリティ分科会 運営 ▪ エバンジェリスト 2 @pHaya72 @t_hayashi
エラーバジェットを導入してみて 経験した話です
改めて定義をおさらい 4 エラーバジェット とは “エラーバジェットは、 100% を信頼性の目標とすることは、基本的にいかな る場合にも間違って いるという所見から生じたもの です。
… 企業やプロダクトは、システムの可用性のターゲットをはっきりさせなければ なりません。そのターゲットがはっきりすれば、 エラーバジェットはその可用 性のターゲットを 1 から引いたもの になります。 … エラーバジェットの利用は、開発と SRE との間の動機付けの構造的な競合 を解決します。...SRE とプロダクト開発者は、 機能のリリース速度を最大化 するためにエラーバジェットを使うことを目標にします 。” — 書籍「サイトリライアビリティエンジニアリング」 1章 イントロダクション
エラーバジェット導入までの道のり 5 オブザーバビリティに本腰を入れて取り組み始める
エラーバジェット導入までの道のり 6 検証を経て仕組みの構築・ SLI/SLO の決定
エラーバジェット導入までの道のり 7 実際に運用することで味わう難しさ
偽陽性のエラーがはびこっていた 8 適切なエラーハンドリングの重要性 バーンレートアラートによって、 ある程度の頻度でサービス異常に気づきデバッ グする機会を得られるようになった 一方で、挙がったエラーが必ずしも「対応すべきサービス異常」であるかというと そうではなかった → 実装の中で「
適切でないエラーハンドリングにより 500 番台のステータス コードを挙げている 」部分が多々存在した 本来、エラーバジェットが削られるようなエラーではない( = 偽陽性のエラー ) にも関わらず、とりあえずのエラーハンドリングによりアラートが飛んでいる こ とがわかった
偽陽性のエラーがはびこっていた 9 適切なエラーハンドリングの重要性 バーンレートアラートによって、 ある程度の頻度でサービス異常に気づきデバッ グする機会を得られるようになった 一方で、挙がったエラーが必ずしも「対応すべきサービス異常」であるかというと そうではなかった → 実装の中で「
適切でないエラーハンドリングにより 500 番台のステータス コードを挙げている 」部分が多々存在した 本来、エラーバジェットが削られるようなエラーではない( = 偽陽性のエラー ) にも関わらず、とりあえずのエラーハンドリングによりアラートが飛んでいる こ とがわかった まずはこのエラーハンドリングから 継続的に見直していく必要がある
前述したエラーバジェットの利用まだ先 10 サービス異常を検知するために 元々解決したい課題感としては、「サービスの異常を発見できない」「異常が発見で きても迅速にデバックできない」というものだった 特に前者を解決するために「 何かしらの基準でアラートを仕掛けたい 」というモチ ベーションがあった 今回は「設定した時間内にエラーバジェットを枯渇する速度
」=「バーンレートア ラート 」を採用して「サービスの異常を発見できない」課題にアプローチ • リクエストの総数に対して、 200~400 番台のリクエストを成功 • リクエストが偽陽性を含む 500 番台をあげる たびにアラートしていてはオ オカミ少年になりかねない → サービス異常を緩く検知する意図でバーンレートアラートを利用
前述したエラーバジェットの利用まだ先 11 サービス異常を検知するために 元々解決したい課題感としては、「サービスの異常を発見できない」「異常が発見で きても迅速にデバックできない」というものだった 特に前者を解決するために「 何かしらの基準でアラートを仕掛けたい 」というモチ ベーションがあった 今回は「設定した時間内にエラーバジェットを枯渇する速度
」=「バーンレートア ラート 」を採用して「サービスの異常を発見できない」課題にアプローチ • リクエストの総数に対して、 200~400 番台のリクエストを成功 • リクエストが偽陽性を含む 500 番台をあげる たびにアラートしていてはオ オカミ少年になりかねない → サービス異常を緩く検知する意図でバーンレートアラートを利用 リリース速度を最大化するような エラーバジェットの利用はまだまだ先になりそう
エラーバジェットを導入しみて初めてわかる難しさ • 適切なエラーハンドリングができていないことで不要な 500 番台のステータスコードが挙がっていた → エラーバジェットを枯渇させる原因となっていて、本来の使い方までの道のりはまだまだ 今回の取り組みを通しての学び • サービスがこのような現状であることは、今回の取り組みがなければ気づくことができなかった
→ まずは流行ってみる精神で 信頼性も含めたソフトウェア品質を向上するきっかけを得ることができた まとめと学び
CREDITS: This presentation template was created by Slidesgo, and includes
icons by Flaticon, and infographics & images by Freepik Thanks! 13 @pHaya72 @t_hayashi