как понять где тормозит твое приложение в реальном времени? как не потеряться в океане метрик и собрать на дашборде только нужные? видео https://youtu.be/JgezdgtoNG8
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Badoo Development
Доклад с Zabbix Meetup.
Рассказали про:
• Сколько инстансов используем, зачем, какая конфигурация и нагрузка, какие дополнительные тулзы используем.
• Деплой скриптов/конфигов/обновлении.
• Флоу появления новых сущностей в мониторинге: хостов, проверок, графиков в заббикс. Самописный дискавери (серверов, сервисов): почему свой и что он умеет.
• Штуки для удобства: нотификации на рабочий стол, быстрая навигация по графикам.
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
Огромная часть работы службы эксплуатации, так или иначе, связана с мониторингом существующей инфраструктуры.
Если система мониторинга настроена хорошо, она позволяет сократить время простоя, какие-то проблемы показать на ранней стадии, формализовать рабочие процессы команды админов.
То есть она является носителем знания о нашей инфраструктуре и о том, как именно работают админы.
Можно ли извлечь дополнительную пользу из этого?
В hh.ru мы используем систему мониторинга ещё и как check list для повседневных задач админов (алерты в данном случае являются задачами для человека: сделал задачу - триггер проверил результат и погас), идея взята из TDD.
Также расскажу, как мы работаем с внештатными ситуациями: реагируем на алерты, чиним, разбираем и классифицируем.
Еще на основе разобранных инцидентов мы считаем показатели работы службы эксплуатации, из этих показателей высчитываются наши премии (данный KPI получился удачным: с ним согласен и бизнес и админы).
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
В докладе на примере системы метапоиска aviasales будет рассмотрен переход от монолитной архитектуры RoR приложения к многозвенной системе внутренней разработки на базе tornado/python в целях ослабления зависимостей между подсистемами, упрощения контроля за потоком данных и изоляции потенциальных аварийных ситуаций.
Будут рассмотрены побочные эффекты этого перехода, такие как устойчивость к пиковым нагрузкам, упрощение схемы выкатки обновлений и сокращение потребляемых машинных ресурсов.
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Badoo Development
Доклад с Zabbix Meetup.
Рассказали про:
• Сколько инстансов используем, зачем, какая конфигурация и нагрузка, какие дополнительные тулзы используем.
• Деплой скриптов/конфигов/обновлении.
• Флоу появления новых сущностей в мониторинге: хостов, проверок, графиков в заббикс. Самописный дискавери (серверов, сервисов): почему свой и что он умеет.
• Штуки для удобства: нотификации на рабочий стол, быстрая навигация по графикам.
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
Огромная часть работы службы эксплуатации, так или иначе, связана с мониторингом существующей инфраструктуры.
Если система мониторинга настроена хорошо, она позволяет сократить время простоя, какие-то проблемы показать на ранней стадии, формализовать рабочие процессы команды админов.
То есть она является носителем знания о нашей инфраструктуре и о том, как именно работают админы.
Можно ли извлечь дополнительную пользу из этого?
В hh.ru мы используем систему мониторинга ещё и как check list для повседневных задач админов (алерты в данном случае являются задачами для человека: сделал задачу - триггер проверил результат и погас), идея взята из TDD.
Также расскажу, как мы работаем с внештатными ситуациями: реагируем на алерты, чиним, разбираем и классифицируем.
Еще на основе разобранных инцидентов мы считаем показатели работы службы эксплуатации, из этих показателей высчитываются наши премии (данный KPI получился удачным: с ним согласен и бизнес и админы).
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
В докладе на примере системы метапоиска aviasales будет рассмотрен переход от монолитной архитектуры RoR приложения к многозвенной системе внутренней разработки на базе tornado/python в целях ослабления зависимостей между подсистемами, упрощения контроля за потоком данных и изоляции потенциальных аварийных ситуаций.
Будут рассмотрены побочные эффекты этого перехода, такие как устойчивость к пиковым нагрузкам, упрощение схемы выкатки обновлений и сокращение потребляемых машинных ресурсов.
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Ontico
Широко распространено мнение, что SQL СУБД обречены быть медлительными и неповоротливыми, поскольку несут груз совместимости с предыдущими версиями. Это расхожее мнение широко эксплуатируется маркетингом NoSQL СУБД. Однако, это не всегда действительно так.
Разработка в Open Source сообществе позволяет продукту развиваться достаточно гибко, чтобы отвечать требованиям времени. В MySQL и PostgreSQL – самых популярных Open Source СУБД – недавно были проведены оптимизации для работы на больших серверах, что позволило им выполнять более миллиона SQL-запросов в секунду на одном экземпляре БД.
В данном докладе будут рассмотрены конкретные оптимизации, которые позволили добиться таких результатов, которые раньше могли бы показаться фантастическими. И можно сказать, что Open Source СУБД вошли в эру миллионов запросов в секунду.
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
Доклад про:
– развитие архитектуры этой системы, как менялись и как будут меняться требования к такого рода системам
– анализ подходящих под эту систему БД, с их проблемами, и опытом реальной эксплуатации
– почему мы остановились на MongoDB, со всеми минусами и плюсами
– немного про команду, трудозатраты и поддержку
– как мы используем эту систему и как она помогает растить наши продукты
Архитектура поиска в Avito / Андрей Смирнов (Avito)Ontico
Из доклада вы узнаете о том, как в Avito используется Sphinx search, почему было выбрано это решение, какие подводные камни встретились на пути, и как их преодолеть.
Андрей поделится практическим опытом настройки и оптимизации Sphinx search, который позволяет добиться стабильной работы кластера и высокой скорости индексации и поиска. В Avito Sphinx индексирует 35 млн. объявлений каждые 7 минут!
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Ontico
Популярность постгреса в мире и России растет, с каждым новым релизом появляется все новая и новая функциональность, постгрес становится реальной угрозой монополии Оракл, уже подвинул Монго на поле свободных NoSQL СУБД, однако мировое сообщество ждет решения для горизонтального масштабирования. Создание постгресового кластера является крайне трудной задачей, так как постгрес является базой данных, ориентированной на целостность данных, а используемый алгоритм обеспечения конкурентности транзакций ставит серьезные челленджи перед разработчиками алгоритмов распределенных транзакций.
Оказывается, уже целых пять групп работает над этой задачей, и мы расскажем про их подходы, трудности, в том числе, и политические. Отдельно остановимся на российском опыте и нашем вкладе в решение этой задачи.
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Badoo Development
О чем доклад:
- Как в нашем проекте устроен Zabbix, применяемые нами способы автоматизации, собственные методы "дискавери" серверов и сервисов. Плюс как правильно держать Zabbix под высокой нагрузкой и не упираться в ресурсы серверов.
- Для чего мы используем Pinba, какие именно метрики помогают нам узнать о реальных проблемах пользователей.
- Как мы храним графики в RRD. Мониторинг этих графиков: User activity monitoring.
- Zabbix -> RRD => Capacity Planning.
Как быстро найти слабые места среди кластеров в десятки и сотни нод.
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...Ontico
Доклад о новинках нового релиза PostgreSQL можно сделать экстремально скучным: взять release-notes и зачитать вслух. Но 9.5 обещает быть очень интересным релизом как с точки зрения улучшения производительности, так и функциональности - было бы жалко сделать о нем плохой доклад. Поэтому я выбрал несколько важных и нужных фич и расскажу про каждую - как она устроена, на что влияет и, главное, как ей разумно воспользоваться - максимум практических аспектов, минимум маркетинга. Без этого минимума нельзя, иначе мне никак не поделиться своим взглядом на то, как сейчас развивается PostgreSQL, и как жить пользователям Postgres'а при такой стратегии развития.
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Ontico
Управление миллионами метрик таит в себе множество сложностей. Это вопросы автоматизации, масштабируемости, интеграции с другими системами и многое другое. Хочется максимально всё автоматизировать — один раз настроил и забыл. Возможно ли это?
Я подробно расскажу о накопленном практическом опыте использования Zabbix в самых жестоких условиях различных сценариев, расскажу на реальных примерах о том, как справиться с мониторингом тысяч удалённых точек, как не заблудиться в десятках миллионов триггеров и осилить динамические среды. Тут и о производительности нужно серьёзно задуматься.
Zabbix обладает целым набором функциональности, которая позволяет упростить жизнь отдела мониторинга. Конечно, подробности можно найти в документации, только не всегда понятно, как это правильно использовать.
Цель доклада — поделиться практическим опытом, это бесценно!
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
RethinkDB - это распределенное документо-ориентированное хранилище данных с открытым исходным кодом. Данная система ориентирована на разработку систем обработки данных реального времени, позволяя клиентскому приложению подписываться на изменение тех или иных данных.
В данном докладе я бы хотел осветить не только вопросы разработки приложений на базе RethinkDB, но и поговорить о том, как все это работает. Мы поговорим о ReQL (язык запросов), “changefeeds”, индексах, шардинге, репликациях, а также затронем вопросы особенностей проектирования баз данных под данную платформу.
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
История развития проекта с точки зрения клиентских технологий - от веб-сайта к появлению мобильных клиентов и смещению фокуса к mobile-first разработке. Общие черты нашей архитектуры и их отличия от стандартных решений.
Единый протокол общения с приложениями iOS/Android/WindowsMobile/MobileWeb/Web и особенности реализации для JavaScript платформ (десктопные и мобильные браузеры).
Изменение процесса разработки и подходов к реализации нового функционала для переключения на mobile-first стратегию.
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
Performance is one of the key factors in determining a product's user experience. It is very important that the site loads quickly, is responsive and interactive, and the content remains stable.
I want to share why you need to monitor application performance, talk about Web Vitals metrics and tools for measuring them.
I also want to tell you about examples of optimizations that can positively affect performance and what results it can bring.
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Ontico
Широко распространено мнение, что SQL СУБД обречены быть медлительными и неповоротливыми, поскольку несут груз совместимости с предыдущими версиями. Это расхожее мнение широко эксплуатируется маркетингом NoSQL СУБД. Однако, это не всегда действительно так.
Разработка в Open Source сообществе позволяет продукту развиваться достаточно гибко, чтобы отвечать требованиям времени. В MySQL и PostgreSQL – самых популярных Open Source СУБД – недавно были проведены оптимизации для работы на больших серверах, что позволило им выполнять более миллиона SQL-запросов в секунду на одном экземпляре БД.
В данном докладе будут рассмотрены конкретные оптимизации, которые позволили добиться таких результатов, которые раньше могли бы показаться фантастическими. И можно сказать, что Open Source СУБД вошли в эру миллионов запросов в секунду.
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
Доклад про:
– развитие архитектуры этой системы, как менялись и как будут меняться требования к такого рода системам
– анализ подходящих под эту систему БД, с их проблемами, и опытом реальной эксплуатации
– почему мы остановились на MongoDB, со всеми минусами и плюсами
– немного про команду, трудозатраты и поддержку
– как мы используем эту систему и как она помогает растить наши продукты
Архитектура поиска в Avito / Андрей Смирнов (Avito)Ontico
Из доклада вы узнаете о том, как в Avito используется Sphinx search, почему было выбрано это решение, какие подводные камни встретились на пути, и как их преодолеть.
Андрей поделится практическим опытом настройки и оптимизации Sphinx search, который позволяет добиться стабильной работы кластера и высокой скорости индексации и поиска. В Avito Sphinx индексирует 35 млн. объявлений каждые 7 минут!
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Ontico
Популярность постгреса в мире и России растет, с каждым новым релизом появляется все новая и новая функциональность, постгрес становится реальной угрозой монополии Оракл, уже подвинул Монго на поле свободных NoSQL СУБД, однако мировое сообщество ждет решения для горизонтального масштабирования. Создание постгресового кластера является крайне трудной задачей, так как постгрес является базой данных, ориентированной на целостность данных, а используемый алгоритм обеспечения конкурентности транзакций ставит серьезные челленджи перед разработчиками алгоритмов распределенных транзакций.
Оказывается, уже целых пять групп работает над этой задачей, и мы расскажем про их подходы, трудности, в том числе, и политические. Отдельно остановимся на российском опыте и нашем вкладе в решение этой задачи.
Доклад Ильи Аблеева на DevOps Meetup "Мониторинг высоконагруженного проекта".Badoo Development
О чем доклад:
- Как в нашем проекте устроен Zabbix, применяемые нами способы автоматизации, собственные методы "дискавери" серверов и сервисов. Плюс как правильно держать Zabbix под высокой нагрузкой и не упираться в ресурсы серверов.
- Для чего мы используем Pinba, какие именно метрики помогают нам узнать о реальных проблемах пользователей.
- Как мы храним графики в RRD. Мониторинг этих графиков: User activity monitoring.
- Zabbix -> RRD => Capacity Planning.
Как быстро найти слабые места среди кластеров в десятки и сотни нод.
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...Ontico
Доклад о новинках нового релиза PostgreSQL можно сделать экстремально скучным: взять release-notes и зачитать вслух. Но 9.5 обещает быть очень интересным релизом как с точки зрения улучшения производительности, так и функциональности - было бы жалко сделать о нем плохой доклад. Поэтому я выбрал несколько важных и нужных фич и расскажу про каждую - как она устроена, на что влияет и, главное, как ей разумно воспользоваться - максимум практических аспектов, минимум маркетинга. Без этого минимума нельзя, иначе мне никак не поделиться своим взглядом на то, как сейчас развивается PostgreSQL, и как жить пользователям Postgres'а при такой стратегии развития.
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Ontico
Управление миллионами метрик таит в себе множество сложностей. Это вопросы автоматизации, масштабируемости, интеграции с другими системами и многое другое. Хочется максимально всё автоматизировать — один раз настроил и забыл. Возможно ли это?
Я подробно расскажу о накопленном практическом опыте использования Zabbix в самых жестоких условиях различных сценариев, расскажу на реальных примерах о том, как справиться с мониторингом тысяч удалённых точек, как не заблудиться в десятках миллионов триггеров и осилить динамические среды. Тут и о производительности нужно серьёзно задуматься.
Zabbix обладает целым набором функциональности, которая позволяет упростить жизнь отдела мониторинга. Конечно, подробности можно найти в документации, только не всегда понятно, как это правильно использовать.
Цель доклада — поделиться практическим опытом, это бесценно!
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
RethinkDB - это распределенное документо-ориентированное хранилище данных с открытым исходным кодом. Данная система ориентирована на разработку систем обработки данных реального времени, позволяя клиентскому приложению подписываться на изменение тех или иных данных.
В данном докладе я бы хотел осветить не только вопросы разработки приложений на базе RethinkDB, но и поговорить о том, как все это работает. Мы поговорим о ReQL (язык запросов), “changefeeds”, индексах, шардинге, репликациях, а также затронем вопросы особенностей проектирования баз данных под данную платформу.
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Pavel Dovbush
История развития проекта с точки зрения клиентских технологий - от веб-сайта к появлению мобильных клиентов и смещению фокуса к mobile-first разработке. Общие черты нашей архитектуры и их отличия от стандартных решений.
Единый протокол общения с приложениями iOS/Android/WindowsMobile/MobileWeb/Web и особенности реализации для JavaScript платформ (десктопные и мобильные браузеры).
Изменение процесса разработки и подходов к реализации нового функционала для переключения на mobile-first стратегию.
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
Performance is one of the key factors in determining a product's user experience. It is very important that the site loads quickly, is responsive and interactive, and the content remains stable.
I want to share why you need to monitor application performance, talk about Web Vitals metrics and tools for measuring them.
I also want to tell you about examples of optimizations that can positively affect performance and what results it can bring.
Семинар по Node.js в КПИ 20 октября 2014. Докладчики: Тимур Шемсединов, Никита Савченко, Максим Петренко. Краткое содержание:
* Что такое Node.js и как работает JavaScript в V8
* Профессионалы расскажут, почему они выбрали Node.js
* Вы узнаете его сильные и слабые стороны и где его лучше применять
* Будет полный обзор особеностей и внутреннего строения Node.js
* Примеры внедрения и Highload-проекты
* Вопросы развертывания, хостинг, тестирования, и отладки
* Где и что учить, что читать, как осваивать
Применение фреймворка GStreamer в системе видеонаблюденияcorehard_by
Я хочу рассказать о фреймворке GStreamer, который предназначен для обработки аудио/видеоданных. А также для чего мы его использовали в одном из наших проектов.
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
Исторически сложилось так, что одни люди разрабатывают приложения (Dev), а другие эксплуатируют их в продакшне (Ops). И у последних есть немало проблем с тем, что невозможно понять, что происходит.
Причем это касается как собственных разработок, так и популярных open source решений.
Я расскажу, как устроена диагностика у некоторых популярных софтин:
- nginx
- postgresql
- mongodb
Мы попробуем разобраться, что там сделано хорошо, и чего не хватает для полного счастья.
Во второй части доклада мы поговорим про то, как нужно инструментировать собственное приложение для прозрачной работы в продакшне:
- что считать и зачем: ошибки, тайминги, разные состояния приложения,
- инструментарий: your_lang-metrics, your_lang-statsd-client, логи,
- как не перемудрить и не убить прод диагностикой.
Может показаться, что этот доклад про DevOps, но нет - про docker не будет ни слова :)
Привет, Санкт-Петербург!
В разгар летнего сезона, мы поговорим об историях обновлений,
например, с 6.4 до 7.х, с разными трюками, а также об истории исследования разных регрессий на продуктах Atlassian и других плагинов.
Наша программа будет пополняться, и мы рады к сотрудничеству.
Ждем Вас на встрече в Яндекс Деньгах.
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
См. тезисы - http://rootconf.ru/2015/abstracts/1746
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
Прежде всего, мы постараемся сделать доклад не сравнением feature-листов, а рассмотреть особенности практического применения разных систем для конкретной задачи - для сайта, который не должен падать (а точнее - для возможности оперативно отреагировать на аварию, понять что к ней привело, и как можно ее исправить).
Максим рассказал о проекте, где около 3500 запросов нужно было проверять вручную, и пояснил, почему команда выбрала именно Postman для автоматизации процесса:
1. Возможность бесплатного использования.
2. Быстрый переход от ручного к автоматизированному тестированию (около 3-х дней).
3. Легкий способ передачи коллекций среди сотрудников.
4. Поддержка большого количества аутентификаций.
5. Запускается на большинстве известных ОС.
Познакомились с интерфейсом приложения, рассмотрели основные функциональные блоки: коллекции, адрес запроса, окружение, ответ.
Максим дал практические советы для более эффективного ручного тестирования (использование переменных в окружении, переменных url и body, тестов в запросах), полуавтоматического тестирования (collection runner) и автоматического тестирования (Newman Postman+Jenkins).
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
О докладе:
Про Python и Django: зачем нужна красота и простота перфекционистам с дедлайнами, на примере Яндекс.Погоды.
Когда число сервисов, которые делаются в Яндексе, стало возрастать, дедлайны — поджимать, а от процесса разработки требовалось стать более гибким, возникла потребность в свежих решениях. В докладе на примере Яндекс.Погоды рассказывается, как в Яндексе делают сервисы с помощью языка Python и веб-фреймворка Django.
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеKaspersky
Александр Коротин, Специалист по анализу защищенности в «Лаборатории Касперского», в своем докладе рассказывает об особенностях безопасности систем управления турбинами в электроэнергетике.
Подробнее о конференции: https://kas.pr/kicsconf2021
Леонид Васильев "Python в инфраструктуре поиска"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Леонид Васильев "Python в инфраструктуре поиска"
О докладе:
Описание архитектуры и реализации внутренних инструментов для управления поисковым кластером.
Что такое инфраструктура поиска? Какие задачи приходится решать? Какие инструменты для управления кластером используются в поиске? Как они устроены изнутри? Что можно посоветовать проектам с большой инфраструктурой? Какие существуют open-source аналоги?
2. Коротно о себе
Занимаюсь web программированием с 1999 года
Работал в Badoo, LinguaLeo и много где еще ;)
В настоящий момент работаю в http://melesta-games.com
Текущий проект небольшой
150-200 rps, 1 сервер, 300kb JSON на запрос ;)
Но мы активно РАСТЕМ
3. Виды мониторинга в web проектах
● Мониторинг программной и аппаратной
инфраструктуры (Zabbix, Icinga, Munin)
● Мониторинг пользовательской активности
(Google Analytics Alerts, внутренняя аналитика)
● Функциональный мониторинг
(Zabbix+Selenium+BrowserMob, site24x7.com)
● Мониторинг производительности приложения
(graphite, grafana, influxdb, pinba, statsd, datadoghq,
NewRelic) - НАШ ВЫБОР ;)
4. Мониторинг производительности приложения
это:● Измерение и анализ времени на обработку запроса и
различных его частей на application серверах
● Измерение и анализ времени загрузки страниц и ajax
запросов в браузере (на клиенте)
● Измерение потребления системных ресурсов (Disk,
Network, RAM, CPU) на application серверах в рамках
приложения
● Мониторинг кол-ва и аггрегация по типам ошибок,
возникающих при обработке запросов
5. Цели и особенности мониторинга производительности:
● Отвечает на вопрос какие именно участки кода
тормозят, но не отвечает на вопрос ПОЧЕМУ
● Помогает понять, какое влияние на скорость
обработки запросов оказывает то или иное изменение
в коде
● Помогает принять быстрое решение в случае
«выкатили новый релиз и все вкорячило»
6. Инструменты для сбора и анализа данных (1 из 3)
● Время исполнения на клиенте: https://github.com/dpp-
name/jinba - сбор метрик
● Время исполения на сервере:
https://github.com/johnnoone/pynba - сбор метрик
http://statsd.readthedocs.org - сбор метрик
http://pinba.org/, https://bitbucket.org/bloodjazman/pinba2graphite -
аггрегация метрик
https://github.com/github/brubeck - аггрегация метрик
http://influxdb.org/ - хранение метрик
http://graphite.readthedocs.org - хранение метрик
http://grafana.org/ - визуализация
http://github.com/urbanairship/tessera - визуализация
7. Инструменты для сбора и анализа данных (2 из 3)
● Системные метрики и сервисы
(PostgreSQL, redis, rabbit etc)
https://github.com/python-diamond/Diamond
● Ошибки во время исполнения
https://github.com/getsentry/sentry
● Детекторы аномалий
http://github.com/etsy/oculus, https://github.com/etsy/skyline
https://github.com/nathanielc/morgoth, https://github.com/eleme/bell.js
● Оповещения
https://github.com/klen/graphite-beacon
8. Инструменты для сбора и анализа данных (3 из 3)
● SaaS (все в одном)
http://newrelic.com/application-monitoring/pricing
https://www.datadoghq.com/pricing/ (хороший free пакет)
http://okmeter.io/
http://www.appdynamics.com/pricing/
● SaaS Детекторы аномалий
https://anomaly.io/pricing/ (не пробовал, потому что дорого :)
http://t.onthe.io (не пробовал, непонятно как работает)
11. Что такое “гистограмма распределения”
1)t = time.time()
timer = time.time()-t # время ms
2)отправляем таймер на “сервер статистики” (с
названием и с тегами)
3)Один раз за период (1 минута)
аггрегируем ЧАСТОТУ срабатывания таймера
(сколько раз было)
по ПЕРИОДУ (1 минута),
по “категориям значений” (<0.1s, 0.1-0.2s, 0.2-
0.5s, 0.5s-1s, >1s)
4)строим график
15. Провокационное мнение
На самом деле этих трех графиков
ДОСТАТОЧНО ;)
для понимания где “тормоза”
в проекте
в котором от 1 до 10 серверов
16.
17.
18. Метрики PYNBA в python коде cyclone - монитор
https://gist.github.com/Slach/00c86b1341f738bc9dd5
Класс мониторинга реализован в виде MixIn, который подмешивается во все
классы контроллеров
Перед началом обработки запроса Mixin создает экземпляр кастомного
класса наследуемого от pynba.ScriptMonitor
После завершения, получает статус ответа и размер отосланных данных
Отсылает protobuf по UDP на PINBA сервер
19. Метрики PYNBA в python коде cyclone -
контроллер
class SetProfileHandler(CustomPynbaMonitoringMixin,
cyclone.web.RequestHandler):
@defer.inlineCallbacks
def post(self):
with self.pynba.timer(state='parse_request'):
parsed_request = service.unpack_request(self.request)
...
with self.pynba.timer(state='save_profile_data'):
yield profile.save_to_keyvalue(profile_data)
20. Метрики PYNBA в python коде - flask - монитор
https://gist.github.com/Slach/0cfdcc99711869d1764e
Добавляется старт pynba.utils.ScriptMonitor в функции с декораторами
@app.before_first_request, @app.before_request
И отсылка UDP protobuf пакета в фукнции с декораторами
@app.after_request, @app.teardown_request
21. Метрики PYNBA в python коде - flask - контроллер
@app.route('/test_action/', methods=['POST'])
def test_action():
with app.pynba.timer(state='flask_timer_global'):
# do something with database
data = {'var': 'All OK'}
status = 200
# вложенный таймер
with app.pynba.timer(state ='flask_generate_response'):
resp_string = app.render(data, 'template.html')
response = flask.Response(response=resp_string, status=status,
mimetype='text/html')
22. Недостатки pynba + pinba
В cyclone код асинхронный, значит в python процессе одновременно
существует несколько RequestHandler и соответсвенно необходимо
оборачивать “библиотечный” код в контект сразу в коде контоллера,
либо пробрасывать self.pynba через параметры внутрь библиотечного кода
Сложно анализировать ситуацию если есть вложенные куски кода, которые
нужно померить отдельными таймерами
23. Как поставить pinba1.1 + mysql5.6 в Ubuntu
Рецепт на fabric
https://gist.github.com/Slach/d61acbd153ea6d3e6c2b
24. Метрики statsd в python
pip install dogstatsd-python
import statsd
self.statsd = statsd.DogStatsd()
t = time.time()
# do something …
self.statsd.histogram(‘metric_name’,time.time() - t, tags={‘script’:self.request.uri’})
25. Недостатки statsd + python
● 1 метрика = 1 UDP пакет (можно отложить через pipeline)
● Нет нормальной python реализации histogram через
декораторы и контексты в pystatd (надо дописать ;)
● Нет глобального понятия “request” (надо делать замер
глобальной метрики), brubek реализация сервера не
поддерживает теги, надо включать их в название метрики
26. Дополнительные замечания
● При оценке времени не смотрите в МИНИМУМ (в идеале он должен
стремиться к нулю ;) или в СРЕДНЕЕ
● Смотрите «распределение по гистограмме»
● мы используем 0.2, 0.5, 1.0, 2.0 sec для СКРИПТОВ
● и 0.1, 0.2, 0.5, 1.0s для ТЕГОВ
● Для оценки качественных изменений, лучше смотреть перцентили (50%
и 90%)
● Снижение количества обращений к серверу может такой же хорошей
оптимизацией как и уменьшение времени работы отдельного URL