프로젝트 소개
ActiveAnalytics는 Ruby on Rails 애플리케이션 내부에 직접 마운트할 수 있는 Rails 엔지니어트로, 단순한 퍼스트파티 트래픽 분석을 제공합니다. 공개된 설계 목표는 프라이버시입니다: 쿠키를 수집하지 않고, JavaScript를 배포하지 않으며, 제3자 서비스에 의존하지 않으므로 광고 블로커나 프라이버시 확장 프로그램이 차단할 대상이 아닙니다.
대시보드에서 제공하는 정보
- 소스: 애플리케이션으로 트래픽을 유도하는 페이지와 도메인
- 페이지 뷰: 가장 많이 조회되는 페이지
- 다음/이전 페이지: 특정 페이지와 관련된 진입 및 이탈 페이지
- 브라우저 통계: 사이트를 방문하는 브라우저 및 버전
README에서는 이 도구가 개별 방문자에 대해 어떤 정보도 노출하지 않는다고 강조합니다.
설치
gem을 Gemfile에 추가하고 bundle을 실행한 후, 엔진 마이그레이션을 설치·실행하고 config/routes.rb에서 원하는 엔드포인트에 마운트합니다:
gem 'active_analytics'
bundle
rails active_analytics:install:migrations
rails db:migrate
# config/routes.rb
mount ActiveAnalytics::Engine, at: "analytics"
기본적으로 대시보드는 ActionController::Base를 상속받습니다. 초기화 파일을 통해 ActiveAnalytics.base_controller_class로 사용자 지정 기본 컨트롤러를 설정할 수 있습니다.
트래픽 수집
두 가지 방법이 문서화되어 있습니다. 동기 방식은 ApplicationController의 after_action 콜백에서 ActiveAnalytics.record_request(request)를 호출하며, 설정이 가장 단순하지만 모든 요청 시 데이터베이스에 작성됩니다. 비동기 방식은 ActiveAnalytics.queue_request(request)를 호출하여 데이터를 Redis로 푸시하므로 요청당 데이터베이스 쓰기가 발생하지 않습니다. 큐에 쌓인 데이터는 cron 작업이나 백그라운드ジョブ에서 ActiveAnalytics.flush_queue를 호출해 나중에 영구 저장됩니다. README는 정기적으로 플러시하고 하루 마지막 플러시를 23:59에 수행하여 일일 통계가翌일로 밀리지 않도록 권장합니다. Redis는 ActiveAnalytics.redis_url 또는 사용자 지정 ActiveAnalytics.redis 연결로 구성할 수 있습니다.
예시는 HTML 응답만 기록하고, 정규화된 도메인으로 필터링하며, bot-detection gem을 사용해 크롤러를 건너뛰는 것을 권장합니다. 비밀번호 재설정 페이지와 같은 민감한 URL은 skip_after_action으로 제외할 수 있습니다.
인증
인증 방식은 애플리케이션마다 다르므로, 엔진은 어떤 방식을 가정하지 않습니다. README는 before_action이 포함되지 않은 사용자에게 라우팅 에러를 발생시키는 ActiveAnalytics::ApplicationController의 모키팅을 보여줍니다. 이는 config.after_initialize에서 required되며, 개발 모드에서 재로드되지 않도록 합니다. Devise를 사용하는 경우 mount를 routes.rb의 authenticate 블록으로 감쌀 수 있습니다.
라이선스와 계보
ActiveAnalytics는 MIT License에 따라 오픈 소스로 공개되었으며, Base Secrète가 개발했습니다. Base Secrète는 또한 RoRvsWild라는 Rails 모니터링 도구도 개발하고 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.