So, it's come up a few times that it would be helpful to have some stats generation on Laconica installations that get posted back to a central place for sharing and analysis. The value? We'd know more about our installed base; we'd get a better idea of the size and extent of the network; and we'd know how upgrades are going. I know that SugarCRM does this; I think there are other Web project that do it, too.

I'd like to outline how I think that could work.

  1. We'd post data using a simple REST API to an URL on laconi.ca
     (like laconi.ca/stats).
  2. The data would be made available to anyone under a CC0 (~public
     domain) license.
  3. The API would also support reading and slicing the data.
  4. You could download data dumps, too.
  5. And we'd have a simple Web interface showing graphs and all that jazz.
  6. The central stats-collecting code would also be Open Source, and
     hopefully general enough for other projects to use or build from.
  7. Stats collection would be optional, default /on/ -- unless the
     site is marked "private", in which case it's default /off/.
  8. Stats collection would happen at Web runtime. For each Web hit,
     we'd randomly fire off one data item to the stats server. We'd try
     to time it to give one full stats update per week.
  9. There'd also be a script that could be run from a cron job, in
     which case you'd probably want to turn the Web-time stats off.
 10. We'd collect the following data items:
         * Laconica version
         * PHP version
         * Database (PHP or MySQL)
         * Names and versions of plugins (once we have plugins)
         * Operating system
         * Root URL (like "http://identi.ca/";)
         * Site name
         * Total number of (local) users
         * Total number of (local) notices
         * Number of users who've posted at least one notice in the
           last 24 hours
         * Number of users who've posted at least one notice in the
           last week
         * Number of notices posted in the last 24 hours
         * Number of notices posted in the last week
         * Total number of subscriptions

Note that there are some hazards with this. If we have a serious security flaw, a hacker could go through this list and find each site that was at the version number that had the flaw, and exploit it. On the positive side, when we identify a flaw, we could identify and contact affected sites and notify them before making an announcement. So it's a two-sided coin.

As to the reporting design: I think firing off one stat randomly at Web time would be useful without being a real burden on any particular Web user. All of these stats would be fairly quick to generate and report. We'd know that it's very likely to be done, and a cron job would let sites optimize that part while still helping out with stats.

Questions: what other stats should we collect? And is this a good idea? And who wants to write it?

-Evan

_______________________________________________
Laconica-dev mailing list
[email protected]
http://mail.laconi.ca/mailman/listinfo/laconica-dev

Reply via email to