Platform Team/sugar-stats/0.1

From Sugar Labs
Jump to navigation Jump to search


Library to gather Sugar usage statistics. The gathering method is based on sniffing DBus and X11 events.

Supported Sugars

  • 0.94

More (0.86+) Sugar versions might be added on demand.

Stats server

This project also contains a server, which is based on active-document and restful-document, and is designed to be a part of the Sugar Network and sugar-server implementations.

A standalone server might be launched using the sugar-stats-server command from project sources. The easiest way is using the binary package sugar-stats-server from Sweets Distribution. The package contains these components:

  • sugar-stats-server command,
  • /etc/init.d/sugar-stats-server daemon.

For stats transferring from clients, it is useful to use secure, SSL connections. The server configuration needs to be tweaked (and the client should use the same certificate):

  • keyfile, path to server's private key,
  • certificate, path to server's certificate file.

Server will authenticate clients using SSH keys generated on the client side by Sugar Shell. To let the server check client signatures, OpenSSH-5.6+ should be installed on the server side. For versions lower than 5.6, authentication needs to be disabled using the trust-users parameter.


Run the following command to get the current configuration with comments:

sugar-stats-server config

To tweak current configuration, change/create /etc/sugar-stats-server.conf configuration file.

The following important parameters need to be set before using the server. (When sugar-stats-server is installed from packages, they are initialized to meaningful values.):

  • stats/stats-root = /var/lib/sugar-network/rrd
    Path to the root directory for placing stats;
  • active-document/data-root = /var/lib/sugar-network/users
    Path to the root directory for placing users' metadata;

Implementation notes

  • Calculating stat.
Detecting if client host is in school network or not is based on resolving hostname.

Getting the code

In use, the library does not require any building routines, just provide the full path to the active_document/ subdirectory via the PYTHONPATH environment variable.

See the examples/ subdirectory in the sources tree for usage examples.

Library requirements

See also

Getting involved

  • Report on bugs.
  • Read the HACKING file to know how to contribute with code.