Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
David Benque (Expert Cloud Solution)
Cedric Lamoriniere(Software engineer)
Prometheusun nouvel acteur dans le monde du monitoring
Qui êtes vous ?
Pourquoi monitorer votre infrastructure/applications?
● Savoir quand quelque chose ne va pas
○ Réagir avant d’avoir un “service outage”
● Aider à déboguer et votre application
● Comparer les performances de votre application entre
différentes versions
● Vous aidez dans vos décisions techniques/business
Challenges du monitoring dans un environnement Cloud
● Adaptation à votre topologie dynamique / distribuée
● Découverte des métriques au fil de l’eau
● Cycles de vie cours de vos applications
● Agrégation de plusieurs indicateurs.
Une solution: Prometheus
● Inspiré du système de monitoring Google
Borgmon
● Projet démarré par 2 Ex-Googlers chez
Soundcloud en 2012
● Open-source en 2015
● 2ème projet à joindre la CNCF
Node 2Node 1 Node 3
Service
Service
Service
Service
Service
Prometheus
DB
DB-exporter
User request
Alert-Manager
DashboardGrafana
DevOps
node-exporter
n-e n-e
DemoUtilisation Basic
David Laptop
Demo
Prometheus
RestoService
Grafana
node-exporter
localhost:8080
localhost:8080/metrics
Système de requête PromQL
● Quelle est la latence du 95ème percentile du datacenter A?
● Quelle sera le % d’utilisation du volume dans 4 heures?
● Quels sont les 5 plus gros utilisateurs de CPU?
topk(5,sum by (image)(
rate(container_cpu_usage_seconds_total{id=~"/system.slice/docker.*"}[5m]))
)
Cloud Native intégration
Vos outils sont déjà instrumenté:
● Docker
● Etcd
● Consul
● Kubernetes
● ...
● Exporter pour les autres: Mongodb,
Redis, Kafka, Postgres, MariaDb, JMX, HAProxy,
Nginx….
Endpoints discovery:
● Consul
● Docker Swarm
● Kubernetes
● Mesos
● Your system
Instrumenter votre application:
Clients: Go, Java, Python, C++
DemoService Discovery
Demo
GCE
RestoServiceRestoService
RestoService
Prometheus
K8s-Master
Node-exporter
35.192.43.45:31909
Grafana
Prometheus Operator
Avantages
● Model de donnée & format de requêtes efficaces
● Simple, Fiable et scalable
● Facilement intégrable dans votre application
● Solution d’alerting
Model de donnée efficaces
● Toutes les mesures ont des labels multi-dimensionnelles
● Supporte “double” valeur, "Label" supporte unicode
● Stockage vraiment optimisé: 3.4 bytes par point (>v2.0.0)
● Un serveur support:
○ des millions de metrics
○ centaine de milliers de points par second
Extrement!1.3
DemoScalabilité/Fédération
David Laptop
Demo
Prometheus
RestoService
Grafana
node-exporter
GCEFederation
GCE2
RestoServiceRestoService
RestoService
RestoServiceRestoService
RestoService
Prometheus
Prometheus
K8s-Master
Node-exporter
35.192.43.45:31909
35.193.175.182:30560
Prometheus Alert
alert: <alert_name>expr: <condition>for: 5m labels: severity: critical annotations: summary:<summary> description:<description>
alert: NODE_DISK_FREE_SPACE_ROOT_PARTITION_80 expr: ((node_filesystem_size{fstype="rootfs"}-node_filesystem_avail{fstype="rootfs"})/node_filesystem_size{fstype="rootfs"})*100 > 80 for: 5m labels: severity: critical annotations: summary: Current disk usage on root partition is {{ $value }}% on node {{ $labels.instance }} description: Current disk usage on root partition is {{ $value }}% on node {{ $labels.instance }}
alert: internal_error_rationexpr: http_response{return_code>=500}/http_response{}*100>2for: 5m labels: severity: critical annotations: summary: error ratio to high: {{ $value }}% description: Currently internal error ratio to high: {{ $value }}%
DemoAlerts
Demo Alert: HA configuration
Prometheus
Prometheus
Alert-Manager
Alert-Manager
Alert-Manager
Service
double scrap
dédoublement des alerts
SMS
Slack
Prometheus architecture complète
Storage Exporter
Conseil et Conclusion
● Commencer par instrumenté vos applications FWK.
● Migration: optez pour l’utilisation d’exporter (Nagios…)
● Bien choisir et limiter le nombre de labels
● Collecté que des metrics utiles à la création d’alertes
● Éviter les “flaky” alertes
Sop