Архитектура
Обработка входящих запросов
Коммуникация сервисов
Руководство пользователя
Получение данных из сервисов
Использование Панели управления
Использование инструментов из комплекта
Работа с Theia
Мониторинг Netdata
Работа с Jupyter
Работа с ClickHouse
Основные принципы
Модификация схемы
Подключение к VPN
Справочная информация
HTTP Redirect
Каналы получения данных
WebSocket
Загрузка больших файлов
JSON-RPC 2.0 RST
API сервисов
Director API
Front API
RockMe Framework (TypeScript)
Переменные окружения
Маппинг путей
Сетевая инфраструктура
Схема хранилища ClickHouse
Создание сервисов
Python + Band Framework
Организация сервиса
Коммуникация с другими сервисами
Работа с ClickHouse
Другие возможности
TypeScript + Rockme Framework
Организация сервиса
Туториалы
Получение данных из других сервисов
Сбор сырых данных Google Analytics
Создание динамического Calltracking
Построение истории отдельного пользователя
Классические модели атрибуции
Вероятностное прохождение воронки
Атрибуция по индексу активности
Воронки
Реализация Cookie-Sync
Сегментация пользователей
X
Выберите раздел

Состав платформы Rockstat

Rockstat состоит из множества компонентов: хранилищ, инструментов для работы с данными, специально разработанных сервисов, выполняющих свою часть общего дела, средств администрирования.

На схеме приведены только основные сервисы, разработанные специально для Rockstat, и сторонние инструменты, которые были интегрированы с остальными частями платформы. Только представьте, сколько еще всего...

Основные компоненты

  1. Band-py Framework - framework для разработки сервисов Rockstat, используя Python
  2. Band Director - сервис для создания и управления контейнерами
  3. Rockme-ts Framework - фреймворк для разработки микросервисов Rockstat, используя TypeScript
  4. Front service - сервис для получения данных, а также обработки жизненного цикла входящих запросов
  5. ChWriter service - сервис, управляющий схемой данных в ClickHouse, а также записи входящих данных, учитывая структуру БД
  6. Ebaloger service - сервис, принимающий данные через UDP Socket, собирающий логи Docker контейнеров, передающий по Websocket

SDK

  1. Web SDK - браузерная библиотека для отслеживания поведения посетителей на сайтах. Объединяет события в сессии, отслеживает активность, клики и взаимодействия с формами.
  2. Mobile SDK's - используются от Countly или SnowPlow

Стандартные обогатители данных

  1. UserAgent parser service - сервис извлечения полезной информации из User-Agent браузера
  2. MaxMind geolocation service - сервис геолокации по ip адресу на основе базы данных MaxMind
  3. Sypex geolocation service - сервис геолокации по ip адресу на основе базы данных SypexGeo

Другие сервисы:

  1. Send Mixpanel - сервис стриминга данных в MixPanel, как пример создания аналогичных сервисов
  2. Heavyload service - сервис приема больших файлов
  3. TgHelloBot service - пример реализации чатбота

Стороннее ПО адаптированное для Rockstat

  1. Grafana - инструмент для построение дашбордов на основе данных из ClickHouse и других источников. Дополнения: драйвер Сlickhouse и расширенный набор виджетов
  2. Anaconda - аналитическая сборка Python, включающая библиотеки для анализа данных. Дополнения: дополнительные, часто используемые пакеты, автозапуск Jupyter.
  3. Theia IDE - специальная сборка персональной среды разработки под Rockstat. Поддерживается разработка на Python, TypeScript и Javascript. Проброшен удобный терминал (zsh + zprezto) с сервера. Предусмотрен запуск сервисов для отладки.
  4. ClickHouse Proxy service - посредник при работе с ClickHouse. Контролирует нагрузку на СУБД, обрабатывает лимиты, ставит запросы в очередь, поддерживает CORS
  5. Netdata - слежение за показателями сервера, агрегация метрик с сервисов платформы, на основе которых определяется стабильность работы.

Остальное ПО,

  1. Docker - инструмент контейнеризации, по сути сердце микросервисов.
  2. ClickHouse - открытая колоночная СУБД от Yandex. Хранит данные в сжатом виде, сохраняя высокую производительность.
  3. Redis - многофункциональное im-memory хранилище. Используется для быстрого обмена данными между микросервисами.
  4. Nginx - реверсивный прокси сервер. Используется для распределения запросов между сервисами доступными по http.
  5. Acme.sh (LetsEncrypt) - клиенты для получения SSL сертификатов. Сервис, предоставляющий бесплатные сертификаты.
  6. Множество других...

Исходный код

Все исходные коды доступны в репозитории github.com/rockstat, не забываем ставить ⭐!