Об этом проекте
Cairn представляет собой Composer-пакет, который интегрирует веб-аналитику непосредственно в приложение Laravel. Установка выполняется с помощью команды composer require и php artisan migrate, после чего панель управления становится доступна по адресу /cairn. Поскольку отслеживание работает внутри приложения, а не через браузерный тег, оно может предоставлять отчеты по именам маршрутов, моделям Eloquent и аутентифицированным пользователям.
Модель конфиденциальности: посетители идентифицируются с помощью хеша с солью, который обновляется каждые 24 часа из новых случайных байтов, при этом предыдущая соль уничтожается. В README указаны последствия: возвращающихся посетителей нельзя подсчитать, многодневные пути и многоканальная атрибуция невозможны, а кросс-девайсное отслеживание отсутствует. Взамен стандартная конфигурация ничего не сохраняет на устройстве посетителя, не хранит IP-адреса в базе данных, логах или бэкапах и не требует баннера согласия на использование cookies; утечка таблицы аналитики раскроет количество посещений, а не данные о людях. Две опциональные настройки (выключены по умолчанию) меняют это: privacy.track_user_id привязывает записи к авторизованным пользователям, а privacy.durable_identity заменяет ротируемый хеш на cookie. Отчетность по странам также выключена по умолчанию и использует локальный файл MaxMind GeoLite2, загружаемый через cairn:geoip, вместо сторонних запросов для каждого посещения.
Панель управления и отчетность: дашборд рендерится на стороне сервера с помощью Blade, работает без JavaScript, использует ссылки для фильтров и встроенные SVG-графики, вычисляемые на сервере, а под каждым графиком располагается таблица. По умолчанию доступны 18 виджетов, еще три добавляются одной строкой в конфиге. Виджеты представляют собой классы, которые можно переупорядочивать, удалять или расширять, включая виджет измерений для ранжированных таблиц. Все интерфейсы, включая дашборд, API, карточки Pulse и экспорт в CSV, проходят через единый слой запросов. Конструктор отчетов поддерживает такие метрики, как посетители, просмотры страниц и показатель отказов, сгруппированные по измерениям (например, по маршруту), с возможностью сравнения периодов, сортировки и лимитов. Производные метрики пересчитываются из сохраненных компонентов на уровне отображения, а не усредняются; запрос данных, которые не были агрегированы, вызывает ошибку вместо сканирования необработанных записей.
Эксплуатация: требования включают PHP 8.2+, Laravel 12 или 13, а также MySQL 8+, MariaDB 10.6+ или PostgreSQL 13+. Redis опционален; для каждой функции на базе Redis существует эквивалентный драйвер на базе БД. Шаги сборки npm, Vite или Node отсутствуют. Команды Artisan включают cairn:rollup, cairn:prune, cairn:work, cairn:partition, cairn:doctor, cairn:geoip, cairn:forget и cairn:export. Процессы rollup и prune планируются автоматически, а на хостингах без cron небольшая часть запросов берет эту работу на себя. Маршрут панели управления защищен гейтом viewCairn, который запрещает доступ всем вне локальной среды до настройки. Доступны драйверы дашборда blade (по умолчанию), livewire, inertia и none; Livewire и Inertia не обязательны. Опциональный маяк (beacon) измеряет время на странице, глубину прокрутки, размер экрана и Core Web Vitals.
Область применения и лицензия: в README перечислены намеренные ограничения, включая отслеживание пользователей между днями, хранение IP-адресов, воронки, когортный анализ, тепловые карты, запись сессий, A/B тестирование, атрибуцию далее последнего клика и поведенческое обнаружение ботов. Указано, что Cairn не может гарантировать соответствие развертывания каким-либо нормативным актам. Проект описывается как стабильный, следует семантическому версионированию с версии 1.0.0 и распространяется под лицензией MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.