49
1

"Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

  • Upload
    yandex

  • View
    9.423

  • Download
    6

Embed Size (px)

DESCRIPTION

Количество данных, серверов и приложений растёт — нужны новые способы анализа этой информации. В докладе я расскажу о сравнительно новой системе для рисования графиков под названием Graphite. Почему мы выбрали именно её, какие возможности предоставляет эта система. Также я покажу, как собраны наши инсталляции Graphite.

Citation preview

Page 1: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

1

Page 2: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

2

Graphite – как построить миллион графиков

Куликовский Дмитрий

Page 3: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

3

О чем

! Почему графит?

! Архитектура

! Производительность

! Вкусности

Page 4: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

4

В чем проблема?

Проще увидеть один график, чем просмотреть тысячу логов.

Page 5: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

5

Варианты решения

! Zabbix

! Agave

! Munin

! Collectd

! Cacti

! Graphite

Page 6: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

6

Варианты решения

! Zabbix

! Agave

! Munin

! Collectd

! Cacti

! Graphite

Page 7: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

7

Варианты решения

! Zabbix

! Agave

! Munin

! Collectd

! Cacti

! Graphite

Page 8: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

8

Варианты решения

! Zabbix

! Agave

! Munin

! Collectd

! Cacti

! Graphite

Page 9: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

9

Варианты решения

! Zabbix

! Agave

! Munin

! Collectd

! Cacti

! Graphite

Page 10: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

10

Варианты решения

! Zabbix

! Agave

! Munin

! Collectd

! Cacti

! Graphite

Page 11: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

11

А у нас в графите…

! Масштабирование

! Построение отказоустойчивого сервиса

Page 12: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

12

А у нас в графите…

! Простота работы с большими объёмами данных

! Гибкость работы с шаблонами графиков

Page 13: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

13

Тест на разладку hw балансера

Page 14: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

14

Графики сетевой активности p2p

Page 15: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

15

Немного цифр

! 61 requests ❘ 902 KB transferred ❘ 17.54 s

! 6900 метрик выбрано

! 3 преобразования: derivative, scale to seconds, sum

Page 16: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

16

Маловато будет!

! Нестрогий порядок timestamp’ов точек

! Данные в реальном времени

! Внутренняя простота

Page 17: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

17

Page 18: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

18

Маловато будет!

! Нестрогий порядок timestamp’ов точек

! Данные в реальном времени

! Внутренняя простота

Page 19: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

19

Маловато будет!

! Нестрогий порядок timestamp’ов точек

! Данные в реальном времени

! Внутренняя простота

Page 20: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

20

Архитектура графита

Page 21: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

21

Он такой же как и все

! 2 логических части – frontend и backend

! backend на twisted

! frontend на django

Page 22: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

22

Мegacarbon

Page 23: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

23

Мegacarbon

Page 24: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

24

3х слойная масштабируемая архитектура

Page 25: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

25

Многослойная безумная архитектура

Page 26: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

26

Наш вариант

Page 27: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

27

Производительность

Page 28: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

28

Конфигурация машин

! E5-2660

! 64Gb RAM

! 4 x ssd 300Gb в raid10

Page 29: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

29

Whisper

+ фиксированный размер файла + стабильность - один файл для всех данных - очень ресурсоёмкое создание новых метрик

Page 30: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

30

Ceres

+ внутренний механизм кеширования + мгновенное создание новых метрик + rollup идёт отдельным процессом - есть баги - rollup это дорогостоящая операция, которую надо делать

Page 31: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

31

whisper

ceres

Page 32: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

32

Решение проблем с производительностью

! Шардирование

! Распределённая отрисовка графиков

Page 33: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

33

Решение проблем с производительностью

! Шардирование

! Распределённая отрисовка графиков

Page 34: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

34

Вкусности

Page 35: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

35

Источники данных

! Collectd

! Diamond

! Collectl

! Ganglia

Page 36: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

36

Альтернативные интерфейсы - 19 альтернативных веб-интерфейсов для графита

clck.ru/8pjLG

Page 37: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

37

Giraffe

Page 38: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

38

Graph explorer

Page 39: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

39

Graphene

Page 40: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

40

Dashboard ex. 1

Page 41: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

41

Dashboard ex. 2

Page 42: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

42

Dashboard ex. 3

Page 43: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

43

Dashboard ex. 4

Page 44: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

44

Skyline

Page 45: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

45

Наши патчи

! cacti style zoom + fullscreen

! история графика

! свои функции для обработки данных

! дополнительные горячие клавиши

Page 46: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

46

Ссылочки

Форк на гитхабе - clck.ru/8pjLr Инструкция для домохозяек - clck.ru/8pjM3

Page 47: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

47

Выводы

Page 48: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

48

Спасибо за внимание

Page 49: "Graphite — как построить миллион графиков". Дмитрий Куликовский, Яндекс

49

Куликовский Дмитрий Руководитель отдела администрирования рекламных технологий [email protected]