GH GambleHub

運用とアラート→システム容量別管理

システム容量アラート

1)なぜそれを必要とします

容量性警報は、事件のずっと前に技術的な限界に近づいていることを警告します。"食料品業界では、これは直接お金についてです:賭け/預金を逃した、セッションの低下、ライブゲームの遅延とプロバイダの失敗=収益の損失、評判、罰金、キックバック。

目的:
  • 予測可能にピーク負荷(イベント、トーナメント、ストリーム、大規模なキャンペーン)に耐えます。
  • 時間の自動スケーリングをオンにし、容量のアップリフトを計画します。
  • SLO/moneyが危険にさらされているときに、ノイズを減らし、ビジネス上で目を覚まします。
  • ランブックを通じてエンジニアに正確な推奨事項を提供します。

2)基本的な概念

容量:最大安定したスループット(RPS/TPS、接続、IOPS、スループット)。
ヘッドルーム:現在の負荷と限界の間のマージン。
SLO/SLA:可用性/応答時間の目標レベル。アラートは「SLO対応」でなければなりません。
燃焼率:エラー/レイテンシのSLO予算を「燃焼」する速度。
High/Low Watermark:アクチュエーションと自動リカバリの上下レベル。

3)信号アーキテクチャとデータソース

テレメトリー:メトリック(Prometheus/OTel)、ログ(ELK/ClickHouse)、トレース(OTel/Jaeger)。
レイヤーアプローチ:レイヤーによるアラート(Edge→API→ビジネスサービス→キュー/ストリーム→データベース/キャッシュ→ファイル/オブジェクトストア→外部プロバイダ)。
コンテキスト:機能フラグ、リリース、マーケティングキャンペーン、トーナメント、ジオアライメント。
インシデントタイヤ:Alertmanager/PagerDuty/Opsgenie/Slack;runbookとescalation行列へのバインディング。

4)レイヤー別の主な指標(監視すべきものとその理由)

エッジ/L7

RPS、 95/99パーセンタイル遅延、エラー率(5xx/4xx)、オープン接続。
レート制限/クォータは、CDN/WAF/ファイアウォールをドロップします。

API-шлюз/バックエンド・フォー・フロントエンド

ワーカー/ワークプールによる飽和、リクエストキュー、ダウンストリームへのタイムアウト。
劣化分数(フォールバック、サーキットブレーカ)。

キュー/ストリーミング(カフカ/ラビット/パルサー)

遅延/消費者遅延、バックログの成長率、スループット(msg/s、 MB/s)。
パーティションスキュー、チャーンのリバランス、ISR(カフカ用)、リトレイ/祖父後。

非同期ワーカー

タスクのタイムアウト、キューの長さ、期限切れのSLAタスクの割合。
プールの飽和CPU/メモリ/FD。

キャッシュ(Redis/Memcached)

ヒット比、レイテンシ、立ち退き、中古メモリ、接続されたクライアント/ops/s。
クラスタ:スロット/レプリカ、フェイルオーバーイベント。

PostgreSQL/MySQL/ClickHouse)

アクティブ接続と最大接続、ロック待ち、レプリケーションラグ、バッファ/キャッシュのヒット。
IOPS、読み取り/書き込み遅延、チェックポイント/フラッシュ、膨らみ/断片化。

オブジェクト/ファイルストレージ

PUT/GETレイテンシー、4xx/5xx、 egress、 requests/sec、プロバイダ制限。

外部プロバイダ(決済/LCC/ゲームプロバイダ)

TPS制限、QPSウィンドウ、エラー率/タイムアウト、リトレイキュー、「コールあたりのコスト」。

インフラ

CPU/メモリ/FD/IOPS/ノード/ポッド/ASG上のネットワーク飽和。
HPA/VPAイベント、保留中のポッド、コンテナOOM/スロットリング。

5)容量性アラートの種類

1.静的しきい値

シンプルで簡単:'db_connections> 80% max'。ビーコン信号としては良い。

2.適応的(動的)しきい値

季節性と傾向に基づいて(圧延窓、STL分解)。「週のこの時間/日のために異常に高い」キャッチを許可します。

3.SLO指向(バーンレート)

これらは、エラー予算の摂食率がX時間の地平線でSLOを危険にさらすときにトリガーされます。

4.予後(予報アラート)

「現在のトレンドで20分後、キューは90%に達します。」短いウィンドウでの線形/堅牢/預言者のような予測が使用されます。

5.マルチシグナル

'queue_lag'+'consumer_cpu 85%'+'max'→「手動介入が必要です」という組み合わせでトリガーします。

6)しきい値の方針および反騒音

ハイ・ロー・ウォーターマーク:
  • アップ:警告70-75%、クレタ島85-90%。Down:ヒステリシス5-10 pp「しきい値で見た」しないために。
タイムウィンドウとサプレッション:
  • 'for: 5m'基準のため、'for: 10-15m'警告のため。ナイトモード:ページングなしでチャットにノンクリティカルをルーティングします。
イベントのグループ化:
  • インシデントカードを作成しないように、サービス/クラスタ/ジオグループでグループ化します。
依存性対応の抑制:
  • KYCプロバイダが終了し、APIエラーが発生した場合は、すべての消費者ではなく、統合所有者をページングします。
マーケティング時間ウィンドウ:
  • 在庫期間中、「予想される成長」のノイズしきい値を上げますが、SLOアラートはそのままにしておきます。

7)ルール例(疑似プロメテウス)

DB接続:

ALERT PostgresConnectionsHigh
IF (pg_stat_activity_active / pg_max_connections) > 0. 85
FOR 5m
LABELS {severity="critical", team="core-db"}
ANNOTATIONS {summary="Postgres connections >85%"}
カフカラグ+オートスケーリングの制限:

ALERT StreamBacklogAtRisk
IF (kafka_consumer_lag > 5_000_000 AND rate(kafka_consumer_lag[5m]) > 50_000)
AND (hpa_desired_replicas == hpa_max_replicas)
FOR 10m
LABELS {severity="critical", team="streaming"}
バーンレートSLO (APIレイテンシー):

ALERT ApiLatencySLOBurn
IF slo_latency_budget_burnrate{le="300ms"} > 4
FOR 15m
LABELS {severity="page", team="api"}
ANNOTATIONS {runbook="wiki://runbooks/api-latency"}
Redisメモリとevikshens:

ALERT RedisEvictions
IF rate(redis_evicted_keys_total[5m]) > 0
AND (redis_used_memory / redis_maxmemory) > 0. 8
FOR 5m
LABELS {severity="warning", team="caching"}
決済プロバイダー-制限:

ALERT PSPThroughputLimitNear
IF increase(psp_calls_total[10m]) > 0. 9 psp_rate_limit_window
FOR 5m
LABELS {severity="warning", team="payments", provider="PSP-X"}

8) SLOアプローチとビジネス優先度

シグナルからビジネスへの影響:キャパシティアラートはSLO(特定のゲーム/地理/GGR指標、入金変換)にリスクを参照する必要があります。
Multilevel:オンコールサービスのための警告;クレタ島-ドメイン所有者ページ;SLOドロップ-主要なインシデントとチームの「概要」チャンネル。
劣化機能:自動負荷低減(部分的な読み取り専用、重い機能の削減、ジャックポット放送の頻度の低下、ライブゲームでの「重い」アニメーションのオフ)。

9)自動スケーリングと「正しい」トリガー

HPA/VPA: CPU/Memoryだけでなく、ビジネスメトリック(RPS、キューラグ、p99レイテンシ)によってもターゲットとなります。
ウォームアップタイミング:コールドスタートとプロバイダの制限(ASGスピンアップ、コンテナビルダー、ウォームアップキャッシュ)を考慮してください。
ガードレール:エラーの雪崩のような成長の停止条件。「scalim問題」に対する保護。
容量-プレイブック:シャード/パーティー/レプリカを追加する場所と方法、トラフィックを地域ごとに再配布する方法。

10)プロセス: 設計から操作への

1.リミットマッピング:各レイヤー(最大コン、IOPS、 TPS、クォータプロバイダ)の「true」ボトルネック制限を収集します。
2.予測メトリクスの選択:最初に「N分で残り」を示す信号。
3.しきい値設計:high/low+SLO-burn+compound。
4.各クレタのRunbook:診断手順(「何を開くか」「、どのコマンドをエスカレートするか」)、アクションの3つのオプション:高速トラバーサル、スケーリング、劣化。
5.テスト:負荷シミュレーション(混乱/ゲーム日)、アラートの乾燥開始、アンチノイズチェック。
6.レビューと採用:signal owner=service owner。所有者なし-ページなし。
7.レトロスペクティブとチューニング:false/missedの毎週の分析;メトリック「MTTA (ack)、 MTTD、 MTTR、ノイズ/信号比」。

11)アンチパターン

CPU> 90%→パニック:レイテンシー/キューとの相関なしでは、これは正常かもしれません。
「すべてのための1つのしきい値」:異なるリージョン/タイムゾーン-異なるトラフィックプロファイル。
runbookなしのアラート:クリアアクションなしのページは、オンコールでドレインします。
プロバイダへの失明:外部クォータ/制限は、多くの場合、スクリプト(PSP、 KYC、不正防止、ゲームプロバイダ)を「破る」最初のものです。
ヒステリシスなし:80%/79%の境界で「ソーイング」。

12) iGaming/金融プラットフォームの特徴

スケジュールのピーク:プライムタイム、トーナメント決勝、主要試合;ターゲットレプリカを宣伝し、事前にキャッシュを埋める。
ライブストリームとジャックポット:ブロードキャストイベントのバースト→ブローカー/ウェブサイトの制限。
支払いとKYC:プロバイダーウィンドウ、不正防止のスコア;予備のルートおよび「優美モード」沈殿物を保って下さい。
ジオバランス:ローカルプロバイダの障害-ヘッドルームがある近隣地域にトラフィックを流用する。
責任:賭け/ジャックポットを失うリスクがある-ドメインチームへのインスタントページ+ビジネスアラート。

13)ダッシュボード(最小セット)

容量の概要:層によってヘッドルーム、上3危険な区域、焼跡率SLO。
ストリームとキュー:遅延、バックログの増加、消費者飽和、HPA状態。
DBとキャッシュ:接続、repl-lag、 p95/p99レイテンシ、ヒット比、立ち退き。
プロバイダ:TPS/windows/クォータ、タイムアウト/エラー、コールコスト。
Release/Featureコンテキスト:カーブの横にあるreleases/phicheflags。

14)実装チェックリスト

  • 「真の」制限と所有者のリスト。
  • 予測メトリクスマップ+層間の関連付け。
  • 静的しきい値+ヒステリシス。
  • クリティカルパスのSLOバーンアラート(デポジット、ベット、ライブゲームの起動)。
  • キュー/ストリーム/接続の予測アラート。
  • ウィンドウの抑制/メンテナンス;アンチノイズ政治。
  • Runbook'とコマンド、グラフ、劣化フィルタ。
  • 偽陽性とチューニングの毎週の分析。
  • マーケティングキャンペーンとイベントカレンダーのアカウント。

15) runbookパターンの例(略称)

シグナル: 'StreamBacklogAtRisk'

目的:遅延の成長を防ぐため>1,000万および処置の遅れ>5分。

診断(3-5分):

1.'hpa_desired/max'、スロットル/ルームピットをチェックします。

2.'rate (lag)'、 partitioning (skew)を表示します。

3.ブローカー(ISR、 under-replicated、 network)をチェックします。

アクション:
  • 消費者レプリカを+N増加させ、最大飛行時間を短縮します。
  • 「重要なトピック」の優先度プールを有効にします。
  • 一時的に二次治療/濃縮の頻度を減らします。
  • 'ASG at max'-クラウドから一時的なアップリフトを要求する場合。並列に-重い機能の劣化を可能にします。
  • ロールバック:'lag <100万'15分後に通常のトラフィックプロファイルに戻ります。
  • エスカレーション:Kafkaクラスタオーナー、SREプラットフォーム。

16) KPIおよび信号の質

カバレッジ:容量性アラートによって閉じられたクリティカルパスの%。
ノイズ/シグナル:オンコール/週に1ページ以下の偽ページ。
MTTD/MTTR:容量性インシデントは、SLOが発生する5分前≤検出されます。
プロアクティブセーブ:(死後に)予防されたインシデントの数。

17)速い開始(保守的なデフォルト)

DB: 警告75%の接続/IOPS/lat;クレタ85%、ヒステリシス8-10 pp

キャッシュ:'ヒット<0。9'そして'立ち退き>0'>5分-警告;'used_mem> 85%'-クレタ島。
キュー:'lag' height> 30d+'hpa at max'の平均の3 σ-クレタ島。
API: 'p99> SLO1。3'10分-警告;'バーンレート>4'15分-クレタ島。
プロバイダ:'スループット>90%クォータ'-警告;'timeouts> 5%'-クレタ島。

18) FAQ

Q: 「CPU> 80%」だけではないのはなぜですか?
A:レイテンシ/キューコンテキストがなければ、それはノイズです。CPU自体はリスクと同等ではありません。

Q:適応しきい値は必要ですか?
A:はい、毎日/毎週の季節性のために-偽陽性を減らします。

Q:マーケティング/イベントを検討するには?
A:キャンペーンカレンダー→グラフ上の注釈+一時的なノイズ防止調整ですが、SLOアラートには触れません。

Contact

お問い合わせ

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

統合を開始

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

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

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