31
Prometheus мониторинг микросервисных приложений v 1.3 Виталий Левченко

Prometheus мониторинг микросервисных приложений / Виталий Левченко

  • Upload
    ontico

  • View
    433

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Prometheusмониторинг микросервисных приложений

v 1.3

Виталий Левченко

Page 2: Prometheus мониторинг микросервисных приложений / Виталий Левченко

О чём докладSome people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. © Jamie Zawinski

Page 3: Prometheus мониторинг микросервисных приложений / Виталий Левченко

О чём доклад

● Принёс проблемы микросервисы

● Не осилил мониторинг

● Внедрил Prometheus

● Походил по граблям

Page 4: Prometheus мониторинг микросервисных приложений / Виталий Левченко

О себе

● Приношу проблемы

Page 5: Prometheus мониторинг микросервисных приложений / Виталий Левченко

О себе

● Приношу проблемы

● Web developer

● Technology evangelist

Page 6: Prometheus мониторинг микросервисных приложений / Виталий Левченко

ГенезисНе было печали — микросервисы внедряли

Page 7: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Микросервисы

● High availability

● Docker

Page 8: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Микросервисы

● Много похожих сервисов

● Запущены где повезёт

● Упал — не проблема

Page 9: Prometheus мониторинг микросервисных приложений / Виталий Левченко

«Продакшна» не существует

● Continuous delivery

● A/B tests

Page 10: Prometheus мониторинг микросервисных приложений / Виталий Левченко

«Продакшна» не существует

● Трафик идёт куда повезёт

● Перегрузки нужно мониторить

Page 11: Prometheus мониторинг микросервисных приложений / Виталий Левченко

«Продакшна» не существует

● Трафик идёт куда повезёт

● Перегрузки нужно мониторить

● Упал — не проблема

● Быстро убранное не считается упавшим

Page 12: Prometheus мониторинг микросервисных приложений / Виталий Левченко

А проблемы известные

● The twelve factor app (12factor.net)

Page 13: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Хотелки

● Не менять приложение для новых алертов и графиков

● Не менять сборщики

● Мониторить временные задачи

● СМС только когда всё очень плохо, и только тогда

● Keep it simple, stupid!

Page 14: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Решения«У человека должен быть выбор … даже если это выбор между плохим и очень плохим вариантом»

Page 15: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Zabbix, Munin + Nagios

● Всё руками

● Алерты на реконфигурацию

● Агрегация снаружи

Page 16: Prometheus мониторинг микросервисных приложений / Виталий Левченко

CollectD + InfluxDB + Riemann

● Всё так же руками

● Riemann не умеет агрегацию

● CollectD синхронный (!)

● Медленные запросы

Page 17: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Prometheus

● Like Google Borgmon

● Автоконфигурация

● Модульный, Go

● Производительный из коробки

● “Betta than nothing”

Page 18: Prometheus мониторинг микросервисных приложений / Виталий Левченко

PrometheusDavid: Why do you think your people made me?

Charlie Holloway: We made you because we could.

Page 19: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Правильные метрики

● Метки: server, env, handler, error type whatever

● Агрегаты по любым срезам

● Космически быстрая диагностика!

Page 20: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Правильные функции

ALERT DiskWillFillIn4Hours

IF predict_linear(node_filesystem_free{job='node'}[1h], 4*3600) < 0

FOR 5m

LABELS {

severity="page"

}

Page 21: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Pull metrics

● Push хуже масштабируется

● Push поздно сообщает, что упал

● Prometheus в dev

Page 22: Prometheus мониторинг микросервисных приложений / Виталий Левченко

StatsD

● Почти все нестабильны

● Prometheus exporter стабилен!

● Не умеет гистограммы, gauge etc

● Используйте push gateway!

Page 23: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Автоконфигурация

● AWS, Consul, Kubernates, Zookeeper whatever

● Даже из файлов!

● Отдельно автоматизировать дашборды

Page 24: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Сбор метрик с серверов и БД

● Node exporter

● PostgreSQL exporter

● …

● Напишите свой, это просто (Go)

● Use systemd, Luke!

Page 25: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Без агрегации

● Внимательно читайте документацию!

● Метрики сбрасываются при рестарте

● Лучше без этого

Page 26: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Отказоустойчивость

● rm -r <storage path>/* © docs

● Federation

● Сбор в несколько серверов

● Ждём openTSDB

Page 27: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Summary vs histogram

● Гистограммы хороши для SLA

● Саммари умеют квантили, но не агрегацию

● Гистограммы медленные на запросы

● Use recording rules

Page 28: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Что собирать с сервисов

● Входящие и исходящие запросы (latency + count)

● В том числе запросы в БД

● Ошибки

● Активные коннекты (!)

● Метрики производительности + статистика

Page 29: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Итоги Prometheus

● Умеет микросервисы

● Удобный сбор, дашборды, алерты

● Любовь программистов

● Новая боль для админов

● Внедрение от пары часов до пары дней

Page 30: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Вопросы?

Page 31: Prometheus мониторинг микросервисных приложений / Виталий Левченко

Контакты

● Виталий Левченко

[email protected]