SlideShare a Scribd company logo
Errors Tracker
Автоматический сбор и обработка
ошибок в Parallels Plesk Panel
Предыстория

•   Plesk – проект с большой базой кода и рядом подсистем
•   Во время разработки и тестирования возникает множество ошибок
•   Ошибки в production и dev/testing окружениях – разные
•   Записывать ошибки вручную – долго
•   Сбор отчетов без участия человека
•   Вариации идеи присутствуют в крупных desktop-системах




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

• Основные узлы
• Требования




                  3
Сервер с Plesk’ом

• Источник ошибок
• Согласие на участие в программе по улучшению качества
• Различные подсистемы – различные отчеты
   •   Строка, файл, стек-трейс для ошибки в веб-интерфейсе
   •   Фрагменты лога для ошибки инсталлятора
• Детальный отчет, подготовленный автоматически
• Расширяемый версионный протокол общения
   •   Возможности постепенного улучшения качества отчетов




                                     4
Коллектор

• Назначение
   •   Собирать отчеты
   •   Быстрое получение и сохранение
   •   Никакой обработки
   •   Балансировка нагрузки
   •   Разделение потока отчетов по окружениям
• Техническая сторона
   •   Два отдельных сервера (в Новосибирске и ДЦ в США)
   •   Серверное ПО: nginx + PHP-FPM + MySQL
   •   Локальный сервер – до 30 тысяч запросов в минуту.
   •   Удаленный сервер – порядка 600 запросов в минуту.




                                     5
Агрегатор

• Назначение
   •   Сбор отчетов с коллекторов в централизованное место
   •   Обработка
   •   Подготовка данных в удобном для веб-интерфейса виде
• Техническая сторона
   •   Скрипт выполняемый по расписанию с определенными интервалами
   •   На данный момент – получение данных по защищенному SSL-
       соединению к MySQL.




                                    6
Веб-интерфейс




• Адрес – http://errors.pp.plesk.ru/
• Необходим человеку для работы (ручного анализа, просмотра
  деталей, поиска)


                               7
Веб-интерфейс
Основные возможности

• Просмотр различных списков отчетов (уникальные, последние,
  отфильтрованные) и деталей по ним.
• Поиск с возможностью фильтрации и группировки данных.
• Графики, отражающие тренды появления новых ошибок.
• Аналитика («похожие» ошибки, популярные проблемы).
• Получение информации по RSS с возможностью фильтрации
  потока.
• API для поиска ошибок.
• Фильтрация отчетов по окружениям (production/development/all).




                                 8
Веб-интерфейс
Техническая сторона

• Серверное ПО: Apache + Passenger (aka mod_rails) + Ruby on Rails
  + MySQL.
• Ruby on Rails – сосредоточенность на фичах, а не на
  вспомогательном коде.
• Всего около тысячи строчек кода включая CSS и JavaScript.
• Возможен отказ от MySQL в пользу MongoDB.
• Исходный код на Gitorious - http://git.pp.plesk.ru/errors-tracker
• Принимаются предложения по улучшению, но можно попробовать
  улучшить и своими силами.




                                 9
Практика использования

• Проект прошел обкатку в том числе и на production-серверах
• Уже было обработано более 4 миллионов отчетов.
• Проще понять – эксклюзивная или массовая проблема.
• Помощь при расстановке приоритетов для фиксов в обновлениях.
• Массовые проблемы быстро «всплывают» в top.
• Минимизация расстояния по времени «клиент-ошибка-
  разработчик»
• Клиенту не нужно тратить время на заполнения форм.
• Эффект достигается за счет большого количества инсталляций.




                               10
Резюме

• Не единственный, но дополнительный источник полезной
  информации.
• Не тратится время технической поддержки.
• Разработчик получает отчет в неискаженном виде.
• Возможности дальнейшего улучшение аналитики.
• Основная цель – позволить максимально быстро исправлять
  проблемы в продукте.




                               11
Вопросы?




           12

More Related Content

What's hot

Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
Fwdays
 
20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве
Andrew Sovtsov
 
Антон Галицын
Антон ГалицынАнтон Галицын
Антон Галицын
CodeFest
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Аудит веб-приложений
Аудит веб-приложенийАудит веб-приложений
Аудит веб-приложений
Альбина Минуллина
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Positive Hack Days
 
Поиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решенийПоиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решенийaragozin
 
Реализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системРеализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых систем
Ruslan Safin
 
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Yandex
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
Ontico
 
Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"
IT Event
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
Fwdays
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
Maxim Zinal
 
стек сетевых сервисов на базе спо
стек сетевых сервисов на базе спостек сетевых сервисов на базе спо
стек сетевых сервисов на базе споEkaterina Morozova
 
ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.
chester_ds
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
Ontico
 
Виртуальный дата-центр КРОК
Виртуальный дата-центр КРОКВиртуальный дата-центр КРОК
Виртуальный дата-центр КРОК
КРОК
 

What's hot (20)

Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве
 
Антон Галицын
Антон ГалицынАнтон Галицын
Антон Галицын
 
Abf
AbfAbf
Abf
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Аудит веб-приложений
Аудит веб-приложенийАудит веб-приложений
Аудит веб-приложений
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
 
Поиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решенийПоиск на своем сайте, обзор open source решений
Поиск на своем сайте, обзор open source решений
 
Реализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых системРеализация нагруженных и отказоустойчивых систем
Реализация нагруженных и отказоустойчивых систем
 
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
Александр Киракозов "Архитектура загрузчика Яндекс.Диска"
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
 
Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
стек сетевых сервисов на базе спо
стек сетевых сервисов на базе спостек сетевых сервисов на базе спо
стек сетевых сервисов на базе спо
 
ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.ProveIT. ETL как конструктор алгоритмов обработки данных.
ProveIT. ETL как конструктор алгоритмов обработки данных.
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 
Виртуальный дата-центр КРОК
Виртуальный дата-центр КРОКВиртуальный дата-центр КРОК
Виртуальный дата-центр КРОК
 

Viewers also liked

Creating Open Source Projects
Creating Open Source ProjectsCreating Open Source Projects
Creating Open Source ProjectsAlexei Yuzhakov
 
Docker Practical Use Cases
Docker Practical Use CasesDocker Practical Use Cases
Docker Practical Use Cases
Alexei Yuzhakov
 
Plesk CLI Wrapper
Plesk CLI WrapperPlesk CLI Wrapper
Plesk CLI Wrapper
Alexei Yuzhakov
 
Static Sites Generation
Static Sites GenerationStatic Sites Generation
Static Sites Generation
Alexei Yuzhakov
 
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Ontico
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Barry Feldman
 

Viewers also liked (8)

Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Creating Open Source Projects
Creating Open Source ProjectsCreating Open Source Projects
Creating Open Source Projects
 
Docker Practical Use Cases
Docker Practical Use CasesDocker Practical Use Cases
Docker Practical Use Cases
 
Plesk CLI Wrapper
Plesk CLI WrapperPlesk CLI Wrapper
Plesk CLI Wrapper
 
Static Sites Generation
Static Sites GenerationStatic Sites Generation
Static Sites Generation
 
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Similar to Errors Tracker

полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Sergey Xek
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Ontico
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Anton Baranov
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
Ontico
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
Vladd Ev
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Ontico
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
Viacheslav Slinko
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Ontico
 
Development on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir KhramtsovDevelopment on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir Khramtsov
php-user-group-minsk
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
Александр Ежов
 
[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)
[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)
[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)Evgeny Kaziak
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
Валерий Павлович Сысик
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
Ontico
 
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
Expolink
 

Similar to Errors Tracker (20)

Sivko
SivkoSivko
Sivko
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
 
Development on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir KhramtsovDevelopment on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir Khramtsov
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)
[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)
[JAM 1.0] CMS. Обзор. (Alexei Yanochkin)
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
 

Errors Tracker

  • 1. Errors Tracker Автоматический сбор и обработка ошибок в Parallels Plesk Panel
  • 2. Предыстория • Plesk – проект с большой базой кода и рядом подсистем • Во время разработки и тестирования возникает множество ошибок • Ошибки в production и dev/testing окружениях – разные • Записывать ошибки вручную – долго • Сбор отчетов без участия человека • Вариации идеи присутствуют в крупных desktop-системах 2
  • 4. Сервер с Plesk’ом • Источник ошибок • Согласие на участие в программе по улучшению качества • Различные подсистемы – различные отчеты • Строка, файл, стек-трейс для ошибки в веб-интерфейсе • Фрагменты лога для ошибки инсталлятора • Детальный отчет, подготовленный автоматически • Расширяемый версионный протокол общения • Возможности постепенного улучшения качества отчетов 4
  • 5. Коллектор • Назначение • Собирать отчеты • Быстрое получение и сохранение • Никакой обработки • Балансировка нагрузки • Разделение потока отчетов по окружениям • Техническая сторона • Два отдельных сервера (в Новосибирске и ДЦ в США) • Серверное ПО: nginx + PHP-FPM + MySQL • Локальный сервер – до 30 тысяч запросов в минуту. • Удаленный сервер – порядка 600 запросов в минуту. 5
  • 6. Агрегатор • Назначение • Сбор отчетов с коллекторов в централизованное место • Обработка • Подготовка данных в удобном для веб-интерфейса виде • Техническая сторона • Скрипт выполняемый по расписанию с определенными интервалами • На данный момент – получение данных по защищенному SSL- соединению к MySQL. 6
  • 7. Веб-интерфейс • Адрес – http://errors.pp.plesk.ru/ • Необходим человеку для работы (ручного анализа, просмотра деталей, поиска) 7
  • 8. Веб-интерфейс Основные возможности • Просмотр различных списков отчетов (уникальные, последние, отфильтрованные) и деталей по ним. • Поиск с возможностью фильтрации и группировки данных. • Графики, отражающие тренды появления новых ошибок. • Аналитика («похожие» ошибки, популярные проблемы). • Получение информации по RSS с возможностью фильтрации потока. • API для поиска ошибок. • Фильтрация отчетов по окружениям (production/development/all). 8
  • 9. Веб-интерфейс Техническая сторона • Серверное ПО: Apache + Passenger (aka mod_rails) + Ruby on Rails + MySQL. • Ruby on Rails – сосредоточенность на фичах, а не на вспомогательном коде. • Всего около тысячи строчек кода включая CSS и JavaScript. • Возможен отказ от MySQL в пользу MongoDB. • Исходный код на Gitorious - http://git.pp.plesk.ru/errors-tracker • Принимаются предложения по улучшению, но можно попробовать улучшить и своими силами. 9
  • 10. Практика использования • Проект прошел обкатку в том числе и на production-серверах • Уже было обработано более 4 миллионов отчетов. • Проще понять – эксклюзивная или массовая проблема. • Помощь при расстановке приоритетов для фиксов в обновлениях. • Массовые проблемы быстро «всплывают» в top. • Минимизация расстояния по времени «клиент-ошибка- разработчик» • Клиенту не нужно тратить время на заполнения форм. • Эффект достигается за счет большого количества инсталляций. 10
  • 11. Резюме • Не единственный, но дополнительный источник полезной информации. • Не тратится время технической поддержки. • Разработчик получает отчет в неискаженном виде. • Возможности дальнейшего улучшение аналитики. • Основная цель – позволить максимально быстро исправлять проблемы в продукте. 11