SlideShare a Scribd company logo
1 of 31
monitoring when no testing
Иван Круглов|08.04.2017
fast reverts visibility
ownership
• 70 роллаутов
в день
• 1000+ активных
экспериментов
Booking Fast Development by Vedran Mikulic
https://2014.codefest.ru/lecture/937
повестка дня
• ключевые метрики
• пожар!
• инструменты оповещения
• инструменты мониторинга
• graphite stack
кол-во броней
ключевые метрики
бюджет на ошибки
пожар!
• начальные коммуникации в jabber
• конференц-связь
▸ единый номер доступный везде
• лидер
▸ координация, оповещение и привлечение нужных ресурсов
• RFO (reason for outage)
▸ В чем причина?
▸ Могли ли мы избежать данного класса ошибок?
▸ Как можно уменьшить ущерб от данного класса ошибок?
▸ Насколько эффективны алерты?
• post-mortem
инструменты оповещения (alerting)
• ddos_detector
▸ events -> ddos_detector
picture by Maxim Vuets
server
server
server
…
events
pipeline
consumer
инструменты оповещения (alerting)
• ddos_detector
▸ events -> ddos_detector
▸ реалтайм анализ трендов
▸ оповещение если что-то где-то идет не так
• nagios
▸ технические алерты
• bosun
picture by Maxim Vuets
инструменты мониторинга
• flog
▸ errors/warnings
▸ grumbles
▸ events -> flog-processor -> ES
flog
aggregated err/warn
инструменты мониторинга
• flog
▸ errors/warnings
▸ grumbles
▸ events -> flog-processor -> ES
• graphite/grafana
▸ миллионы метрик разной природы
▸ несколько источников данных
• kibana
▸ rsyslog -> kafka -> ES
источники данных для graphite
• diamond и др.
▸ системные метрики (/proc, mysql, nginx, uwsgi, др.)
• graphite-processor
▸ events -> graphite-processor -> graphite
▸ метрики специфичные для приложения
▸ доступен для всех
▸ строит “завершенные” графики
• ddos_detector
▸ стандартизованные метрики которым можно доверять
▸ бизнес метрики (распределение по странам, провайдерам, и др.)
▸ технические метрики (pv, error/warning, wallclock percentiles, др.)
▸ задача оставаться realtime
“завершённый” график
realtime график
graphite setup
frontend
• 32 сервера
• 400 RPS
• 40K метрик
backend
• 200 серверов
• 11 Gbps
• 2.5M уникальных метрик в секунду
(10M на сторадже)
• 130 TB метрик
все компоненты заменены!
graphite stack
• проект начат Damian Gryski и Fabian Groffen
▸ в активном развитие
• более подробно:
“Graphite@Scale or How to store millions metrics per second”
https://fosdem.org/2017/schedule/event/graphite_at_scale/
• carbon-relay — SPOF
• данные различаются после
ошибок записи
• время ответа растет линейно
с ростом кол-ва серверов
• сложно масштабировать
Что не так?
carbon-c-relay
• написан на C
• работает с 1М метрик в секунду на 2 ядрах
• L7 LB for graphite line protocol
• может выполнять роль carbon-aggregator
• буферизирует данные если upstream недоступен
carbon-zipper
carbon-zipper
• написан на Go
• carbon-zipper <->
carbon-server =
2700 RPS
• graphite-web <-> carbon-
cache
80 RPS
carbonapi
• можно делать больше сложных запросов
• новые тяжелые математические функции
~0.8 сек
~15 сек
• carbonzipper — github.com/dgryski/carbonzipper
• go-carbon — github.com/lomik/go-carbon
• carbonsearch — github.com/kanatohodets/carbonsearch
• carbonapi — github.com/dgryski/carbonapi
• carbon-c-relay — github.com/grobian/carbon-c-relay
• carbonmem — github.com/dgryski/carbonmem
все в open-source
трюк с graphite №1
• используйте корректные функции агрегации
▸ по умолчанию - среднее
• мы используем следующий способ именования
▸ _sum .sum _count .count
▸ _last .last
▸ max_ _max .max
▸ min_ _min .min
трюк с graphite №2
трюк с graphite №2
• consolidateBy(seriesList, consolidationFunc)
Takes one metric or a wildcard seriesList and a consolidation function name. Valid
function names are ‘sum’, ‘average’, ‘min’, and ‘max’.
When a graph is drawn where width of the graph size in pixels is smaller than the
number of datapoints to be graphed, Graphite consolidates the values to to prevent
line overlap. The consolidateBy() function changes the consolidation function from the
default of ‘average’ to one of ‘sum’, ‘max’, or ‘min’. This is especially useful in sales
graphs, where fractional values make no sense and a ‘sum’ of consolidated values is
appropriate.
&target=consolidateBy(Sales.widgets.largeBlue, 'sum')
&target=consolidateBy(Servers.web01.sda1.free_space, 'max')
Спасибо!
Иван Круглов
Senior Developer
ivan.kruglov@booking.com
https://workingatbooking.com
SRE or Software Developer
disclaimer
• this is my personal view on the available tools at Booking.com
• might be inaccurate and biased
• there might be better way of using them

More Related Content

What's hot

мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Tanya Denisyuk
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Ontico
 
Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Pavel Dovbush
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереBadoo Development
 
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Badoo Development
 
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...Ontico
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеVoximplant
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Badoo Development
 

What's hot (20)

мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
 
Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластере
 
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".
 
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
Microsoft и Linux на одном проекте: как получить лучшее из обоих миров и не р...
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 

Similar to Мониторинг, когда не тестируешь

Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 
DevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компанииDevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компанииAlexey Vakhov
 
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииNikolay Sivko
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsDaniel Podolsky
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Nikolay Sivko
 
История небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQLИстория небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQLdev1ant
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines Sergey Zubkov
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.Alexander Titov
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеBadoo Development
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеYulia Kotova
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Ontico
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюринpgdayrussia
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Yandex
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Yandex
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsPavel Veinik
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013Roman Pavlushko
 

Similar to Мониторинг, когда не тестируешь (20)

Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
DevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компанииDevOps или искусство выживания в растущей компании
DevOps или искусство выживания в растущей компании
 
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
 
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)RTB DSP на языке Go укрощение buzzwords /  Даниил Подольский (Qmobi.Com)
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
История небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQLИстория небольшого успеха с PostgreSQL
История небольшого успеха с PostgreSQL
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines
 
Ryazan
RyazanRyazan
Ryazan
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
Near-realtime аналитика событий в высоконагруженном проекте / Александр Краше...
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
 
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
Дмитрий Куликовский - Построение кластеров, нагрузочное тестирование, capacit...
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 

More from Uptime community

Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...
Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...
Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...Uptime community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Как устроен мониторинг в Badoo
Как устроен мониторинг в BadooКак устроен мониторинг в Badoo
Как устроен мониторинг в BadooUptime community
 
Эффективная техподдержка 24х7: инструкция по применению
Эффективная техподдержка 24х7: инструкция по применениюЭффективная техподдержка 24х7: инструкция по применению
Эффективная техподдержка 24х7: инструкция по применениюUptime community
 
Как обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуляКак обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуляUptime community
 
Стриминг мониторинга
Стриминг мониторингаСтриминг мониторинга
Стриминг мониторингаUptime community
 
Изобретая колесо: как мы писали свой мониторинг
Изобретая колесо: как мы писали свой мониторингИзобретая колесо: как мы писали свой мониторинг
Изобретая колесо: как мы писали свой мониторингUptime community
 

More from Uptime community (7)

Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...
Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...
Евгений Потапов / ITSumma — Менеджмент инцидентов и исследование жизненного ц...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как устроен мониторинг в Badoo
Как устроен мониторинг в BadooКак устроен мониторинг в Badoo
Как устроен мониторинг в Badoo
 
Эффективная техподдержка 24х7: инструкция по применению
Эффективная техподдержка 24х7: инструкция по применениюЭффективная техподдержка 24х7: инструкция по применению
Эффективная техподдержка 24х7: инструкция по применению
 
Как обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуляКак обычно происходит внедрение мониторинга с нуля
Как обычно происходит внедрение мониторинга с нуля
 
Стриминг мониторинга
Стриминг мониторингаСтриминг мониторинга
Стриминг мониторинга
 
Изобретая колесо: как мы писали свой мониторинг
Изобретая колесо: как мы писали свой мониторингИзобретая колесо: как мы писали свой мониторинг
Изобретая колесо: как мы писали свой мониторинг
 

Мониторинг, когда не тестируешь

  • 1. monitoring when no testing Иван Круглов|08.04.2017
  • 2. fast reverts visibility ownership • 70 роллаутов в день • 1000+ активных экспериментов Booking Fast Development by Vedran Mikulic https://2014.codefest.ru/lecture/937
  • 3. повестка дня • ключевые метрики • пожар! • инструменты оповещения • инструменты мониторинга • graphite stack
  • 5. пожар! • начальные коммуникации в jabber • конференц-связь ▸ единый номер доступный везде • лидер ▸ координация, оповещение и привлечение нужных ресурсов • RFO (reason for outage) ▸ В чем причина? ▸ Могли ли мы избежать данного класса ошибок? ▸ Как можно уменьшить ущерб от данного класса ошибок? ▸ Насколько эффективны алерты? • post-mortem
  • 6. инструменты оповещения (alerting) • ddos_detector ▸ events -> ddos_detector picture by Maxim Vuets
  • 8. инструменты оповещения (alerting) • ddos_detector ▸ events -> ddos_detector ▸ реалтайм анализ трендов ▸ оповещение если что-то где-то идет не так • nagios ▸ технические алерты • bosun picture by Maxim Vuets
  • 9. инструменты мониторинга • flog ▸ errors/warnings ▸ grumbles ▸ events -> flog-processor -> ES
  • 11. инструменты мониторинга • flog ▸ errors/warnings ▸ grumbles ▸ events -> flog-processor -> ES • graphite/grafana ▸ миллионы метрик разной природы ▸ несколько источников данных • kibana ▸ rsyslog -> kafka -> ES
  • 12. источники данных для graphite • diamond и др. ▸ системные метрики (/proc, mysql, nginx, uwsgi, др.) • graphite-processor ▸ events -> graphite-processor -> graphite ▸ метрики специфичные для приложения ▸ доступен для всех ▸ строит “завершенные” графики • ddos_detector ▸ стандартизованные метрики которым можно доверять ▸ бизнес метрики (распределение по странам, провайдерам, и др.) ▸ технические метрики (pv, error/warning, wallclock percentiles, др.) ▸ задача оставаться realtime
  • 13.
  • 16. graphite setup frontend • 32 сервера • 400 RPS • 40K метрик backend • 200 серверов • 11 Gbps • 2.5M уникальных метрик в секунду (10M на сторадже) • 130 TB метрик все компоненты заменены!
  • 17. graphite stack • проект начат Damian Gryski и Fabian Groffen ▸ в активном развитие • более подробно: “Graphite@Scale or How to store millions metrics per second” https://fosdem.org/2017/schedule/event/graphite_at_scale/
  • 18.
  • 19. • carbon-relay — SPOF • данные различаются после ошибок записи • время ответа растет линейно с ростом кол-ва серверов • сложно масштабировать Что не так?
  • 20.
  • 21. carbon-c-relay • написан на C • работает с 1М метрик в секунду на 2 ядрах • L7 LB for graphite line protocol • может выполнять роль carbon-aggregator • буферизирует данные если upstream недоступен
  • 23. carbon-zipper • написан на Go • carbon-zipper <-> carbon-server = 2700 RPS • graphite-web <-> carbon- cache 80 RPS
  • 24. carbonapi • можно делать больше сложных запросов • новые тяжелые математические функции ~0.8 сек ~15 сек
  • 25. • carbonzipper — github.com/dgryski/carbonzipper • go-carbon — github.com/lomik/go-carbon • carbonsearch — github.com/kanatohodets/carbonsearch • carbonapi — github.com/dgryski/carbonapi • carbon-c-relay — github.com/grobian/carbon-c-relay • carbonmem — github.com/dgryski/carbonmem все в open-source
  • 26. трюк с graphite №1 • используйте корректные функции агрегации ▸ по умолчанию - среднее • мы используем следующий способ именования ▸ _sum .sum _count .count ▸ _last .last ▸ max_ _max .max ▸ min_ _min .min
  • 29. • consolidateBy(seriesList, consolidationFunc) Takes one metric or a wildcard seriesList and a consolidation function name. Valid function names are ‘sum’, ‘average’, ‘min’, and ‘max’. When a graph is drawn where width of the graph size in pixels is smaller than the number of datapoints to be graphed, Graphite consolidates the values to to prevent line overlap. The consolidateBy() function changes the consolidation function from the default of ‘average’ to one of ‘sum’, ‘max’, or ‘min’. This is especially useful in sales graphs, where fractional values make no sense and a ‘sum’ of consolidated values is appropriate. &target=consolidateBy(Sales.widgets.largeBlue, 'sum') &target=consolidateBy(Servers.web01.sda1.free_space, 'max')
  • 31. disclaimer • this is my personal view on the available tools at Booking.com • might be inaccurate and biased • there might be better way of using them

Editor's Notes

  1. Cover for internal presentations. Tagline format is department name : team name Photo is replaceable, behind the blue filter. Click on photo –> Picture format – Change picture