Мониторинг Stats.LineClub.RU¶
Название проекта: Мониторинг Stats.LineClub.RU Версия: 3.3
Миссия: Make Software Excellence
Цели: Monitoring, Analytics, Optimization
Ссылка: https://statspy.lineclub.ru
FastAPI: https://statspy.lineclub.ru/docs
Автор - Vlad Ursolov (lodos) @bonumursi
Правообладатель
Выражаем благодарность нашим надёжным партнёрам
КиберРеальность
Сайт: CyberReality
Почта: info@cyberreality.ru
ВистаМед
Сайт: VistaMed
Почта: info@vistamed.ru
Надёжный ДЦ BitWeb.RU
Сайт: BitWeb
Почта: info@bitweb.ru
1C-Битрикс
Сайт: 1C-Битрикс
Почта: info@vistamed.ru
1. О проекте¶
Данный микросервис представляет собой APDEX-систему обработки входящих данных от наблюдаемого программного обеспечения и сервисов. Он интегрируется с системой управления "Битрикс24" (или c любой другой ERP, CRM системой или системами на выбор), а также предоставляет функциональность по анализу, обработке и визуализации данных c помощью Yandex DataLens (или любой другой BI-системой: Tableau, PowerBI. etc.).
Начиная этот проект, была проанализирована работа нескольких крупных, разноплановых ИТ-компаний, находил закономерности, чтобы сделать объективный, удобный, безопасный, надежный, инструмент, который найдёт свою целевую аудиторию:
- тестировщик, разработчик, руководитель проекта получают задачи автоматически, по результатам анализа действующей системы. В задаче указана проблема "до точки" и расширенная информация о запросах. Можно приступать к устранению немедленно! Примеры идентификации ошибки
- управленец экономит время на локализации проблем от момент появления, до момента исправления и доставки обновленного функционала. Более четко планирует время и количество сотрудников
- архитектор ПО получает архитектурную схему наблюдаемого ПО в реальном времени: востребованность функций, нагрузка на модули, активность пользователей, подразделений и многое другое
- руководитель получает объективную картину ситуации, принимает решения, видит болевые точки на "верхнем" уровне, планирует стратегию и бюджет
- инвестор и\или учредитель получают исчерпывающую объективную ситуацию в цифрах и отчетах, в динамике, в различных разрезах и "под разными углами" за произвольный период времени
- пользователь ПО получает заявленный желаемый функционал максимально быстро
- стоимость комплекса мониторинга минимальна
В настоящий момент, сервис предоставляется по модели SaaS.
Возможно подключение коробочной версии в корпоративный контур клиента. Обсуждается отдельно.
Принципиальная схема¶
2. Философия проекта¶
Ни для кого не секрет, что команды разработчиков могут меняться со временем как частично, так и целиком; старые ошибки обрастают новыми. Чем масштабнее ИТ-система - тем выше цена ошибки.
Любое ПО можно усовершенствовать, отладить, оптимизировать и сделать лучше, т.к. предела совершенству нет. Вопрос только в ресурсах. Как правило, более приоритетные задачи меняют наши планы, вытесняют и "смазывают" рутинные операции по чистке и облагораживанию кода. В конечном итоге, ситуация становится неуправляемой и ошибки парализуют работу всех участников. Страдает конечный пользователь, который не может выполнить свою работу. При этом, зачастую, разработчик и не знает о проблеме.
Наша основная задача взять на себя рутинные операции и своевременно информировать клиента о состоянии ПО; об ошибках\отклонения\ от нормы\аномалиях в его системе автоматически. Если событие повторяется N раз, может быть создана автоматическая задача с крайним сроком, согласно SLA, где ответственным является конкретный разработчик этой функции.
Idea Fix проекта заключается в том, что любой пользователь, проверяет всё используемое им ПО "в боевом режиме", просто выполняя свою рутинную работу; не нужны дополнительные тесты, внешние системы и ресурсы для проверки тестов, которые разработчик может не знать и\или предусмотреть. Мы лечим не симптомы, а причину!
Monitoring - Собираем статистику о состоянии наблюдаемого ПО силами наших пользователей
Analytics - Анализируем статистику и обогащаем ее
Optimization - Предлагаем решения к оптимизации и масштабированию. Помогаем в принятии решений
3. Цели¶
Краткосрочная перспектива:
- Улучшить качество наблюдаемого ПО
- Назначить ответственного, команду соисполнителей, наблюдателей, и срок исполнения автоматически, в каждом инциденте
- Ускорить и управлять реакцией разработчиков на проблемы пользователей
- Автоматизировать формирование и доставку отчетов любой сложности
- Минимизировать затраты на внедрение, поддержку, эксплуатацию и масштабирование
- Обеспечить безопасность и целостность данных
Среднесрочная перспектива:
- Монетизация деперсонифицированного трафика в долях, определенных в Договоре-Оферты
4. Безопасность¶
Сервис не собирает, не хранит, не обрабатывает персональные, медицинские, биометрические, равно как и любые другие конфиденциальные данные. Также, исключён любой доступ со стороны Мониторинга к внутренним ИТ-системам, корпоративной и коммерческой тайне наших клиентов.
Наше кредо - только деперсонифицированный трафик с соблюдением всех юридических и этических норм!
Выполнение этого условия достигается с двух сторон. На стороне LC.Мониторинг реализован.
Настоятельно рекомендуем разработчику перед отправкой запроса в Мониторинг проводить аналогичную деперсонификацию у себя в коде, этим самым, исключая возможность отправки конфиденциальной информации!
5. Сфера применения¶
Сфера применения достаточно широка. Если свести все к одной фразе, то LC.Мониторинг возможен онлайн там, где есть доступ к исходному коду, и\или можно выполнить JSON и CURL.
Для коробочной версии даже интернет необязателен!
Серверные системы и кластеры Контроль аппаратно-программных комплексов на Windows, Linux, BSD c помощью систем мониторинга Zabbix, Grafana, etc.
WEB-разработка
Кроссплатформенные WEB-приложения
Десктоп-приложения
Windows, Linux, Mac OS X с помощью CURL и JSON
Мобильная разработка
iOS, Android, Blackberry, WindowsMobile
Любые категории от бизнес-приложений до онлайн-игр, AR, VR, смарт-часов
Видео и 3D-рендер
Контроль рендер-машин дял видео и 3D-моделирования (AfterEffects, FCP, Blender)
Интернет вещей (IoT)
Весь стек технологий и средств разработки, поддерживающий CURL и JSON
Облачные вычисления, Искусственный интеллект (ИИ) и Машинное обучение
Контроль работы всех корпоративных сервисов и приложений в одном месте
Программируемые роботы и Квадрокоптеры
Весь стек технологий и средств разработки, поддерживающий CURL и JSON
Например, поддерживающие Python: LEGO Mindstorms EV3, Sphero RVR, Anki Cozmo и Vector, Ozobot Evo и Bit
Таким образом, мониторингом можно покрыть любой исходный код на любом языке и операционной системе
4. Основополагающие принципы¶
Disclaimer! Просим обратить внимание, что мы не очередной автоматизатор отчетов Яндекс.Метрики и Google.Analytics. И, конечно же, есть могучая Grafana, Zabbix, Sentry и пр., однако, ни одна из этих систем не отвечает текущим запросам в полном объеме. Поэтому, было принято разработать решение на Битрикс24 в качестве корпоративного портала.
Подходы к построению и структурированию архитектуры ПО
Каждая функция архитектурного пути наблюдаемого кода покрывается метками 2 раза, образуя нормальную транзакцию, состоящую из 2-х состояний: start и finish.
Ошибочная транзакция или Инцидент - это транзакция из 2-х состояний, второе состояние которой не finish.
- В момент запуска функции отправляем TYPE_ID=start. Если программист ведет свой учет jobID, то на старт его можно передать. Все последующие операции для этого jobID будут выполняться планово. Если не введет - jobID будет сгенерирован и возвращен. Далее, его необходимо указывать для второго состояния.
- В момент финиша или исключительной ситуации отправляем второе состояние TYPE_ID=finish, TYPE_ID=error, TYPE_ID=token, etc.
Если у транзакции меньше или больше 2-х состояний - она считается аномальной транзакцией
Таким образом, транзакция - это 2 события одного jobID. Данный подход увеличивает трафик, но, мы получаем объективную исчерпывающую информацию о жизнедеятельности ПО: фактическое\среднее время выполнения функций, количество запросов функции за отчетный период (её востребованность), архитектурный путь и нагрузку на архитектурные слои.
Подробнее об этом в Документации разработчика "Структура запроса"
Структуры¶
Обязательный параметр SERVER_KEY
Допустимые типы событий TYPE_ID
¶
5. Подключение к мониторингу¶
Выпуск SERVER_KEY временно выполняется по запросу на почту info@lineclub.ru
6. Внедрение¶
Получите свой SERVER_KEY
Основная задача - внедрить "маяки" LC.Мониторинг в Ваш код. См. Структура -> Запроса, п. 1.1 Прикладной пример транзакции
Практика показывает, что если разработчик достаточно замотивирован, то на покрытие своего кода "маяками" у него уйдет не более 1-2 часов работы в день в течении недели. Согласитесь, это недорого, если взамен получить всю картину жизнедеятельности ПО и аппаратной части в простом, адаптированном для руководителя виде.
7. Поддержка¶
Поддержка осуществляется, согласно SLA
Пользователи делятся на группы:
- Trial - пользователи пробного периода
- Standart - зарегистрированные пользователи сегмента "малый бизнес" с трафиком до ...
- Corporate - компании сегмента "средний бизнес" с трафиком ...
- Enterprise - компании сегмента "крупный бизнес" с трафиком ...
- Custom - обеспечение техподдержки по предоплаченным купонам