Surveillance Prométhée d'applications de microservices. Vitaly Levchenko

Décodage du rapport 2016 par Vitaliy Levchenko "Surveillance Prometheus des applications de microservices"


Prometheus, contrairement aux systèmes classiques, facilite la montée en puissance et le maintien de la surveillance de systèmes en évolution rapide et organisés de manière complexe. Je vais parler de l'expérience de mise en œuvre, des pièges et des comportements inattendus, montrer comment configurer rapidement l'ensemble du système, y compris les notifications et les tableaux de bord.



En plus des problèmes classiques de surveillance d'une application monolithique, les microservices créent une multitude de nouveaux maux de tête pour la surveillance. L'emplacement des services change constamment, de nouveaux services apparaissent souvent, les dépendances changent entre eux, les emplois temporaires sont lancés à un endroit aléatoire - le concept d'une configuration stable disparaît. Le concept de production disparaît: dans un même environnement, de nombreuses versions d'un service sont lancées - lors du déploiement, pour différents segments de l'audience, pour les tests, etc. À la vue d'un tel bonheur, les développeurs ont tendance à améliorer rapidement l'application, à créer de nombreuses nouvelles mesures, à tuer constamment les anciennes et, malgré cela, à s'attendre à une surveillance de travail et à des réactions à de nouveaux problèmes.


Prometheus est construit autour de Google Borgmon et résout parfaitement ces problèmes en fournissant des outils pour les mises à jour manuelles automatiques et rapides de la configuration. Un nouveau serveur, un nouveau service, une nouvelle version démarrée, et ils sont déjà connectés à la surveillance. Nous nous sommes arrêtés - ils ne sont pas là, sinon nécessaires. La métrique non pertinente a disparu - l'alerte sait comment vivre avec.


Après ce rapport, vous comprendrez comment Prometheus peut être utilisé sur vos systèmes.




Le rapport selon lequel le monde change et les systèmes de surveillance que nous avons utilisés en grand nombre auparavant ne sont plus adaptés. Il y a des problèmes que la surveillance ne résout pas. Prométhée les résout, nous les utilisons donc. Comme ça:


  • Il a soulevé des problèmes liés aux besoins de l'entreprise.
  • Ils ne maîtrisaient pas du tout la surveillance.
  • Implémenté Prometheus.
  • Cela fonctionne d'une manière ou d'une autre.


. . . .


, , developer. . . .



, , , .



? . . docker. , , , .



, . . , . , , – . ? , – . , production .



– production . production 10 . , continuous delivery. stages. . . .



, . . .


, . , , .


. , – . , - environments – . stage environment, environment, production.


, , . . , 20 , .



. The twelve factor app – Production. , , . – .



, .


. . . , , , . – . . . . , . . , . . .


– . . , , , Graphite, StatsD. , , push based, . .


– , , . . , , .



, , . , . Graphite, . . , 100 000 – . – , 100 000 . – . , 21 . , , , .



production Zabbix - ? . – . . . Zabbix – , . . , .


, . , , Zabbix . Nagios . , , . . . , , - .


, , , . Zabbix . , , Redis. .



, , . InfluxDB . . Graphite, InfluxDB , , .


InfluxDB , . . production. . . , . . .


, . , , . . . (?) . . .


, , , . . . , . . , – . .


Riemann . : « CPU ». CPU – 100 %, 0 %. .


– , CollectD . , . InfluxDB. - , - , - , CollectD , . , , .


InfluxDB , time-series , .



Prometheus. ?


Google, , , Google Borgmom, , Facebook. , , , . . .


, . . production ( , , , ) , . . Prometheus .


. . Prometheus , . .


, . deprecate- . Grafana. Grafana , .


, Prometheus . . . . , 20 000 – . 24- 400 000 . 3 , 1 200 000. .


production . - . , . . , - .



, , , . . . environment. server, . handler . . . Prometheus . , .


, , . , , , . . , . .


? . : « environment , ». .


. - , , . , , , – .



Prometheus , . . , .


. . , 4 . . , . Zookeeper, , … 95 % , 20 100 %. . – . . . , .



- pull metrics push metrics. , pull metrics .



StatsD – Graphite, . StatsD , . . .


, exporter . , , 50 000 . . , , production, .


StatsD exporter Prometheus . StatsD, StatsD, gauge etc, .


push gateway push’. Prometheus. StatsD, push gateway .



. , Prometheus, , . . . , , . . Amazon, Kubernetes, Mesos, Consul . . . , .


, Ansible, . . . - , , , . , Prometheus. reload , .


, . , , . javascript . , . .



. - .


Prometheus . . open source. , Postgres exporter – , . Node exporter, .


, . , . , . .


systemd. .



, . , .


. , . . , , . , , . Prometheus . . . Influx, .


. .



. , - , . , , . – –rm – r <storage path/*. . . , , production. , , .


federation, , federation , .


. . . Prometheus . .


openTSDB . , . openTSDB , , , , Hadoop.



, , , , histogram summary. , .


, , 100 – . 100 300 – . , 300 – . histogram. , … , , , . . . , histogram , . 10 , 10 . - . , recording rules. , , . , .


Summary – . Summary . Summary , . , , , . . , . , 99- , , . . , . .


summary . . . , .


-. . .



? ? , , , :


  • . , , . . , latency , , . 99 % . , , - . . .
  • .
  • .
  • .
  • + .


?


  • . , . . 10 , 10 , 10 , . ( Service Discovery)
  • , . Grafana . , . : « ». 10 . , . . , , .
  • – , . . . . , , , , .
  • – , , , , .
  • , Prometheus . . , Prometheus docker. . . – . . .


! ! Zabbix. , . , . , , Zabbix. environment, ?


. – environment, . ( Kubernetes Service Discovery)


. ., , developer, ? . . environment?


.


environment?


environment. environment. environment. , environment, stable – environment. ( Kubernetes Service Discovery)


, . . . - , , . , - . . . , - , , . , ?


Zabbix production, , . , , , -. full time , . Zabbix, , , 3-4- . 3-4- , Zabbix – . .


, 3 Zabbix?


.


. . developers Prometheus?


.


? ?


.


. environment, - sender, Prometheus .


sender. Prometheus . API http’, . Consul, Prometheus , . .


. , , - Prometheus?


, . .


. docker’, , , , - , . overhead, . . . , ?


?


.


health handler, . , , . , , .


! ! 4 . StatsD, , , . StatsD, Influx’ Telegraf?


, StatsD, Influx.


Ok. , Grafana . , . Go, . , .


open source, .


GitHub , . . federation, ?


, . .


Ok. -?


, .


, . ? ?


. , . 100 000 . , 200 000-300 000. , , , , . Zabbix, . Influx , . . , queries .


?


?


, - , , .


, - . , . . .


All Articles