Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bizarre... vous avez dit bizarre - Paris Monitoring meetup #2

989 views

Published on

Présentation de Renaud Bauvin, Dev Lead de l'équipe Monitoring Criteo lors du Paris Monitoring meetup #2

"Le talk discutera d'approches de détection d'anomalie implémentées chez Criteo et des leçons que nous en avons tirées pour définir des exigences pour notre système de Monitoring as a Service."

Published in: Software
  • Login to see the comments

  • Be the first to like this

Bizarre... vous avez dit bizarre - Paris Monitoring meetup #2

  1. 1. Copyright © 2014 Criteo Bizarre… vous avez dit bizarre? Détection d’anomalie @ Criteo Renaud Bauvin DevLead Monitoring r.bauvin@criteo.com
  2. 2. 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 
  3. 3. 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
  4. 4. 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
  5. 5. Copyright © 2014 Criteo Visualisation
  6. 6. 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
  7. 7. 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
  8. 8. Copyright © 2014 Criteo Visualisation
  9. 9. 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
  10. 10. 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
  11. 11. Copyright © 2014 Criteo Questions? …au fait, je vous ai déjà dit que Criteo recrutait?

×