-
Notifications
You must be signed in to change notification settings - Fork 185
Stats Design
🔄 Needs updating.
This is a a loosely organized collection of notes and links for the Stats feature design. (Note: this is for the new stats system only - there's an existing legacy system too.)
CREATE TABLE statkeylist (
statkeyid int unsigned NOT NULL auto_increment,
name varchar(255) default NULL,
PRIMARY KEY (statkeyid),
UNIQUE KEY (name)
)
CREATE TABLE site_stats (
category_id INT UNSIGNED NOT NULL,
key_id INT UNSIGNED NOT NULL,
insert_time INT UNSIGNED NOT NULL,
value INT UNSIGNED NOT NULL,
-- FIXME: This is good for retrieving data for a single category+key, but
-- maybe not as good if we want all keys for the category, with a limit on
-- time (ie, last 5 entries, or last 2 weeks). Do we need an extra index?
INDEX (category_id, key_id, insert_time)
)This works by massaging, aggregating, and or compiling (as appropriate) data from various places and storing the results using DW::StatStore.
- etc/stats-collection.conf should contain something like:
## collect and store all stats under the accounts category
## hangs if you don't enclose the asterisk in quotes
# accounts: "*"
## collect and store only these stats under the accounts category
# accounts: [ identity, personal, redirect ]
accounts: "*"
active: "*"
paid: "*"
-
bin/worker/stats-collection is the utility that handles stats collection. Run at least once per 24 hours, either from your crontab or by listing it in etc/workers.conf.
-
(only needed if you chose to use etc/workers.conf): add a line to the "all" section reading:
stats-collection: 1(note: this is for development only, as it assumes you only have one server - in production environments, you will usually list it in the section for a specific server)
- views/stats/site.tt (public stats)
- views/admin/stats.tt (restricted stats)
- DW::Controller::SiteStats.pm (the stats page controller for both public and restricted stats)
- DW::Controller::Graphs.pm (the stats graphs controller for both public and restricted stats)
Home • Index • Source Code • Report a Bug • Support
Copyright © 2009–2026 Dreamwidth Studios, LLC. Wiki content is licensed under CC BY 4.0 unless otherwise noted.
For Users
For Volunteers
For Developers