GH GambleHub

アラートと障害応答

(セクション: 技術とインフラ)

概要

強力なアラートは、単なる「レッドメトリック」ではなく、ユーザー価値の侵害のシグナルです。"iGaming、 SLOゲート(レイテンシー、可用性、支払い変換、タイムツーウォレット)、マルチバーンルール、クリアオンコール、エスカレーション、ChatOps、ランブックの役割が重要です。目標は、すばやく偏差を確認し、修正できる人に通知し、次回より速く、より安価に反応するために知識を修正することです。

1)基本: メトリックからアクションまで

SLI→SLO→アラート-測定品質→目標レベル→「予算はオン」状態。
重症度(SEV): SEV1-クリティカル(リスク時の収益/GGR)、 SEV2-深刻、SEV3-中程度、SEV4-マイナー。
影響/緊急性:誰が苦しんでいるのか(すべて/地域/テナント/チャネル)とどのように緊急(TTW#、p99#、エラー-レート#)。
Actionability:アラームごとに-特定のアクション(runbook+owner)。

2)シグナルタクソノミ

ТехSLO: p95/p99レイテンシAPI、エラーレート、彩度(CPU/IO/GPU)、キューラグ。
BusinessSLO:支払いコンバージョン(試み→成功)、Time-to-Wallet (TTW)、賭け成功、ゲームの立ち上げ。
支払ルート:PSP固有の指標(タイムアウト/降格スパイク)。
フロント/モバイル:RUMメトリクス(LCP/INP)、クラッシュレート、シナリオ合成(ログイン/デポジット/レート/出力)。

3)警告ポリシー: SLOとバーンレート

SLI/SLOの例

Payments-apiの可用性≥ 99。9 %/30d p95 '/deposit '≤ 250 ms/30d

'payments_attempt→success ≥ baseline − 0の変換。3 %/24h

TTW p95 ≤ 3 分/24h

マルチ・ウィンドウ/マルチ・バーンPromQL)

Fast burn: SLO違反5-10 ×通常よりも速い(5-15分でアラートページ)。
スローバーン:低速予算バーンアウト(チケット+分析1〜3時間)。

yaml
API success proxy metric (recording rule in advance)
record: job:http:success_ratio expr:
sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
Fast burn (99. 9% SLO)
alert: PaymentsSLOFastBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 14 for: 10m labels: { severity: "page", service: "payments-api" }
annotations:
summary: "SLO fast burn (payments-api)"
runbook: "https://runbooks/payments/slo"
Slow burn alert: PaymentsSLOSlowBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 6 for: 1h labels: { severity: "ticket", service: "payments-api" }

4)騒音低減と信号品質

真実の正しいソース:重い「生」式ではなく、集計(レコーディングルール)によって変更します。
重複排除-'service/region/severity'によるAlertmanagerグループ。
階層:ビジネス/SLIへの最初のアラート、以下-診断としてのテクニカルメトリック。
抑制:計画メンテナンス/リリース中(注釈)、アップストリームインシデント中。
Cardinality:アラートラベルで'user_id/session_id'を使用しないでください。
テストアラート:通常の「トレーニング」トリガー(チャンネル、ロール、runabookリンクのチェック)。

5) Alertmanagerのルーティングとエスカレーション

yaml route:
group_by: [service, region]
group_wait: 30s group_interval: 5m repeat_interval: 2h receiver: sre-slack routes:
- matchers: [ severity="page" ]
receiver: pagerduty-sre continue: true
- matchers: [ service="payments-api" ]
receiver: payments-slack

receivers:
- name: pagerduty-sre pagerduty_configs:
- routing_key: <PD_KEY>
severity: "critical"
- name: sre-slack slack_configs:
- channel: "#alerts-sre"
send_resolved: true title: "{{.CommonLabels. service }} {{.CommonLabels. severity }}"
text: "Runbook: {{.CommonAnnotations. runbook }}"

inhibit_rules:
- source_matchers: [ severity="page" ]
target_matchers: [ severity="ticket" ]
equal: [ "service" ]

アイデア:SEV=page→PagerDuty/SMS;残りはSlack/ticketです。抑制は、上記のアクティブなSEVで下位レベルの「誇大宣伝」を抑制します。

6)グラファナ警報(付加的な層として)

ダッシュボード(Prometheus/Loki/Cloud)の一元化されたアラート規則。
コンタクトポイント:PagerDuty/Slack/Email、フォルダごとの通知ポリシー。
サイレンス:計画された作品、移行、リリース。
チケットにパネルの自動スクリーンショットがあるスナップショット。

7)オンコールおよびライブプロセス

回転:第1ライン(SRE/platform)、第2ライン(サービス所有者)、第3 (DB/Payments/Sec)。
SLA反応:認識≤ 5分(SEV1)、診断≤ 15分、通信15-30分毎。
デューティチャンネル:'#incident-warroom'、'#status-updates'(事実のみ)。
Runbooks:各アラートのリンク+ChatOpsクイックコマンド('/rollback'、'/freeze'、 '/scale')。
訓練警報:毎月(人々、チャネル、runabookの関連性を点検すること)。

8)インシデント: ライフサイクル

1.検知(アラート/レポート/合成)→通話を承認します。
2.トリアージ:SEV/影響を受けた/仮説、オープン戦争部屋を決定します。
3.安定:ロール/ロールバック/スケーリング/phicheflags。
4.コミュニケーション:ステータステンプレート(下記参照)、ETA/次のステップ。
5.閉じる:SLO回復の確認。
6.事後レビュー(RCA): 24-72時間後、料金はかかりません、アクション項目。

ステータステンプレート(短い):
  • 壊れたもの/影響を受けるもの(地域/テナント/チャネル)
  • 開始時/SEV
  • 一時的な対策(緩和)
  • N分の次のステータス更新
  • コンタクト(インシデントマネージャー)

9) iGamingの詳細: 「痛み」ゾーンとアラート

支払い/TTW: PSPタイムアウトのシェア、コード障害の増加、TTW p95> 3m。
トーナメントのピーク:p99 API/ゲームの開始時間/キューラグ;限界/自動スケールの促進。
資金の結論:バックホー/マニュアルチェックのSLA、国による制限。
ゲームプロバイダ:スタジオによる可用性、セッションの初期化時間、ローンチドロップ。
RG/コンプライアンス:長いセッションのバースト/」ドゴン」、しきい値を超える-ページではなく、RGチームへのチケット+通知。

10)ルール例(オプション)

高遅延P95 (API)

promql alert: HighLatencyP95 expr: histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="api"}[5m]))) > 0. 25 for: 10m labels: { severity: "page", service: "api" }
annotations:
summary: "p95 latency > 250ms"
runbook: "https://runbooks/api/latency"

リードキュー「on」

promql alert: WithdrawalsQueueLag expr: max_over_time(queue_lag_seconds{queue="withdrawals"}[10m]) > 300 for: 10m labels: { severity: "page", service: "payments-worker" }
annotations:
summary: "Withdrawals lag >5m"
runbook: "https://runbooks/payments/queue"

お支払いコンバージョン

promql alert: PaymentConversionDrop expr:
(sum(rate(payments_success_total[15m])) / sum(rate(payments_attempt_total[15m])))
< (payment_conv_baseline - 0. 003)
for: 20m labels: { severity: "page", domain: "payments" }
annotations:
summary: "Payment conversion below baseline -0. 3%"
runbook: "https://runbooks/payments/conversion"

11) ChatOpsとオートメーション

アクションボタンによる自動投稿アラート:カナリア、ロールバック、スケール+Nを停止します。

コマンドの略語: '/incident start'、'/status update'、 '/call '、'/grafana '

ボットはコンテキストを引き締めます:最新のデプロイ、依存関係グラフ、例、関連するチケット。

12)事件後の作業(RCA)

Factbox:タイムライン、見たもの/試したもの、働いたもの。
根本原因:技術的および組織的な理由。
検出と防御:どの信号が役に立ったか、失敗したか。
アクションアイテム:特定のタスク(SLO/alerts/codes/limits/tests/runabook)。
期日と所有者:利用規約と責任;2-4週のフォローアップセッション。

13)実装チェックリスト

1.キーストリーム(API/Payments/Games/TTW)のSLI/SLOを定義します。
2.録音ルールとマルチ書き込みアラート+Alertmanagerルーティングを設定します。
3.回転、反応SLO、エスカレーションでオンコールを入力します。
4.アラートをrunbooksコマンドとChatOpsコマンドにリンクします。
5.抑制/静かなウィンドウ、リリース/作業アノテーションを構成します。
6.学習アラームとゲームデイシナリオ(PSPドロップ、p99上昇、キューラグ上昇)を作成します。
7.アラート品質を測定:MTTA/MTTR、% noisy/false、 SLOによるカバレッジ。
8.通常のRCAと閾値/プロセスの改訂。
9.ビジネス/サポートの通信状況(テンプレート)を入力します。
10.すべてをコードとして文書化する:ルール、ルート、runabookリンク。

14)アンチパターン

「every metric→」alert-fetigで警告し、無視します。
SLOがない→何が「普通」で、何が「炎上」であるかは明らかではない。
抑制/抑制→雪崩の重複はありません。
夜のマイナーイベントのページ(SEVはImpactに匹敵しません)。
runbook/ownerなしのアラート。
ChatOps/監査のない「手動」アクション。
RCA/アクションアイテムなし→リピートインシデント。

概要

アラートと応答はプロセスであり、ルールのセットではありません。SLOとマルチバーンアラートをリンクし、明確なオンコールのエスカレーションを構築し、ChatOpsとライブrunabookを追加し、定期的にRCAとトレーニングセッションを実施します。その後、インシデントはそれほど頻繁ではなく、短くて安くなり、iGamingの暑い時間でもリリースはより予測可能になります。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。