2. fast reverts visibility
ownership
• 70 роллаутов
в день
• 1000+ активных
экспериментов
Booking Fast Development by Vedran Mikulic
https://2014.codefest.ru/lecture/937
5. пожар!
• начальные коммуникации в jabber
• конференц-связь
▸ единый номер доступный везде
• лидер
▸ координация, оповещение и привлечение нужных ресурсов
• RFO (reason for outage)
▸ В чем причина?
▸ Могли ли мы избежать данного класса ошибок?
▸ Как можно уменьшить ущерб от данного класса ошибок?
▸ Насколько эффективны алерты?
• post-mortem
8. инструменты оповещения (alerting)
• ddos_detector
▸ events -> ddos_detector
▸ реалтайм анализ трендов
▸ оповещение если что-то где-то идет не так
• nagios
▸ технические алерты
• bosun
picture by Maxim Vuets
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
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 недоступен
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
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