10 Аналитика и мониторинг
Платформа собирает события показов, кликов и конверсий и показывает статистику в реальном времени.
Как устроена аналитика
События сервера ──► Kafka ──► ClickHouse (сырые таблицы)
│
dagu-агрегации (раз в час)
│
▼
ClickHouse (*_hour) ──► Grafana и админка
Рекламный сервер публикует события в Kafka. ClickHouse читает их через Kafka Engine и складывает в сырые таблицы requests, impressions, clicks, responses, а также conversion и win. Сервис analytics (dagu) раз в час (1 * * * *) пересчитывает часовые витрины analytics.*_hour.
Дашборды
Встроенная статистика доступна прямо в админке — отображается количество показов, переходов и распределение по площадкам и блокам. За период отвечает агрегация ClickHouse.
Полноценные дашборды живут в Grafana (порт 3001). Настраиваемый URL Grafana подставляется в админку через переменную GRAFANA_URL. В репозитории уже есть готовые дашборды:
analytics— показы, клики, конверсии;platform-server— метрики рекламного сервера;platform-logs— логи.
ClickHouse
Для ручных запросов и просмотра таблиц есть ch-ui (порт 3488), который подключается к ClickHouse внутри compose-сети. Креды ClickHouse задаются переменными CLICKHOUSE_* в dist/.env.
Метрики и логи
- Prometheus (
9090) собирает метрики сервисов. - Loki (
3100) хранит логи; Promtail собирает их с docker-контейнеров. - Дашборды по метрикам и логам также доступны в Grafana.
Обслуживание
Агрегации можно запускать вручную в интерфейсе dagu (порт 8088, логин — DAGU_AUTH_BASIC_USERNAME / DAGU_AUTH_BASIC_PASSWORD). DAG-и лежат в dist/analytics/dagu/dags/*.yaml, конфиг аналитики — dist/analytics/configs/config.yaml.