Outils de surveillance des API et de l'infrastructure
1) Principes : des objectifs aux outils
SLO-first : choisissez et personnalisez les outils pour les objectifs de produits (login, dépôt, mise) et non l'inverse.
Open standards : OpenTelemetry (tracks/métriques/logs), Prometheus exposition format, Loki JSON logs.
Contexte unique : 'trace _ id '/' span _ id' dans les logs et les métriques ; links « dushbord → trace → loge ».
Cost-aware : cardinalité des métriques, TTL des loges, sampling des trajets - à l'avance.
2) Métriques : collecte, stockage, visualisation
Сбор: Prometheus / Agent-режим (VictoriaMetrics Agent, Grafana Agent, OpenTelemetry Collector).
Stockage (TSDB) : Prometheus (single), Thanos/Cortex/Mimir (mise à l'échelle horizontale), VictoriaMetrics (économies de CPU/RAM).
Visualisation : Grafana comme un « panneau de verre ».
Que mesurer pour l'API (RED) et l'infrastructure (USE) :- RED: `rate(requests)`, `error_ratio`, `latency p95/p99` по `route`, `method`, `provider`.
- USE: CPU/Mem, file descriptors, connection pools, queue lag, GC pauses.
- k8s: kube-state-metrics, node-exporter, cAdvisor, ingress/gateway exporters.
- БД/кэши: postgres_exporter, mysql_exporter, redis_exporter, kafka_exporter, rabbitmq_exporter.
- Service mash : Envoy metrics, istio/Linkerd dashboards.
- PSP/внешние: custom exporters (webhook success, PSP success ratio, callback latency).
promql
Succès des dépôts (SLI)
sum(rate(ig_payments_requests_total{route="/payments/deposit",status=~"2.."}[5m]))
/
sum(rate(ig_payments_requests_total{route="/payments/deposit"}[5m]))
p95 latency API histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))
Saturation du pool de connexions OBD db_connections_in_use/ db_connections_max3) Logs : recherche, corrélation, invariabilité
Pile : OpenSearch/Elasticsearch + Beats/Vector/Fluent Bit ou Grafana Loki (moins cher à stocker, « log-comment-stream »).
Format : JSON avec les champs standard 'ts, level, service, bou, trace_id, user_pid, route, status, latency_ms'.
Pratiques : camouflage des IPI, bacs WORM pour l'audit, politiques TTL/ILM, partitionnement par « bou/région/marque ».
4) Trace : où les millisecondes sont perdues
Стек: OpenTelemetry SDK/Collector → Jaeger/Tempo/Honeycomb/New Relic Traces.
Stratégie d'échantillonnage : 100 % d'erreurs, adaptation pour les requêtes « lentes », 1-5 % réussies.
Теги iGaming: `provider`, `psp`, `risk_decision`, `bonus_id`, `market`, `ws_table_id`.
Recette rapide de débâcle : à partir du graphique rouge SLO → la trace de l'itinéraire problématique → le « gros » span sur PSP/fournisseur de jeux → le journal Web.
5) plates-formes APM : quand « tout-en-un »
Les solutions commerciales (Datadog, New Relic, Dynatrace, Grafana Cloud) ferment APM, logs, trajets, synthétiques, RUM.
Avantages : vitesse de mise en œuvre, corrélation hors de la boîte. Inconvénients : coût/vendeur-lock.
Hybride : noyau sur OSS (Prometheus + Grafana + Tempo + Loki), « docking » synthétique/alerting avec des modules commerciaux sur le flou critique.
6) Synthétique et RUM : « dehors » et « yeux du joueur »
Синтетика: Checkly, Grafana Synthetic Monitoring, k6 Cloud, Uptrends, Pingdom, Catchpoint, ThousandEyes.
Scripts : login → dépôt (sandbox) → le lancement du jeu → la vérification du webhook.
Geo : EU/LatAm/MEA/APAC, réseaux mobiles, mélange ASN.
RUM : Web-SDK (TTFB/LCP/CLS), SDK mobiles ; segmentation par pays/réseau/dispositif.
7) Kubernetes-surfaces de surveillance
Control plane: etcd, API-server (apiserver_request_total, latency), scheduler/controllermanager.
Data plane: kubelet, CNI, ingress/gateway; `PodDisruptionBudget` и эвикшены.
Auto Skale : HPA/VPA/Cluster Autoscaler métriques et événements ; les pools de warm.
Stratégies réseau : drops/deny events, DNS latency.
8) Bases de données, files d'attente, caches
Postgres/MySQL : réplication lag, deadlocks, blog, WAL, checkpoint duration, temporisation.
Kafka/RabbitMQ: consumer lag, rebalances, queue depth, redeliveries.
Redis : événements, clients bloqués, percentiles de latence, réplique-lag.
PITR/backaps : tâches backup-operators + dashboard « délai de récupération ».
9) Réseau, CDN, WAF, fournisseurs de jeux et PSP
CDN/Edge : hit-ratio, TTFB par région, shield hit, « tempête des ratés ».
WAF/bot manager : partager challenges/blocs, ASN/pays, FPR sur login/dépôt.
Jeux providers : heure de démarrage de la table/slot, échec/temporisation par studio.
PSP : success ratio/latency par méthode/pays/BIN, codes d'erreur 3DS/AVS, webhooks success & delay.
10) Alerte et service
Itinérance : Alertmanager → PagerDuty/Opsgenie/Slack.
Règles : symptomatiques (SLO) + causales (ressources).
Antishum : regroupement, suppression des alertes en chaîne, fenêtres de silence sur la libération.
Gates SLO en CD : auto-pause/retour en cas de violation (Argo Rollouts/Flagger AnalysisRun).
Exemples d'alertes (simplifiés) :- `login_success_ratio < 99. 9% for 10m`
- `p95 /payments/deposit > 0. 4s for 10m`
- `db_connections_saturation > 0. 85 for 5m`
- `kafka_consumer_lag > 30s`
- `cdn_hit_ratio drop > 15% in 10m (per region)`
11) Dashboards qui aident vraiment
Dépôt de flou : entonnoir, p95/p99, erreurs PSP/BIN/pays, retard de webhooks.
Jeux en direct/WS : connexions, RTT, resend/reconnect, erreurs par fournisseur.
La santé API : RED selon les itinéraires, saturations, top slow endpoints ↔ трейс.
Tableau de bord : replication lag, navigation WAL, connexion synthétique/dépôt de la région DR.
Sécurité : WAF, bot score, 401/403 anomalies signées webhooks.
12) Gestion du coût de la télémétrie
Cardinalité des métriques : n'incluez pas 'user _ id'dans les labels, les limites sur' route 'et' provider '.
Downsampling et cours de retraite (chaud 7-14 jours, chaud 30-90, archives froides).
Logs : sursaut d'événements - activer l'échantillonnage/déduplication ; gardez le stacktrace séparément.
Traces : sampling dynamique sur les voies « chères » (paiements/conclusions).
13) Sécurité et vie privée dans la surveillance
mTLS des agents aux collecteurs ; cryptage at-rest.
Pseudonyme 'user _ pid', interdiction de l'e-mail/téléphone/documents dans les logs.
RBAC/MFA, WORM pour l'audit ; DPA avec des fournisseurs de surveillance tiers.
14) Intégration avec CI/CD et retour automatique
L'exposition SLI est une mesure pour les analyses CD.
Release labels ('version', 'rollout _ step') en métriques/logs/trajets.
Gates canaries automatiques : La déflagration ne se poursuivra que sous SLO vert.
15) Démarrage rapide (référence)
Collecte/transport : OTEL Collector + Prometheus/VM Agent + Bit Fluent.
Stockage : VictoriaMetrics/Thanos (métriques), Loki/OpenSearch (logs), Tempo/Jaeger (trajets).
Visualisation : Grafana + dashboards prêts à l'emploi k8s/Envoy/Postgres.
Synthétique & RUM : Checkly/k6 + Grafana RUM (ou équivalent commercial).
Alerting : Alertmanager → PagerDuty/Slack ; runbooks dans les liens.
16) Chèque de mise en œuvre (prod-ready)
- Défini par SLO/SLI pour login/dépôt/taux/retrait.
- Métriques RED/USE + Business SLI ; ontologie unifiée des labels.
- Logs JSON avec 'trace _ id', masque PII, WORM pour l'audit.
- OpenTelemetry end-to-end; Sample des erreurs 100 %.
- Synthétiques des régions clés + RUM en vente.
- Dashboards « dépôt flow », « WS », « API santé », « DR ».
- Alerte : Symptômes SLO + causes de ressources ; l'antichum.
- Les gates SLO sont connectées au CD ; Retour automatique.
- Plan de coût : rétention/échantillonnage/cardinalité.
- DPA/sécurité : mTLS, RBAC, vie privée des logs.
Résumé
La surveillance forte n'est pas un ensemble de « beaux graphiques », mais un système cohérent : des métriques RED/USE, des logs avec 'trace _ id', des tracés OpenTelemetry, des synthétiques et des RUM, plus des dashboards, des alertes et des gates SLO intégrés dans votre CI/CD. Rassemblez la pile autour des standards ouverts, contrôlez le coût de la télémétrie et normalisez l'ontologie des labels - alors tout problème d'API et d'infrastructure sera visible à l'avance et réparé avant que les joueurs ne les remarquent.
