Мониторинг 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.

  1. В момент запуска функции отправляем TYPE_ID=start. Если программист ведет свой учет jobID, то на старт его можно передать. Все последующие операции для этого jobID будут выполняться планово. Если не введет - jobID будет сгенерирован и возвращен. Далее, его необходимо указывать для второго состояния.
  2. В момент финиша или исключительной ситуации отправляем второе состояние TYPE_ID=finish, TYPE_ID=error, TYPE_ID=token, etc.

Если у транзакции меньше или больше 2-х состояний - она считается аномальной транзакцией

Таким образом, транзакция - это 2 события одного jobID. Данный подход увеличивает трафик, но, мы получаем объективную исчерпывающую информацию о жизнедеятельности ПО: фактическое\среднее время выполнения функций, количество запросов функции за отчетный период (её востребованность), архитектурный путь и нагрузку на архитектурные слои.

Подробнее об этом в Документации разработчика "Структура запроса"


Структуры

Обязательный параметр SERVER_KEY

Структура запроса

Структура объекта

Допустимые типы событий TYPE_ID

Назначение и выбор HOOK_ID

Опциональный объект AGENT


5. Подключение к мониторингу

Выпуск SERVER_KEY временно выполняется по запросу на почту info@lineclub.ru

Подробнее о SERVER_KEY

6. Внедрение

Получите свой SERVER_KEY

Основная задача - внедрить "маяки" LC.Мониторинг в Ваш код. См. Структура -> Запроса, п. 1.1 Прикладной пример транзакции

Практика показывает, что если разработчик достаточно замотивирован, то на покрытие своего кода "маяками" у него уйдет не более 1-2 часов работы в день в течении недели. Согласитесь, это недорого, если взамен получить всю картину жизнедеятельности ПО и аппаратной части в простом, адаптированном для руководителя виде.


7. Поддержка

Поддержка осуществляется, согласно SLA

Пользователи делятся на группы: