APIとインフラストラクチャモニタリングツール
1)原則: 目標からツールまで
SLO-first:製品目的(ログイン、デポジット、レート)のツールを選択してカスタマイズします。
オープンスタンダード:OpenTelemetry(トレイル/メトリック/ログ)、Prometheus exposition format、 Loki JSON logs。
単一のコンテキスト: 'trace_id'/'span_id'ログとメトリック;リンク「dashboard→trace→log」
費用対効果:メトリクスのカーディナリティ、TTLログ、サンプリングトレイル-事前に。
2)メトリクス: コレクション、ストレージ、視覚化
C。 Prometheus/Agent- режим (VictoriaMetrics Agent、 Grafana Agent、 OpenTelemetry Collector)。
ストレージ(TSDB): Prometheus(シングル)、Thanos/Cortex/Mimir(スケールアウト)、VictoriaMetrics (CPU/RAM節約)。
可視化:グラファナを「ガラスパネル」とする。
API (RED)とインフラストラクチャ(USE)の測定方法:- RED: 'rate (requests)'、 'error_ratio'、 'latency p95/p99'ルート'、'method'、'provider'。
- 使用:CPU/Mem、ファイル記述子、接続プール、キューラグ、GCが一時停止します。
- k8s: kube-state-metrics、 node-exporter、 cAdvisor、 ingress/gateway exporter。
- БД/кэши: postgres_exporter、 mysql_exporter、 redis_exporter、 kafka_exporter、 rabbitmq_exporter。
- サービスマッシュ:Envoyメトリック、istio/Linkerdダッシュボード。
- PSP/PSP:カスタムエクスポート(Webhookの成功、PSPの成功率、コールバックの待ち時間)。
promql
入金成功率(SLI)
sum(レート(ig_payments_requests_total{route="/payments/deposit,"status=~"2.."}[5m]))
/
sum(レート(ig_payments_requests_total{route="/payments/deposit"}[5m]))
p95レイテンシAPI histogram_quantile (0。95、 sum (rate (http_request_duration_seconds_bucket[5m])) by (le、 route))
DB接続プールの飽和db_connections_in_use/ db_connections_max3)ログ: 検索、相関、不変性
スタック:OpenSearch/Elasticsearch+Beats/Vector/Fluent BitまたはGrafana Loki(ストリームとしてログアウトする方が安い)。
フォーマット:標準フィールドのts、レベル、サービス、env、 trace_id、 user_pid、ルート、ステータス、latency_ms'を持つJSON。
プラクティス:PIIマスキング、WORM監査バケット、TTL/ILMポリシー、'env/region/brand'パーティショニング。
4)トレース: ミリ秒が失われる場所
技術:OpenTelemetry SDK/Collector→Jaeger/Tempo/Honeycomb/New Relic Traces。
サンプリングポリシー:100%エラー、「遅い」リクエストの場合は1〜5%成功しました。
iGaming: 'provider'、 'psp'、 'risk_decision'、 'bonus_id'、 'market'、 'ws_table_id'。
議論のためのクイックレシピ:赤いグラフSLO→問題のルートのトレース→PSP/ゲームプロバイダの「厚い」スパン→webhookログから。
5) APMプラットフォーム: オールインワン時
商用ソリューション(Datadog、 New Relic、 Dynatrace、 Grafana Cloud)は、APM、ログ、トレイル、合成、RUMを閉じます。
長所:実装の速度、ボックスからの相関。短所:コスト/ベンダーのロック。
ハイブリッド:OSS (Prometheus+Grafana+Tempo+Loki)のコア、クリティカルフロー上の商用モジュールとの「仕上げ」合成/アラート。
6)合成物およびRUM: 「外」および「プレーヤーの目を通して」
Сиatouth: Checkly、 Grafana合成モニタリング、k6クラウド、アップトレンド、Pingdom、キャッチポイント、ThoundsEyes。
スクリプト:login→deposit (sandbox)→game launch→webhook check。
地理:EU/LatAm/MEA/APAC、モバイルネットワーク、ASNミックス。
RUM: Web-SDK (TTFB/LCP/CLS)、モバイルSDK;国/ネットワーク/デバイスによるセグメンテーション。
7) Kubernetes監視サーフェス
コントロールプレーン:etcd、 APIサーバー(apiserver_request_total、レイテンシ)、スケジューラ/コントローラ。
データ平面:kubelet、 CNI、 ingress/gateway; 'PodDisruptionBudget' эвикшены。
Autoscale: HPA/VPA/Cluster Autoscalerのメトリックとイベント;暖かいプール。
ネットワークポリシー:イベントの削除/拒否、DNSレイテンシ。
8)データベース、キュー、キャッシュ
Postgres/MySQL:レプリケーションラグ、デッドロック、bloat、 WAL、チェックポイント期間、タイムアウト。
Kafka/RabbitMQ:消費者の遅れ、リバランス、キューの深さ、再配達。
Redis:イベント、ブロックされたクライアント、レイテンシのパーセンテージ、レプリカラグ。
PITR/backups:バックアップオペレータタスク+リストア時間のダッシュボード。
9)ネットワーク、CDN、 WAF、ゲームプロバイダ、PSP
CDN/Edge:ヒット率、地域別TTFB、シールドヒット、「ミス・ストーム」。
WAF/bot Manager:課題/ブロック、ASN/国、ログイン/デポジットのFPRを共有します。
ゲームプロバイダ:studioによるテーブル/スロットの開始時間、失敗/タイムアウト。
PSP: メソッド/カントリー/BINによる成功率/レイテンシー、3DS/AVSエラーコード、Webhookの成功と遅延。
10)警報および義務
ルーティング:Alertmanager→PagerDuty/Opsgenie/Slack。
ルール:症状(SLO)+因果(リソース)。
アンチノイズ:グループ化、チェーンアラートの抑制、解放のための沈黙の窓。
CDのSLOゲート:違反の自動一時停止/ロールバック(Argo Rollouts/Flagger AnalysisRun)。
アラートの例(簡略化):- 'login_success_ratio <99。10分のための9%'
- 'p95/payment/deposit> 0。10mのための4s'
- 'db_connections_saturation> 0。5mのための85'
- 'kafka_consumer_lag> 30'
- 'cdn_hit_ratio drop> 15% in 10m(地域ごと)'
11)本当に役立つダッシュボード
沈殿物の流れ:漏斗、p95/p99、 PSP/BIN/countryの間違い、webhookの遅れ。
ライブゲーム/WS:接続、RTT、再接続/再接続、プロバイダによるエラー。
APIの健全性:ルート、彩度、トップスローエンドポイント↔トレースによるRED。
DRパネル:レプリケーションラグ、WAL配送、DR領域からの合成ログイン/デポジット。
セキュリティ:WAF、ボットスコア、401/403異常、署名されたwebhooks。
12)テレメトリーコスト管理
メトリクスのカーディナリティ:ラベルに'user_id'、 'route'と'provider'の制限は含まない。
ダウンサンプリングと保持クラス(ホット7-14日、暖かい30-90、冷たいアーカイブ)。
ログ:イベントジャンプ-サンプリング/デッドアップを有効にします。stacktraceを別々に保存します。
トレース:「高価な」パス(支払い/結論)に沿った動的サンプリング。
13)監視におけるセキュリティとプライバシー
エージェントからコレクターへのmTLS;at-rest暗号化。
'user_pid'の仮名化、ログ内の電子メール/電話/文書の禁止。
RBAC/MFAの監査のためのWORM;サードパーティの監視プロバイダとのDPA。
14) CI/CDおよび自動ロールバックとの統合
CD分析のためのプロム指標としてのSLIへの露出。
metrics/logs/tracesでラベル('version'、 'rollout_step')をリリースします。
自動カナリアゲート:降下は緑色のSLOのみで継続されます。
15)速い開始積み重ね(参照)
コレクション/トランスポート:OTEL Collector+Prometheus/VM Agent+Fluent Bit。
ストレージ:VictoriaMetrics/Thanos(メトリック)、Loki/OpenSearch(ログ)、Tempo/Jaeger(トレイル)。
可視化:Grafana+既製ダッシュボードk8s/Envoy/Postgres。
&RUM合成:Checkly/k6+Grafana RUM(または商業相当)。
アラート:Alertmanager→PagerDuty/Slack;参照のrunbooks。
16)実装チェックリスト(prod-ready)
- ログイン/デポジット/入札/出力用に定義されたSLO/SLI。
- RED/USE+Business SLIメトリクス;単一のラベルのオントロジー。
- JSONは'trace_id'、 PIIマスキング、監査用のWORMでログを記録します。
- OpenTelemetryエンドツーエンド;100%エラーサンプリング。
- 主要地域からの合成物+販売中のRUM。
- ダッシュボード「flow deposit」 「WS」 「API health」 「DRA」
- 警告:SLO症状+リソースの原因;アンチノイズ。
- SLOゲートはCDに接続されています。自動ロールバック。
- コストプラン:保持/サンプリング/カーディナリティ。
- DPA/セキュリティ: mTLS、 RBAC、ログプライバシー。
履歴書のサマリー
強力な監視は「美しいグラフ」のセットではなく、一貫したシステムです。RED/USEメトリック、'trace_id'、 OpenTelemetryトレース、合成、RUM、ダッシュボード、アラート、SLOゲートがCI/CDに組み込まれています。オープンスタンダードを中心にスタックを構築し、テレメトリーのコストを制御し、ラベルのオントロジーを標準化します。その後、APIとインフラストラクチャの問題は事前に表示され、プレーヤーに気づかれる前に修復されます。
