Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サンプリングは統計学である: 数理的根拠に基づき、オブザーバビリティのコストと精度を両立する

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for ymotongpoo ymotongpoo
July 12, 2026
150

サンプリングは統計学である: 数理的根拠に基づき、オブザーバビリティのコストと精度を両立する

SRE NEXT 2026での登壇資料です
https://sre-next.dev/2026/schedule/#slot090

Avatar for ymotongpoo

ymotongpoo

July 12, 2026

More Decks by ymotongpoo

Transcript

  1. SRE NEXT 2026 July 11th, 2026 at 1135am Track A

    Staff Developer Advocate, Grafana Labs 山口能迪 サンプリングは統計学である 数理的根拠に基づき、オブザーバビリティのコストと精度を両立する
  2. Subheading goes here 「とりあえず 1% で」 Lorem ipsum dolor sit

    amet, consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  3. 計算例 1,000 req/s でエラー率 1% のとき • 1秒窓だと不安定 • 5分窓にすると標本は300倍

    サンプリング率 標本/秒 95% CI 100% 1,000 ±0.62pp 50% 500 ±0.87pp 10% 100 ±1.95pp 1% 10 ±6.17pp 10%サンプリングでも 5分窓なら30,000標本得られる
  4. SLO から逆算する エラーバジェットが許容誤差を決める 概ねエラーバジェットの1/2 〜 1/4 が目安 例: 成功率のSLO 99.9%の場合

    1%サンプリングだと SLO違反検知に不足 ①エラーバジェット 0.1% ②許容誤差 0.05pp ③必要サンプル数 ④1000req/sで5分窓 必要なサンプリング率
  5. 平均、エラー率、 P99の推定の難しさ 指標の性質 集約窓を広げれば精度改善 • 平均値: 中心極限定理で安定 • エラー率(比率): 信頼区間を計算可能

    10件の標本でP99を語ること自体が無意味 • P50/P99: テイルの標本数に依存 • 低頻度イベント: 確率的に補足不可 扱いやすい 難しい
  6. Adjusted Count(重みによる調整) 各スパンは母集団の何件を代表するか サンプリング率 で残ったスパンの重みは  となる • 10%サンプリング→重み 10 • 2%サンプリング→重み 50

    動的サンプリングではスパンごとに重みが異なるので、集計時にこの重みを掛 けて母集団を復元する → 統計学で Horvitz-Thompson推定量 と呼ばれる
  7. 不均一サンプリングでの考慮事項 エラー100% + 正常系 5% のエラー率を考える よくある設計: エラーは全量保持、正常系は5% • 単純集計するとエラー率が実態より大幅に大きく見える

    • 正常系1件 = 母集団20件、エラー1件 = 母集団1件 重み付けなしの count() は誤ったSLIを返す → Horvitz-Thompson推定量で重み付けすることで母集団に近い復元
  8. probabilistic sampler プロセッサー Consistent Probability Sampling W3C Trace Context の

    tracestate ヘッダーで rv と th を伝搬・保持 • rv (random value): トレースIDから導出されるトレース全体で不変な値 • th (threshold): 保持確率を表現、前段までの閾値を表す絶対値 これにより格段が互いの設定を知らない多段サンプリングでも整合性が保たれる バックエンドは th から adjusted_count を算出 App SDK ヘッド サンプリング OTel Collector 確率的 サンプリング Backend Tempo ot=rv:0.37;th=2 th=2 → 50%保持 ot=rv:0.37;th=4 th=4 → 25%保持 adjusted_count = 4(保持率25%) 注: 便宜上otヘッダの中身を読みやすくしている。 実際は56ビットで表現されている。
  9. probabilistic sampler プロセッサー Consistent Probability Sampling の注意点 最初から最後まで全コンポーネントが対応する必要あり App SDK

    ヘッド サンプリング OTel Collector 確率的 サンプリング Backend Tempo otヘッダーなし 50%保持 何パーセントに調整 していいか不明
  10. サンプリング可否のチェックリスト サンプリンクの判断のフレームワーク • 低頻度かつ重大 (不正利用、決済失敗) • 母数が少なく標本数を確保できない • 完全な因果関係が調査に必須 •

    規制や監査で完全性が必要 • ⼗分なトラフィック(数百 req/s 以上) • ⽬的が全体傾向の把握 • spanmetricsで集約値は全量保証 • 必要精度が事前に⾒積もれる 避けるべきケース 許容できるケース