Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 69 lines (43 sloc) 2.508 kb
6f2d6bf @alexsdutton Added prototypical readme.
alexsdutton authored
1 Time-series API implementation in Django
2 ========================================
3
4 This is an implementation of the OpenOrg `time-series API specification
dc379f3 @alexsdutton Fixed README link.
alexsdutton authored
5 <http://openorg.ecs.soton.ac.uk/wiki/Metering>`_ as a Django application.
a1ac6f3 @alexsdutton Added some documentation!
alexsdutton authored
6
7
8 Features
9 --------
10
11 * Stores data in a compact binary format for quick retrieval
12 * Archives data in CSV format to negate format-based lock-in
13 * Time-zone aware
14 * Customisable aggregation (e.g. for daily and weekly averages, minima and maxima)
15 * Implements an API used by other time-series implementations
16 * Allows creation, modification and updating of time-series from a RESTful web service
17 * Has a fine-grained permissions model for administering time-series
18
19
20 Features yet to be implemented
21 ------------------------------
22
23 * Administration interface is still somewhat human-unfriendly
24 * Customisable alerts for when series haven't been updated for some period of time
25 * Gauge and counter-based series (currently only period-based series)
26 * Virtual time-series (i.e. time-series which are some function of other time-series)
27
28
29 Architecture
30 ------------
31
32
33 This project comprises a Django application that you can include in an existing
34 Django project by adding ``'openorg_timeseries'`` to your ``INSTALLED_APPS``
35 variable in your Django settings file.
36
1ed637c @alexsdutton Fixed MANIFEST to include data files.
alexsdutton authored
37 ``openorg_timeseries.longliving`` contains a ``threading.Thread`` which mediates access to the underlying data, and which prevents ...
a1ac6f3 @alexsdutton Added some documentation!
alexsdutton authored
38
39 Demonstration application
40 -------------------------
41
42 This project comes with a demonstration web service which you can use to quickly evaluate its usefulness.
43
44 Running
45 ~~~~~~~
46
47 First, install the necessary dependencies using pip:
48
49 $ pip install -r requirements.txt
50
51 Next, start the demonstration server using the following:
52
53 $ django-admin.py rundemo --settings=openorg_timeseries.demo.settings --pythonpath=.
54
55 Give it a few seconds, after which you can point a web browser at `http://localhost:8000/ <http://localhost:8000/` to see it in action.
56
57
58 Details
59 ~~~~~~~
60
61 The demo site performs the following steps on start-up:
62
adea258 @alexsdutton Fixed list in README.
alexsdutton authored
63 #. Creates a ``demo-data`` directory in the current directory to store data used by the demo
64 #. Runs the ``syncdb`` Django management command to create a ``sqlite3`` database in the ``demo-data`` directory
65 #. Starts a long-living process which manages the data storage and retrieval
66 #. Creates a new time-series and loads in some example data
67 #. Runs the ``runserver`` management command (without the auto-reloader) to start the Django development server
a1ac6f3 @alexsdutton Added some documentation!
alexsdutton authored
68
Something went wrong with that request. Please try again.