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.