Об этом проекте
## Обзор
Lytics — это self-hosted пакет веб-аналитики, ориентированный на конфиденциальность пользователей. Он предлагает стандартные метрики трафика, пользовательские SQL-запросы и визуальные тепловые карты, отображающие взаимодействие пользователей со страницами. Проект разделен на несколько модулей:
- **lytics-ping** — легковесный HTTP-эндпоинт, который принимает данные отслеживания от JavaScript-тега.
- **lytics-app** — основной сервис на Quarkus, который хранит данные, генерирует отчеты и обслуживает пользовательский интерфейс.
- **lytics-query** — валидирует и транспилирует SQL-запросы, используемые в отчетах и тепловых картах.
- **tag** — небольшой фрагмент JavaScript, который владельцы сайтов встраивают для отправки событий в сервис ping.
- **offsite** — JavaScript и логика рендеринга для тепловых карт, которые загружаются с отдельного домена.
- **schemas** — определения схем баз данных для MariaDB/MySQL и ClickHouse.
## Архитектура
Платформа хранит необработанные события в ClickHouse для высокопроизводительной аналитики, в то время как реляционные метаданные хранятся в MariaDB/MySQL. Сервисы на базе Quarkus взаимодействуют через HTTP и используют общую конфигурацию через `application.properties`. Рендеринг тепловых карт выполняется на стороне клиента с помощью off-site скрипта, который собран с помощью npm и предоставляется сервером Quarkus как статический ресурс.
## Начало работы
1. **Настройка базы данных** — разверните экземпляр MariaDB/MySQL и кластер ClickHouse. Примените схемы из директории `schemas`.
2. **Конфигурация** — отредактируйте `lytics-app/src/main/resources/application.properties`, указав строки подключения и любые желаемые опции.
3. **Сборка** — запустите `mvn package` для компиляции всех модулей.
4. **Запуск сервисов**:
```bash
java -Dquarkus.config.locations=application.properties -jar lytics-ping/target/lytics-ping-1.0.0-SNAPSHOT-runner.jar
java -Dquarkus.config.locations=application.properties -jar lytics-app/target/lytics-app-1.0.0-SNAPSHOT-runner.jar
```
5. **Разработка** — используйте плагин Quarkus в IntelliJ или команду `quarkus dev` в командной строке. Для внесения изменений в скрипт тепловых карт запустите `npm run watch` внутри директории `offsite`; результат будет помещен в `lytics-app/src/main/resources/web/static/offsite/offsite.min.js`.
## Устранение неполадок
Если вы столкнулись с проблемами разрешения зависимостей или проблемами в IDE, может помочь чистая переустановка:
```bash
mvn clean install -U
```
## Варианты использования
- Отслеживание посетителей с соблюдением конфиденциальности для веб-сайтов, которые не могут использовать стороннюю аналитику.
- Визуальные тепловые карты для понимания поведения кликов и прокрутки без ущерба для пользовательских данных.
- Настраиваемые SQL-запросы для расширенной отчетности и экспорта данных.
Lytics предоставляет полный стек для организаций, которым нужна on-premise аналитика с детальным контролем над хранением и обработкой данных.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.