Skip to main content
.. figure:: screenshot.png
:alt: sample result

About
=====

``serialkiller`` time series database with reduce system, it kill the same time series ! :)

``serialkiller`` can be used in three different ways:
- In command line
- In http API REST mode
- From library

In future, ``serialkiller`` will be run in centralized or decentralized mode

Sample architecture

.. figure:: architecture.png
:alt: architecture example

Installing
==========

To install the latest release from `PyPI <http://pypi.python.org/pypi/serialkiller>`_

::

$ pip install serialkiller

To install the latest development version from `GitHub <https://github.com/badele/serialkiller>`_

::

$ pip install git+git://github.com/badele/serialkiller.git

Configuration & Examples
========================

Copy sk_config.cfg from serialkiller package to /etc/sk_config.cfg and edit your ``.bashrc``, add this line

::

SERIALKILLER_SETTINGS=/etc/sk_config.cfg

The default `sk_config.cfg`

::

STORAGE = "/tmp/sensors"
HOST = 0.0.0.0
PORT = 80
DEBUG = False

Now you can run the serialkiller standalone server with `sk_standalone`

::

sk_server &

You can also use the supervisor, it's prefered solution

Example of sk_server supervisor configuration

::

[program:sk_server]
command=sk_server
environment=SERIALKILLER_SETTINGS="/etc/sk_config.cfg"
user=username
autostart=true
autorestart=true
redirect_stderr=true
startsecs=5

Example, if now you would like add a minimal sensor (ex: online computer) with auto-configuration type sensor

::

# From command line
sk_command -a addvalue -s domsrv:computer:online -t byte -v value=255

# From REST API
wget serverip/api/1.0/addValue/domsrv:computer:online/byte/value=255

# From library
from serialkiller import lib
obj = lib.Sensor(args.directory, args.sensorid, args.type)
data = sktypes.newObj('byte', value=255)
obj.addValue(data)

List last sensors value

::

$ sk_command -a sensorslist

SensorId S Time Title Value
----------------------------- --- ------------------- ---------------------------- -----------
livingroom:demo:online 2014-01-31 08:50:55 Demo Online
livingroom:vaio:inuse X 2014-01-30 23:17:14 Utilisation du poste Locked
washroom:teleinfo:isousc 2014-01-31 08:51:00 Ampere souscrit 30
livingroom:p03:online 2014-01-31 08:51:00 Serveur de virtualisation Online
livingroom:vaio:online 2014-01-31 08:51:00 Portable stephanie Offline
washroom:teleinfo:hchp 2014-01-31 08:51:00 Heure pleine 39674892
washroom:teleinfo:papp 2014-01-31 08:51:00 Puissance en cours 1980
washroom:video:online 2014-01-31 08:50:55 Video server Online
livingroom:internet:available 2014-01-31 08:50:55 Conectiviteinternet Available
washroom:teleinfo:iinst X 2014-01-31 00:22:47 Ampere en cours 10
city:weather:sunshine 2014-01-31 08:50:55 Crepuscule du soleil Plein jours


Show sensor information

::

$ sk_command -a sensorinfos -s domsrv:teleinfo:papp -t ushort

Title Value
----------------------- --------------------------
Sensorid domsrv:teleinfo:papp
Sensor Type ushort
NB lines 109845
Min date 2012-06-27 16:43:00
Max date 2014-01-28 21:25:30
Min value 350 (2013-12-21 10:22:21)
Max value 6710 (2013-08-07 18:57:14)
Avg value 1578
Avg delta (round ratio) 303
Total size 1.361328125 Mo

Show last sensor value

::

$ sk_command -a last -s domsrv:teleinfo:papp -t ushort

1730

Show datas sensor

::

$ sk_command -a sensordatas -s domsrv:teleinfo:papp -t ushort -v tail=10

Time Value
------------------- -------
2014-01-28 20:35:24 1640
2014-01-28 20:43:33 1700
2014-01-28 20:45:50 1680
2014-01-28 20:45:55 1580
2014-01-28 20:46:51 1660
2014-01-28 21:20:01 1580
2014-01-28 21:20:17 1590
2014-01-28 21:20:22 1680
2014-01-28 21:22:13 1740
2014-01-28 21:27:46 1730


Reduce data

::

# Before reduce

Title Value
----------------------- --------------------------
Sensorid domsrv:teleinfo:papp
NB lines 514671
Min date 2012-06-27 18:43:00
Max date 2014-01-25 10:27:15
Min value 350 (2013-11-17 05:24:23)
Max value 6710 (2013-08-07 20:57:14)
Avg value 1301
Avg delta (round ratio) 76
Total size 6.3798828125 Mo

# reduce with 80 delta value

$ sk_command -a setproperty -s domsrv:teleinfo:papp -t ushort -v roundvalue=80
$ sk_command -a reduce -s domsrv:teleinfo:papp -t ushort

# Reduce result

Title Value
----------------------- --------------------------
Sensorid domsrv:teleinfo:papp
NB lines 107304
Min date 2012-06-27 18:43:00
Max date 2014-01-25 10:27:15
Min value 350 (2013-12-21 11:22:21)
Max value 6710 (2013-08-07 20:57:14)
Avg value 1575
Avg delta (round ratio) 302
Total size 1.330078125 Mo

**Compression ratio = 480%**

You can also use the `serialkiller-plugins <https://github.com/badele/serialkiller-plugins>`_ for push the sensors results. See the `serialkiller-plugins example <https://github.com/badele/serialkiller-plugins/blob/master/README.rst#script-example>`_

You can also point your web navigator to http://youipserver for list all JSON functions:

::

{

"/": "All serialkiller API functions",
"/api/1.0/": "All serialkiller API functions",
"/api/1.0/addEvent/<sensorid>/<type>/<values>": "Add a new event, no deduplicate",
"/api/1.0/addValue/<sensorid>/<type>/<values>": "Add a new value, deduplicate line",
"/api/1.0/list": "List all last sensors"
}


You can also see the result directely in my personnal `website <http://domotique.adele.im>`_Changelog
=========

Version 0.0.2 (2014-02-08)
--------------------------

* Add skfloat type
* Add unittest
* Use supervisor for launch sk_server
* Add sensor informations and reduce system
* Lock file for concurent access
* Replace chart.js by d3.js
* Add metadata properties
* Rename SerialKiller class to Sensor

Version 0.0.1 (2013-12-29)
--------------------------

* First version

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serialkiller-0.0.2.tar.gz (85.4 kB view details)

Uploaded Source

File details

Details for the file serialkiller-0.0.2.tar.gz.

File metadata

  • Download URL: serialkiller-0.0.2.tar.gz
  • Upload date:
  • Size: 85.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for serialkiller-0.0.2.tar.gz
Algorithm Hash digest
SHA256 86231f0e41d2cec3fbff606e915a50aab1872de66e0847241dda34545bca5985
MD5 306cd3885452661e35eb64529cbf6d67
BLAKE2b-256 4a10d719f1e3f5d1e9655e4c2ee678a147bc714b99afa7b7b2c8b5e1ec2ef5d1

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 file

0.0.1

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page