bizarre... vous avez dit bizarre - paris monitoring meetup #2
TRANSCRIPT
Copyright © 2014 Criteo
Bizarre… vous avez dit bizarre?Détection d’anomalie @ Criteo
Renaud BauvinDevLead [email protected]
Copyright © 2014 Criteo
La plateforme Criteo en quelques chiffres
• 7 datacenters sur 3 continents• >23k devices, >15k servers• 37 milliards de requêtes HTTP/jour - pic: 2 millions/sec• 3 milliards de bannières uniques servies/jour• Temps de réponse aux enchères: 80ms ou moins, 24/7
• … et bien entendu, il faut monitorer tout ça (206K checks Nagios/5 min)!• … et bien entendu, on recrute pour ça
Copyright © 2014 Criteo
Détection d’anomalie chez Criteo
• 2 contextes d’utilisation:• Pur monitoring• Validation de releases
• Différentes approches explorées• Mesures agglomérées
• Approche historique (prédiction sur base d’un historique long – 2 semaines)• Approche locale (prédiction sur base d’un historique court – 1h)• Approche globale (analyse de la forme des journées)• Approche jointe (corrélation entre 2 métriques différentes)
• Mesures fines par machine• Approche par comparaison
• Dans la suite:• Approches historique et locale dans un contexte de pur monitoring
Copyright © 2014 Criteo
Approche basée sur l’historique
• Principe• ‘Oublier’ la dernière heure du dernier mois et la prédire• Comparer la prédiction à la réalité
• Modèle• ARIMA (2,0,1) avec régresseurs périodiques (voir blog post de Hyndman)• Décompose la série temporelle en
• une tendance,• une période et• quelque chose que l’on espère proche d’un bruit blanc
• Décision• type ‘carte de contrôle’ sur l’erreur résiduelle (e.g. 1 point au-delà de 4)
• Techno• R package ‘Forecast’ appelé depuis un script Python• Matplotlib pour la visualisation
Copyright © 2014 Criteo
Visualisation
Copyright © 2014 Criteo
Leçons
• Conditions• Courbes présentant une composante périodique marquée• Longs historiques• Règles sur plusieurs points
• Avantages• Prédictions réalistes à moyen/long terme
• Attention• Peu intuitif à analyser• Changement d’heures• Un incident dans le passé peut polluer la prédiction• Calcul assez lourd
Copyright © 2014 Criteo
Approche locale
• Principe• ‘Oublier’ les dernières minutes de la dernière heure et les prédire• Comparer la prédiction à la réalité
• Modèles• Gaussien:
• Hypothèse: tous les points sont des tirages d’une même distribution gaussienne• On peut en calculer la moyenne et la variance
• Linéaire:• Hypothèse: les points présentent une tendance linéaire sur la dernière heure• On peut calculer l’équation de cette tendance et en inférer la moyenne et la variance des points à
prédire• Décision
• type ‘carte de contrôle’ sur l’erreur de prédiction• Techno
• script Python utilisant numpy• Matplotlib pour la visualisation
Copyright © 2014 Criteo
Visualisation
Copyright © 2014 Criteo
Leçons
• Conditions• Courbes présentant un comportement lisse
• Avantages• Besoin en historique très limité (et donc effet d’un incident précédent limité)• Très rapide à calculer• Intuitif à analyser
• Attention• Sensibilité à des variations violentes mais récurrente de la courbe (e.g. pic à midi au
Japon)• Ne peut pas prédire à moyen ou long-terme
Copyright © 2014 Criteo
Exigences pour un futur MAAS
• Scalabilité de la partie calcul (comme le reste de l’infra)• Visualisation du côté du client• Self-service
• Liste détaillée des checks supportés et de leur domaine d’application• Guidance pour la sélection/configuration des checks et l’interprétation des résultats• Outil de validation de la configuration (‘Replay on past’)• Seuils différents par utilisateur possibles• Abonnement individuel possible à des alertes existantes
• Moyen de contrôle de la charge
Copyright © 2014 Criteo
Questions?
…au fait, je vous ai déjà dit que Criteo recrutait?