Об этом проекте
Counterscale представляет собой веб-трекер и панель аналитики с открытым исходным кодом, которые пользователи развертывают самостоятельно на Cloudflare. Проект выпущен под лицензией MIT и разработан для простого развертывания и обслуживания; в README отмечается, что стоимость эксплуатации должна быть близка к нулю даже при высоком уровне трафика. Система работает преимущественно на базе Cloudflare Workers и Workers Analytics Engine. По состоянию на февраль 2025 года максимальный срок хранения данных в Workers Analytics Engine составляет 90 дней, поэтому панель может отображать данные только за последние 90 дней. Counterscale также обеспечивает долгосрочное хранение данных в бакете R2 с использованием файлов Apache Arrow. Это хранилище включено по умолчанию, но его можно отключить через CLI.
Для установки требуются macOS или Linux, Node v20 или выше и активный аккаунт Cloudflare. Перед развертыванием пользователям необходим поддомен Cloudflare Workers, включенная бета-версия Analytics Engine в аккаунте и API-токен Cloudflare как минимум с разрешениями Account.Account Analytics. Развертывание начинается с команды npx wrangler login, за которой следует npx @counterscale/cli@latest install. Инсталлятор запрашивает API-токен и спрашивает, нужно ли защитить панель управления паролем. Для публичных развертываний рекомендуется выбрать «да»; выбор «нет» оставит панель общедоступной. После установки серверное приложение развертывается на поддомене workers.dev.
Для записи трафика веб-сайта Counterscale предлагает несколько методов интеграции. Загрузчик скриптов делает tracker.js доступным по развернутому URL. Пользователи могут добавить тег script с id counterscale-script, атрибутом data-site-id и источником tracker.js. Трекер также опубликован как npm-пакет @counterscale/tracker. Его можно инициализировать с помощью site ID и reporter URL. Клиентский модуль предоставляет такие методы, как init, isInitialized, getInitializedClient, trackPageview и cleanup. Отдельный серверный модуль @counterscale/tracker/server поддерживает отслеживание аналитики на бэкенде. Он использует fetch API вместо XMLHttpRequest, не имеет функций, зависящих от DOM, требует явных параметров URL и имени хоста, а также работает по принципу «выстрелил и забыл», поэтому ошибки отслеживания не вызывают исключений.
Counterscale включает расширенные опции. Автоматическое отслеживание просмотров страниц можно отключить, установив autoTrackPageviews в значение false, после чего метод trackPageview можно вызывать вручную. URL развертывания также можно привязать к собственному домену. CLI предоставляет команды для установки, аутентификации и управления хранилищем. Команда install поддерживает расширенный режим для настройки имени воркера и набора данных аналитики, а также подробное логирование. Подкоманды аутентификации включают enable, disable и roll. Подкоманды хранилища включают enable и disable. Обновление обычно означает повторный запуск CLI-инсталлятора; основные версии могут иметь дополнительные шаги, описанные в примечаниях к релизу.
Для локальной разработки в Counterscale есть только одна база данных: набор данных Cloudflare Analytics Engine, взаимодействие с которой происходит по HTTP через API Cloudflare. Локальной тестовой базы данных нет, поэтому локальные записи не выполняются, а чтение данных происходит из производственного набора данных Analytics Engine. Cloudflare Analytics Engine использует сэмплирование, чтобы сделать прием и запрос больших объемов данных доступными в масштабе, аналогично другим инструментам аналитики.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.