Successfully reported this slideshow.
Your SlideShare is downloading. ×

Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и меня посчитал!"

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 33 Ad

Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и меня посчитал!"

Download to read offline

Рассказываем о том, как мы в Badoo собираем статистику для каждого пользователя, обсчитываем каждое открытие страницы (и не только!), обрабатываем 120000 событий в секунду и планируем расширяться.
А также:
- как собирать события с тысяч серверов;
- как правильно распределять их для обработки на несколько серверов;
- как устроена система сбора простых логов и агрегированной статистики в Badoo;
- какие есть перспективы развития системы.

Доклад будет интересен любому человеку, который хочет построить подобную систему распределенного сбора и перераспределения статистики.

Рассказываем о том, как мы в Badoo собираем статистику для каждого пользователя, обсчитываем каждое открытие страницы (и не только!), обрабатываем 120000 событий в секунду и планируем расширяться.
А также:
- как собирать события с тысяч серверов;
- как правильно распределять их для обработки на несколько серверов;
- как устроена система сбора простых логов и агрегированной статистики в Badoo;
- какие есть перспективы развития системы.

Доклад будет интересен любому человеку, который хочет построить подобную систему распределенного сбора и перераспределения статистики.

Advertisement
Advertisement

More Related Content

Slideshows for you (19)

Viewers also liked (20)

Advertisement

Similar to Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и меня посчитал!" (20)

More from Badoo Development (20)

Advertisement

Recently uploaded (20)

Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и меня посчитал!"

  1. 1. StatsCollector, или "Мама! Он и меня посчитал!" Старынин Валерий, Badoo.
  2. 2. В докладе будет рассказано: • как собирать события с тысяч серверов • как правильно распределять их для обработки на несколько серверов • как устроена система сбора простых логов и агрегированной статистики в Badoo • какие есть перспективы развития системы
  3. 3. Badoo это • Социальная сеть для поиска новых друзей • 200 млн. зарегистрированных пользователей • Работаем во всех странах мира • Мобильные приложения под Android, iOS, Windows, BlackBerry. А так же Wap и HTML5 версии • 2,5 датацентра: в Европе, Америке и Азии • Более 3 000 серверов
  4. 4. Событие в статистике - что это такое? • Действия пользователей • Действия модераторов • Действия скриптов • Ошибки • Отчеты о выполнении
  5. 5. Старая система сбора статистики USA Europe
  6. 6. StatsCollector • Структура • Типы данных • Варианты отчетов • Возможности • Мониторинг
  7. 7. Выбираем транспорт. Scribe! • Берет доставку на себя • Умеет перенаправлять куда нужно • Умеет делить потоки • Умеет резервировать • Наши C-шники могут поддерживать
  8. 8. Scribe USA Europe
  9. 9. Глобальные события USA Europe
  10. 10. Локальные события USA Europe
  11. 11. Конфигурация сервера PHP PHP Scribe Scribe-Роутер
  12. 12. Роутер и точка назначения Scribe- роутер Scribe Scribe Scribe Scribe
  13. 13. Релеи Scribe- роутер Scribe- релей Scribe- релей Scribe- релей Scribe- релей Scribe- роутер
  14. 14. События и отчеты • Событие — источник данных • Отчет — результат сбора данных • 1 событие — много отчетов • Типы отчетов (логи, 2 вида агрегации) • Автоматика в базах данных
  15. 15. Отправка события
  16. 16. Конфиг отчета - лога
  17. 17. Отчет - лог ts method platform_id hostname ts_db 2014-06-01 00:00:10 FastEvent 2 scripts15.ulan 2014-06-01 00:00:26 2014-06-01 00:00:22 FastEvent 2 scripts45.ulan 2014-06-01 00:00:48 2014-06-01 00:01:03 FastEvent 1 scripts6.mlan 2014-06-01 00:01:14 2014-06-01 00:01:03 LocalFastEvent 1 scripts6.mlan 2014-06-01 00:01:22 2014-06-01 00:01:10 FastEvent 2 scripts44.ulan 2014-06-01 00:01:39 2014-06-01 00:01:28 FastEvent 1 scripts47.mlan 2014-06-01 00:01:39 2014-06-01 00:01:28 LocalFastEvent 1 scripts47.mlan 2014-06-01 00:01:48 2014-06-01 00:01:33 FastEvent 2 scripts31.ulan 2014-06-01 00:02:05 2014-06-01 00:01:40 FastEvent 2 scripts17.ulan 2014-06-01 00:02:05
  18. 18. Конфиг отчета - статистики
  19. 19. Отчет - статистика ts interface interface2 country_from country_to type count 2011-04-04 12:00:00 comet comet 13 13 read 10933 2011-04-04 13:00:00 comet comet 13 13 read 1698 2011-04-04 12:00:00 comet comet 13 13 send 9637 2011-04-04 13:00:00 comet comet 13 13 send 1168 2011-04-04 12:00:00 comet comet 13 19 read 6 2011-04-04 13:00:00 comet comet 13 19 read 2 2011-04-04 12:00:00 comet comet 13 19 send 3 2011-04-04 13:00:00 comet comet 13 19 send 1 2011-04-04 12:00:00 comet comet 19 13 read 1 2011-04-04 12:00:00 comet comet 19 13 send 1 Primary key
  20. 20. Конфиг отчета multicounter
  21. 21. Отчет - multicounter ts country_id gender partner_id message_photo_ abuse_deleted message_photo_ab use_inappropriate message_photo_ abuse_ spam 2014-04-17 14:31:00 50 2 1 1 0 0 2014-04-17 14:49:00 13 2 1 1 0 0 2014-04-17 15:08:00 13 2 1 0 1 0 2014-04-17 15:11:00 50 1 1 1 0 0 2014-04-17 15:25:00 13 1 1 1 0 0 2014-04-17 15:31:00 50 2 1 1 0 0 2014-04-17 15:34:00 50 1 1 1 0 0 2014-04-17 15:48:00 50 2 1 1 0 0 2014-04-17 15:57:00 50 2 1 2 0 0 2014-04-17 16:02:00 50 1 1 1 0 0 Primary key
  22. 22. Автоматика в БД • В имени таблицы должна быть дата • Таблицу надо не забыть создать • А что, если надо поменять типы/набор данных? • А можно ли подчищать старые данные?
  23. 23. Автоматика в БД - пример
  24. 24. Увеличение объемов данных • Больше пользователей, больше критериев — больше данных! • Разбор данных из файлов — можно распараллелить • Доставка данных в БД — в несколько потоков
  25. 25. А почему все так медленно? • Промежуточная агрегация — теряем 10 минут • Графики нужно строить оперативно • Вообще хочется быстрее!
  26. 26. FastStats • Ускоряем доставку до <30 секунд • Делаем все на файлах • Транзакции и файлы — это реально! • Полностью прозрачный переход к новому
  27. 27. FastStats Scribe
  28. 28. Мониторинг • Работоспособность Scribe'ов • Количество файлов во временных хранилищах • Количество неразобранных файлов • Количество временных таблиц • Количество файлов по отчетам • Скорость вставки в базы
  29. 29. Мониторинг — графики
  30. 30. Мониторинг — скорость
  31. 31. Мониторинг — ошибки
  32. 32. Цифры • 120 000 событий в секунду • Собираем с 3 000 серверов • 300 отчетов • 4 сервера-роутера и 4 сервера для StatsCollector'а
  33. 33. Спасибо за внимание! Вопросы? http://fb.com/BadooMoscow http://vk.com/badoocom http://twitter.com/BadooDev http://habrahabr.ru/company/badoo

×