GH GambleHub

Analytics APIとパフォーマンス指標

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

API-プラットフォーム"循環システム。"厳密な指標がなければ、次のことはできません:
  • SLOとSLAの実装を証明し、
  • 帯域幅とクエリの経済学を管理します、
  • すぐに分解をローカライズして下さい(p99尾、5xx破烈)、
  • ビジネスインパクトの最適化を優先します。

目的:共通識別子と一貫したSLIを使用して、各リクエストを境界からDBまで追跡する単一のオブザビリティモデル。

2)メトリクスの分類

テクニカル:RPS、レイテンシ(p50/p95/p99)、エラー率(4xx/5xx)、彩度(CPU、メモリ、ファイルデスク)、キュー時間。
製品:成功した操作/分、ステップ変換(200/合計)、レート制限シェア(429)、リトレイ、ユーザーセグメント。
Cost: cost/request (CPU-ms+egress+database request)、 cost of feature/endpoint、 $/tenant、 $/1k calls。

3)「黄金の信号」: 赤くおよび使用

RED (API用):
  • Rate-リクエスト/秒(エンドポイント/テナント/プラン別)。
  • エラー-4xx/5xx/429分数と絶対。
  • 期間-p50/p95/p99エンドツーエンドとステージ別(ingress→app→DB→サードパーティ)。
USE(リソース用):
  • 使用率-CPU/IO/チャネル負荷。
  • 彩度-キュー(ランキュー、バックログ、DB待ち)。
  • エラー-ドライバーエラー/タイムアウト。

4)基本的な定義と数式

可用性SLI: '1 − (5xx+gateway_timeout)/all_requests'。
成功SLI: '2xx/( all − 429_shadow)'(シャドウロックを除く)。
Apdex: '(|T≤T|+0。5·|T≤4T| )/all'、ここで'T'はターゲット「良い」しきい値です。
テール増幅:'p99_total − max (p99_stage_i)'-キュー/コンポジションの貢献。
99でエラー予算(月)。9%: 'budget=0。1% period_time'。

遅延ヒストグラムの推奨パーセンタイルビン:'[5ms、 10ms、 25ms、 50ms、 100ms、 250ms、 500ms、 1s、 2。5s、 5s]。

5)バーンレートによるSLI/SLOおよび警報

SLO (パブリックAPI)の例:
  • 空室状況:≥ 99。9%/30日。
  • p95レイテンシ'GET/wallet/balance' <150 ms;'POST/payments' <400 ms。
  • エラー'5xx' <0。2%.'429'(ソリッド)<トラフィック全体の1%
バーンレートアラート(2ウィンドウ):
  • 1時間の予算の2%または6時間の5%→エンジニアへのページ。
  • 1日あたり10%→RCA優先順位付け。

6)メトリックのセット(収集するものは必須です)

周囲(ゲートウェイ/WAF):
  • 'http_requests_total {route、 method、 status、 tenant、 plan}'
  • 'http_request_duration_seconds_bucket {route、……}'(ヒストグラム)
  • 'retries_total {reason}'、 'rate_limited_total {key、 policy}'
  • 本体サイズ:'request_bytes'、 'response_bytes'
添付ファイルを見つけてください:
  • 'db_client_requests_total {op、 table}'、 'db_latency_seconds_bucket {op}'
  • 'cache_ops_total {op}'、キャッシュのヒットレート外部コール:'outbound_calls_total {provider、 op}'、レイテンシ/エラー/キューのタイムアウト/プール:長さ/遅延、アクティブなリソースUSE workers: CPU、 RSS、 FD、 GC pauses

ビジネスラベル:'tenant_id'、 'region'、 'kyc_level'、 'plan'、 'feature_flag'。

7)トレースと相関(OpenTelemetry)

すべてのホップのW3C Trace-Context ('traceparent'、 'tracestate')。
ステージごとのスパン:ingress→authZ→app handler→DB/Redis→PSP/external。

属性/ラベル: 'http。ルート'、'エンドユーザー。id'、テナント。id'、'idempotency。キー'、'リスク。「スコア」

例:レイテンシ/エラーグラフ上のポイントを特定のトレースIDに関連付けます。

サンプリング:
  • head-based 1-10% for 「normal」パス、
  • 尾のためのテールベース(遅い/誤った)、
  • ピークやインシデントに適応します。
  • 手荷物:各イベントをマーキングせずにカットのための'テナント'/'リスク'を運びます。

8)ログ: 構造とプライバシー

構造化されたJSON;必須フィールドは'ts'、' trace_id'、'span_id'、'route'、'status'、'latency_ms'、'tenant'、'user_id_hash'です。
PIIの方針:マスクPAN/PII;秘密/トークンを拒否します。
ログサンプリング:4xx/5xx/429および「長い」要求のための高い。

9)ダッシュボードマップ(最小セット)

1.Exec-Summary: RPS、可用性、エラーレート、p95/p99レイテンシ、429シェア、バーンレート予算。
2.ルートごと:RPS/Error/Tailによるトップエンドポイント;バージョンの比較(カナリア)。
3.テナントごと/プラン:ロード/コスト/エラーリーダー。
4.依存性健全:DB、キャッシュ、PSP/外部-レイテンシー、エラー、彩度。
5.容量:CPU/RAM/FDのキュー、接続プール、GCの容器の限界。
6.セキュリティ/乱用:401/403、429/政治家、地理/ASNスライス、リトレイスパイク。

10)アラート(しきい値と傾向)

'error_rate {route}'> 2%(5分)およびRPS> N→pager。
'p99_latency {critical}'>ターゲットしきい値(10分)。
'burn_rate'を予算単位で指定します(第5章を参照)。
DB 'timeouts'/' deadlocks'またはgrowth 'queue_time'> X ms。
外部プロバイダ:'outbound_5xx_rate {provider}'> 1%+SLO依存。

11)容量性の計画および性能

Little's law: 'L=λ· W'(平均キュー長=トラフィック×平均時間)。
ターゲットp95は'ingress+app+DB+external+queue'と分解されます。
同時予算:同時書き込み操作の最大数を修正します。
予算のメートル:「要求ごとのCPU ms」;ピークまで30〜50%のマージンを維持しています。
レート制限との相互作用:クォータ「天井」での要求の割合とレイテンシーへの影響を測定します。

12)負荷および総合的な点検

タイプ:ベースロード、バースト× 10「、ステップ」、長期的なplateaus、ストレス/カオス(ノード殺害、ネットワーク遅延)、重要なクライアントシナリオに応じた合成。
プロファイリング:CPU/alloc/lock-contention、 N+1 (SQL/HTTP)、遅いコード。
回帰制御:p95/p99/errors before/after release(カナリア)の比較。

13)費用観察可能性

コストメトリック:'cpu_ms'、 'egress_bytes'、 'db_calls'、'$per 1k requests'。
エンドポイント/テナント/フィーチャーへの割り当て:オーケストレーター+ロードメトリック→APIユニットエコノミクスレポートからの請求タグ。
最適化アルゴリズム:製品「トラフィック×コスト× (p95 − target)」でTOPエンドポイントを選択します。

14)テナントごとの分析と「正義」

すべての主要な指標は'tenant_id/plan'というラベルが付けられています。
p99尾の「重い」顧客の共有;個々の制限/クォータと再配置予算。
フェアシャーリング:過負荷になると「、知名度の高い」テナントのシェアを減らします。

15) iGaming/Financeの詳細

'kyc_level'、 'risk_tier'、 'payment_method'によるセクション。
「money」パス('POST/deposits'、' POST/出金')のSLI:ターゲットp95を下げ、個別のエラー予算。
Time-to-Wallet (TTW)指標、不正防止オートロックの共有、ペイアウト変換。
監査:金融行為および詐欺防止の決定のための不変のログ。

16)計測: 実装プラクティス

命名メトリクス(例):
  • 'api_http_requests_total'(カウンター)
  • 'api_http_request_duration_seconds'(ヒストグラム)
  • 'api_outbound_requests_total'、 'api_db_query_duration_seconds'
  • 'api_rate_limited_total'、 'api_retry_total {reason}'

リージョン:'route'、 'method'、 'status_class'、' tenant'、'region'、'version'、'canary'、'provider'、'db_table'。
Cardinality:自由な価値を避けて下さい(user_id)、使用"buckets'/hash。
例:ヒストグラムp95/p99に接続する→トレースをクリックします。

17) Antipatterns

パーセンタイルの代わりに媒体;ステータスクラスへの分割はありません。
一貫性のない'route'/'path'(動的IDはラベルに「縫い付け」されます)。
カーディナリティが高いラベル(未加工user_id、 IP)。
外部プロバイダ(PSP/3rd-party)の個別会計はありません。
「ノイズ」によるアラート(シングルウィンドウと1スレッショルド)。
p99キュー時間を除く(マスクの実際の劣化)。

18) Prod Readinessチェックリスト

  • SLI/SLOとエラー予算が定義され、ビジネスに同意します。
  • シングルレイテンシヒストグラムとステータスクラス;ダッシュボードのp95/p99。
  • フルトレース(OTel)、ログ/メトリック/トレース相関。
  • バーンレートアラート(2ウィンドウ)、p99スレッショルドおよびエラーレート。
  • テナントごと/プランごとのセクションとコストレポート。
  • ダッシュボード:Exec、 Per-Route、依存関係、容量、乱用。
  • ロードシナリオ(バースト/高原/ストレス)、プロファイリング。
  • ジッターレトライポリシー;RPSへのリトレイの影響を考慮します。
  • パートナーおよび一般顧客向けのSLA/SLOドキュメント。
  • 保持/ログマスキング、PII保護。

19) TL;DR(ドクター)

SLI/SLOとエラーバジェットの観察可能性を構築し、RED/USEを測定し、p95/p99とキュー時間でレイテンシーヒストグラムを収集し、境界からDBに単一のトレースIDを配布し、テナント/コストカットごとに保持します。キューの法律に従って容量を計画し、ビジネスメトリクスへの影響;antipatterns-percentilesの代わりに媒体、高いcardinalityおよびaccounted外的な依存。

Contact

お問い合わせ

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

Telegram
@Gamble_GC
統合を開始

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

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

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