
Comment un CTO trouve les requêtes lentes et les corrige avant que Finance n'escalade
NeonEdge est une plateforme iGaming native crypto basée à Tallinn, Estonie, construite autour des jeux de crash prouvablement justes avec le support multi-chaîne sur ETH, Tron, Polygon, et SOL. La plateforme sert approximativement quinze mille utilisateurs actifs mensuels et tourne approximativement 5M$ par semaine en revenus bruts de jeux. C'est une boutique leanly, techniquement ambitieuse — deux ingénieurs possèdent l'infrastructure de données entière — et Priya Desai, CTO et Head of Data, est la personne que tant le produit que finance appellent quand n'importe quoi se déplace plus lentement qu'attendu.
Produits utilisés : Analyse performance requête, Monitor infrastructure, Optimisation coût
20 minutes | temps d'investigation complet
3 | requêtes problématiques identifiées d'une cold start
12x | accélération moyenne après que les optimisations aient été déployées
Défi
Les plaintes sont arrivées dans les mêmes quarante-huit heures, de deux directions différentes. L'équipe de produit a classé un thread Slack disant les rapports d'activité joueur se sentirent sluggish — "parfois vous cliquez et attendez, puis abandonnez." Finance était plus directe : le rapport de réconciliation GGR hebdomadaire avait commencé à s'end-to-end timeout mid-load et le CFO avait eu recours à prendre un screenshot d'une moitié page rendez avant qu'il crashe. Aucun codes d'erreur, aucuns failures évidents — juste la lenteur qui silencieusement avait traversé d'agaçant à cassé.
Le kit de diagnostic standard de Priya pour ce genre de problème n'était pas rapide. La traçage de latence requête sur une pile de données multi-chaîne signifiait corréler les logs de trois services séparés, vérifier l'utilisation de ressource de cluster manuellement, et reconstruire quel transformation en amont ajoutait le temps à quel rapport en aval. Sur un bon jour avec les logs droits déjà surfacés, cela prenait deux à trois heures. Sur un mauvais jour — le genre où la requête lente seulement apparaît sous la charge — cela pouvait s'étirer pour un après-midi entier.
Le problème structurel était que la pile de données de NeonEdge avait grandi organiquement. Les décisions d'ingénierie précoces — sensées à cinq mille MAU — n'avaient pas été revisitées alors que la plateforme traversait quinze mille. Personne n'avait fait une choice délibérée de passer les indexes ou écrire un scan de table dans un rapport core; cela avait juste happ endu, graduellement, tandis que l'équipe était concentrée sur les features de l'expédition plutôt que d'auditer les modèles d'accès aux données.
"Nous sommes une équipe de données deux-personnes tournant l'infrastructure pour quinze mille utilisateurs et cinq millions par semaine en GGR. Je n'ai pas le luxe de passer une journée entière à chasser une requête lente. J'ai besoin du goulot d'étranglement sur mon écran en vingt minutes, ou le problème s'assied jusqu'au sprint prochain."
— Priya Desai, CTO, NeonEdge
Solution
Priya a ouvert Gaming Mind AI et a décrit le symptôme en termes simples : les rapports sont lents partout, personne ne sait quelle requête est le culprit, et le problème a escaladé pendant deux jours. Gaming Mind s'est connecté à la télémétrie d'infrastructure de NeonEdge et a commencé avec la question diagnostique la plus directe — quelles requêtes consomment le plus temps d'exécution sur la pile en ce moment.
Voici comment l'investigation s'est dépliée :
Priya : "Les rapports sont lents partout. Où devrais-je regarder d'abord?"
| Rang | Nom de requête | Temps exécution moy | Temps p99 | Runs/jour | Appelant | % du temps requête total |
|---|---|---|---|---|---|---|
| 1 | Rapport réconciliation GGR | 41,2 sec | 68,4 sec | 4 | Finance | 24% |
| 2 | Rapport activité joueur | 31,0 sec | 54,1 sec | 8 | Produit | 22% |
| 3 | Rapport cohorte joueur | 28,3 sec | 47,6 sec | 6 | Produit / CRM | 12% |
| 4 | Attribution revenu affilié | 5,8 sec | 11,2 sec | 12 | Marketing | 4% |
| 5 | Résumé utilisateur actif quotidien | 5,1 sec | 9,7 sec | 24 | Ops | 4% |
| 6 | Réconciliation settlement chaîne | 4,9 sec | 9,1 sec | 6 | Finance | 3% |
| 7 | Rafraîchissement score risque churn | 4,4 sec | 8,3 sec | 2 | CRM | 2% |
| 8 | Snapshot solde wallet | 3,8 sec | 7,2 sec | 48 | Ops | 2% |
| 9 | Rapport utilisation bonus | 3,2 sec | 6,4 sec | 4 | Produit | 1% |
| 10 | Entonnoir enregistrements nouveaux | 2,9 sec | 5,8 sec | 24 | Marketing | 1% |
| (tous autres) | — | < 2,0 sec | < 4,0 sec | — | Divers | 25% |
| Top 3 total | ~100 sec combiné | 58% | ||||
| Top 10 total | 71% |
⚠️ Gaming Mind flags : Les 3 requêtes top représentent 58% du temps total d'exécution requête. La distribution est frappamment inégale — les requêtes 1–3 font la moyenne 28–41 secondes chacun tandis que requêtes 4–10 font la moyenne sous 6 secondes combinées. Fixer les 3 top réduit le temps requête total par une 58% estimée sans toucher rien d'autre.
La première réponse de Gaming Mind était un leaderboard latence classé couvrant les sept jours antérieurs d'exécution requête. Les dix requêtes les plus lentes représentaient 71% du temps total d'exécution requête, mais la distribution était frappamment inégale — les trois pires contrevenants faisaient la moyenne 28 à 41 secondes chacun, tandis que les numéros quatre à dix faisaient la moyenne sous six secondes combinées. Gaming Mind a signalé les trois meilleurs comme les seuls valant la peine d'investiguer immédiatement : les fixer réduiraient le temps requête total par une 58% estimée sans toucher rien d'autre. Priya avait son point de départ en sous quatre-vingt-dix secondes.
Priya : "Dites-moi à propos de la plus lente."
Requête : Rapport réconciliation GGR
| Stade | Opération | Lignes scannées | Lignes output | Temps stade | Temps cumulatif |
|---|---|---|---|---|---|
| 1 | Scan table entière — transaction_ledger | 84 200 000 | 84 200 000 | 28,4 sec | 28,4 sec |
| 2 | Filtre : enregistrements cette semaine | 84 200 000 | 312 400 | 6,1 sec | 34,5 sec |
| 3 | Jointure : métadonnées chaîne | 312 400 | 312 400 | 2,8 sec | 37,3 sec |
| 4 | Agrégation : GGR par chaîne + type jeu | 312 400 | 48 | 1,9 sec | 39,2 sec |
| 5 | Format output | 48 | 48 | 2,0 sec | 41,2 sec |
| Diagnostique | Détail |
|---|---|
| Plage date de données scannée | Lancement plateforme (18 mois) à présent |
| Plage date requise | Semaine courante seulement |
| Filtre date appliqué avant scan | Non |
| Classification de modèle d'accès | Scan historique non-filtré |
| Sévérité | 🔴 Haute — antipattern de performance connue dans les architectures ledger append-heavy |
| Root cause | Prédicat WHERE date manquant avant scan de table — décision design de 18 mois ago jamais revisitée |
⚠️ Gaming Mind flags : Le rapport réconciliation GGR — l'requête exacte que Finance s'était plainte de — fait un scan de table entière sur 18 mois d'historique de transaction pour répondre à une question qui a seulement besoin de la semaine courante. L'application d'un filtre de date avant le scan est la fix unique requise. C'est la root cause du timeout CFO de Finance.
La pire requête était le rapport réconciliation GGR — exactement ce que Finance avait plainte de. Gaming Mind l'a décomposée stade par stade : un scan de table entière touchait chaque lignerow dans le ledger de transaction, incluant les enregistrements historiques s'étendant au lancement de plateforme, chaque seule fois que le rapport s'exécutait. La requête n'avait aucun filtre date appliqué avant le scan, ce qui signifiait qu'elle traitait dix-huit mois d'historique de transaction pour répondre à une question qui avait seulement besoin de la semaine courante. Gaming Mind classifiait cela comme une accès à gravité haute et l'étiquetait un scan historique non-filtré — un antipattern de performance connue dans les architectures append-heavy ledger. La root cause était une décision de design de dix-huit mois ago que personne n'avait revisitée.
Résultats
Investigation complétée en 20 minutes d'une cold start
Priya n'avait aucuns tableaux de bord pré-construits pour la performance requête et aucun incident ouvert à tracer depuis. Gaming Mind a tiré la télémétrie, classé les contrevenants, et a produit une liste de fix ordonnée-par-déploiement en une conversation unique. Zéro fichiers log ouvert, zéro tickets support classés, zéro ingénieurs pousés d'autre travail.
Trois root causes identifiées à travers trois types problème différent
Chaque requête lente avait une cause structurellement distinct — un scan historique non-filtré, un ordre de jointure suboptimal, et un index composite manquant. Gaming Mind a diagnostiqué tous trois et expliqué chacun en termes simples Priya pouvait communiquer directement à l'équipe d'ingénierie sans traduction. L'investigation a surfacé les problèmes qui avaient accumulé pendant des mois, pas juste les symptômes rapportés sur les quarante-huit heures précédentes.
Accélération 12x moyen après que les fixes aient été déployées
L'index composite s'est mis en direct le même après-midi. La réécriture de jointure a passé les tests staging by end-of-day et a été déployée le matin suivant. La fix scan de table a été coordonnée avec Finance et déployée le prochain fenêtre de maintenance. Après les trois changements, le temps moyen de génération rapport est tombé de quarante-cinq secondes à trois secondes et quarante-deux secondes — une amélioration douze-fois mesurée contre la télémétrie propre de la plateforme.
Risque de stabilité cluster éliminé avant qu'il ne devienne un incident
Le plafond d'utilisation mémoire — qui silencieusement poussait 89% durant les runs requête concurrent — est tombé à 34% après les fixes. Les trois événements cascade qui s'étaient produits sur les dix jours précédents étaient le signe d'avertissement précoce d'un cluster qui approchait la failure sous la charge. Gaming Mind l'a surfacé de l'analyse heatmap de ressource; sans lui, l'incident suivant aurait probablement été un outage rapport entier durant une session weekend haute-trafic.
Coût compute mensuel projeté pour tomber par 60% pour le rapport réconciliation
Le module Cost Optimization a signalé l'admissibilité post-fix du rapport réconciliation GGR pour le caching pré-computation. L'équipe de Priya a implémenté la couche caching deux semaines après les fixes initiales, et la facture d'infrastructure du mois suivant pour ce workload de rapport s'est venue à trente-huit pour cent de la baseline avant — légèrement mieux qu'estimé.
"Le cluster était trois mauvais dimanches loin d'un vrai outage et nous ne le savions pas. L'investigation de performance a trouvé les requêtes lentes, mais la heatmap de ressource a trouvé le risque de stabilité. C'est la part qui réellement m'a effrayé — et la part je suis le plus heureux nous avons attrapée avant qu'elle ne nous attrape."
— Priya Desai, CTO, NeonEdge
Read in another language
Want to see how Gaming Mind AI can help your operation?
Get a Demo