SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Monitoring
BBL Kyriba
Vendredi 29 Novembre
Sommaire
Principes
Monitoring
Dashboard
Alerting
Conclusion
Intervenant
Olivier Bazoud @obazoud
Developpeur
Spring-*/JEE, DevOps, Node.js
Scala bientôt ;)
Co-auteur de “Spring Batch in Action”
Et vous ?
Principes
Principes
Comment se comporte mon application en
production ?
Comment analyser les problèmes ?
Comment anticiper le “capacity planning” de la
plate forme ?
Principes
● Business
○ nombre de virements, de connexions, workflow

● Application
○ consommation mémoire, temps de traitement

● Systèmes
○ load, swap, interface réseau
Principes
Partager les informations
● Dev
● Ops
● PO
● Direction
Principes
“Si ce n’est pas monitoré, ça ne va pas en
production!”
“Si tu ne peux pas le mesurer, tu ne peux pas l’
améliorer!”
“Metric Driven Development”
Monitoring
Graphite
“Graphite is an enterprise-scale monitoring tool
that runs well on cheap hardware.”
Graphite
Permet de
1. Stocker les “numeric time-series”
2. Visualiser des graphes
N’est pas un collecteur de données
Graphite
Mode Push
Stockage fichiers
URL API: graphes, json, csv
Fonctions
Graphite

http://graphite.readthedocs.org/en/latest/who-is-using.html
Graphite
whisper

Ecr
it

en p
ytho

n

carbon (cache/relay/ aggregation)
graphite-web
Graphite
visualise
metric

lire dans le
cache

cache

Carbon

Graphite Web

whisper

whisper

collecteurs
écrire

lire

FS
Carbon
“The plaintext protocol”
echo "local.my.metric 123.45 `date +%s`" | nc localhost 2003

“The pickle protocol”
[(path, (timestamp, value)), ...]

AMQP

TCP

UDP
Carbon
cache
aggregator
relay
Carbon cache
Réceptionne les métriques
Stockage en mémoire
○ Si le cache est tué, perte des métrics du cache

Ecriture sur disque via whisper
Carbon aggregator
Calcul des aggrégations de métriques
○ avg, min, max, pourcentile, ...

Réduction des I/O
Carbon relay
Réplication
➔ Basé sur des règles
“Sharding”
➔ “Consistent hashing”
➔ “Scale horizontally”

Carbon
Relay

Carbon
Cache

Carbon
Cache

Carbon
Cache
Carbon
● MAX_CACHE_SIZE
○ Taille du cache

● MAX_CREATES_PER_MINUTE
○ Permet de réduire les I/O

● MAX_UPDATES_PER_SECOND
○ Permet de réduire les I/O
Whisper

“Whisper is a fixed-size database (...). It provides fast,
reliable storage of numeric data over time. Whisper allows
for higher resolution (seconds per point) of recent data to
degrade into lower resolutions for long-term retention of
historical data.”

http://graphite.readthedocs.org/en/latest/whisper.html
Whisper
Création à la demande
1 métric = 1 fichier
Métric “dev.ks.load.shortterm”
-> ./dev/ks/load/shortterm.wsp
Whisper
Header + Zones de retention

http://www.aosabook.org/en/graphite.html
Whisper
[carbon]
pattern = ^load.
retentions = 10s:1d,1m:7d,4m:30d
1 point toutes les 10s pendant 1 jour
1 point par minute pendant 7 jours
1 point tous les 4 minutes pendant 30 jours

346

Ko
Whisper
[carbon]
pattern = ^load.
retentions = 10s:1d,30s:7d,5m:30d,15m:1y
1 point toutes les 10s pendant 1 jour
1 point toutes les 30s pendant 7 jours
1 point tous les 4 minutes pendant 30 jours
1 point tous les 15 minutes pendant 1 an

850

Ko
Whisper
[carbon]
pattern = ^load.
retentions = 10s:1d,30s:30d,2m:1y
1 point toutes les 10s pendant 1 jour
1 point toutes les 30s pendant 30 jours
1 point tous les 2 minutes pendant 1 an

4.1 M

o
Whisper
[carbon]
pattern = ^load.
retentions = 10s:15d,30s:180d,1m:3y
1 point toutes les 10s pendant 15 jours
1 point toutes les 30s pendant 180 jours
1 point tous les minutes pendant 3 ans

26 M

o
Whisper
Aggrégations lors changement de rétention:
min
max
sum
avg
Graphite web
Apache / Django
SQLite3 / MySQL
● Options
○ LDAP
○ Memcached
○ Email
Graphite web
➔
➔
➔
➔
➔
➔

Composer des graphes
URL API: PNG, JSON, CSV
Fonctions Aggrégation pré-calculer
Blacklist / Whitelist / Rewrite
Dashboard
Graph templates
Graphite web
Graphite web
Auto Monitoring
Fonctions
Fonctions
Transformer
Combiner
Calculer
~ 90 fonctions
Fonctions
/render/?width=800&height=600&target=dev.
monitoring.load.load.shortterm
/render/?
width=800&height=600&target=nonNegativeDe
rivative(dev.monitoring.load.load.shortterm)
Fonctions
derivative()
integral()
summarize()
sumSeries()
drawAsInifinite()
alias()
…

scale()
nonNegativeDerivative()
timeShift()
nPercentile()
mostDevian
color()
...

https://graphite.readthedocs.org/en/latest/functions.html
Fonctions
alias
color
dashed
constantLine
Fonctions
drawAsInfinite(“events.deploy.back”)
Fonctions
timeShift

http://obfuscurity.com/2012/04/Unhelpful-Graphite-Tip-10
Fonctions
● Pie
Nomenclature des métriques
${env}.${host}.${category..}.[path..].metricName
Exemple
dev.monitoring.load.load.shortterm
Scaling: Retour d’expérience
●
●
●
●
●
●
●

1 VM “graphite” + 25 VMs
~ 22 000 métrics - ~ 9 500 répertoires
~ de 500 à 2000 métrics/VM
~ 300 à 1.1 Go/VM
~ 13 Go global
~ 100 000 points/s
~ 10mn de cache avant écriture
Collectors
Collecteurs
Collectd
(système)

JMXTrans
(application)

KS
Metrics
(business)

Graphite
Collectd
Démon qui recueille périodiquement des
statistiques de performance du système
Ecrit en C
Collectd
Plugins
Load, CPU, Interface,Swap, ...
JMXTrans
Données JMX de la JVM -> Graphite
MBean
Standalone ou Embedded
JMXTrans
Metrics

“Metrics is a Java library which gives you
unparalleled insight into what your code does in
production”
Metrics
● Gauges, Counters, Meters, Histogram,
Timers, HealthCheck
Extensions
➢ Jetty, Logback, Log4j, HttpClient, …
Third Party
➢ Spring, Spring Batch ;)
➢ Akka (en cours)
Statsd
“Simple daemon for easy stats aggregation”
Node.js
Envoi en UDP les données vers Graphite
Logster
“Parse log files, generate metrics for Graphite”
Python / Crontab
Facile
Logster
DIY
Python, Ruby, Node.js, Bash, ...
Oracle, RabbitMQ, JBoss, ...
Dashboard
Graphite
Dashboards War
Graphitus

“A simple, client-side, JSON-based Graphite
logical-dashboard UI built with bootstrap and
underscore.js”
Graphitus
Alerting
Nagios
Pont Nagios - Graphite via l’URL JSON
Nagios
Seyren
Seyren
● Ecrit en Java
● Pull http / Real time
● Alertes
○ Email, PagerDuty
○ HipChat, Hubot, Flowdock, IRCCat
○ PushOver (mobile notifications)
Skyline

“Skyline is a real-time* anomaly detection*
system*”

https://github.com/etsy/skyline
Skyline
Conclusion
Conclusion
Vision des environnements (production)
Mesurer / Visualiser / Améliorer
Partager des métriques / Dashboards
Alertes
Questions ?
Next step: Logs ?
ROTI
Intéressant, j'ai
appris des
choses

Excellent !
Encore !

Bien,
mais
sans
plus

Bof,
j'ai
baillé

J'ai
perdu
mon
temps
Archives
Alternatives ?
Alternatives
Graphite :)
● Ceres storage
○ “Eventually Fixed Size”
○ Moins de place

● Cassandra ?
Alternatives
NewRelic
SAAS, Agent, Trace
Blueflood
Rackspace, Java, Cassandra
Sensu
Monitoring, Alerting, Ruby, Redis, RabbitMQ
https://github.com/monitoringsucks/tool-repos
Alternatives
Ganglia
OpenTSDB
InfluxDB
Time series database, http, cluster (en
cours)
https://github.com/monitoringsucks/tool-repos

Weitere ähnliche Inhalte

Was ist angesagt?

Modern DevOps - kill the bottleneck (part 1/2)
Modern DevOps - kill the bottleneck (part 1/2)Modern DevOps - kill the bottleneck (part 1/2)
Modern DevOps - kill the bottleneck (part 1/2)Loic Ortola
 
Découvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits NuxeoDécouvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits NuxeoNuxeo
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google CloudPierre Coste
 
Big Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostBig Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostAlexander DEJANOVSKI
 
Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Vincent Lepot
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésRomain Hardouin
 
Premiers pas avec Microsoft Azure Search
Premiers pas avec Microsoft Azure SearchPremiers pas avec Microsoft Azure Search
Premiers pas avec Microsoft Azure SearchMCKLMT
 

Was ist angesagt? (8)

Modern DevOps - kill the bottleneck (part 1/2)
Modern DevOps - kill the bottleneck (part 1/2)Modern DevOps - kill the bottleneck (part 1/2)
Modern DevOps - kill the bottleneck (part 1/2)
 
Découvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits NuxeoDécouvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits Nuxeo
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google Cloud
 
Tech Round Table
Tech Round TableTech Round Table
Tech Round Table
 
Big Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostBig Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez Chronopost
 
Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...Comment l’architecture événementielle révolutionne la communication dans le S...
Comment l’architecture événementielle révolutionne la communication dans le S...
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 
Premiers pas avec Microsoft Azure Search
Premiers pas avec Microsoft Azure SearchPremiers pas avec Microsoft Azure Search
Premiers pas avec Microsoft Azure Search
 

Ähnlich wie BBL - Monitoring - kyriba

Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...David Caramelo
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsJoseph Glorieux
 
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB
 
Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6MongoDB
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Jean-Pierre Riehl
 
System Center Operations Manager et Orchestrator : Main dans la main
System Center Operations Manager et Orchestrator : Main dans la mainSystem Center Operations Manager et Orchestrator : Main dans la main
System Center Operations Manager et Orchestrator : Main dans la mainMicrosoft Technet France
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaOlivier BAZOUD
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Sébastien Prunier
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...AZUG FR
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014Benoît de CHATEAUVIEUX
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Bruno Bonnin
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanneDidier Durand
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans AzureJean-Luc Boucho
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 

Ähnlich wie BBL - Monitoring - kyriba (20)

Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
 
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptx
 
Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
 
System Center Operations Manager et Orchestrator : Main dans la main
System Center Operations Manager et Orchestrator : Main dans la mainSystem Center Operations Manager et Orchestrator : Main dans la main
System Center Operations Manager et Orchestrator : Main dans la main
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne2012 02-09-eranea-presentation-jug-lausanne
2012 02-09-eranea-presentation-jug-lausanne
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 

Mehr von Olivier BAZOUD

BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with ChefOlivier BAZOUD
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring BatchOlivier BAZOUD
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011Olivier BAZOUD
 
Breizhjug spring batch 2011
Breizhjug spring batch 2011Breizhjug spring batch 2011
Breizhjug spring batch 2011Olivier BAZOUD
 

Mehr von Olivier BAZOUD (7)

Ippevent Ogury 2016
Ippevent Ogury 2016Ippevent Ogury 2016
Ippevent Ogury 2016
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with Chef
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring Batch
 
Spring Batch Avance
Spring Batch AvanceSpring Batch Avance
Spring Batch Avance
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
 
Breizhjug spring batch 2011
Breizhjug spring batch 2011Breizhjug spring batch 2011
Breizhjug spring batch 2011
 

BBL - Monitoring - kyriba