timeseries

command module
v0.0.0-...-555012d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2013 License: MIT Imports: 5 Imported by: 0

README

Introduction

I deal with a lot of time series data from sensors in the systems I maintain, this comes in a few different flavours:

  • system performance metrics like cpu and ram usage
  • envirnoment sensors like temperature and humidity
  • actuations which records a counter indicating how many times an button suchlike is triggered.

I also use time series data for monitoring our internal systems and capturing metrics about how our system is performing, so this is something I have a keen interest in.

Overview

This project is designed to be plugged in a micro service in a system, it's single focus is despatching data revieved via AMQP to one or more timeseries store, the first of which is tempodb.

TODO

Add some additional backends for the data, these will probably be:

Riak Plugin

My aim with this plugin is to use Riak to store the time series data and possibly Redis to cache and peform aggregate functions.

So we typically have < 10 time series' per customer so the idea was to have the following structure.

Storage

TimeseriesMeta Bucket

TimeseriesMeta bucket which keeps a record of the timeseries' stored in the system with some optional meta data.

The key will be the time series ID and the document will contain who owns the it, along with any configurable attributes such as retension period.

User Timeseries Bucket

The user timeseries bucket will named based on the pattern Timeseries_[UID], this will contain all the timeseries' for a given user. This will store a JSON document for each day under the key which looks like [Sensor ID]-[Date] as seen below.

Key:

1_1012BB022412_0101_0_30-2013_10_01

Data:

[{"val": 12, "ts": 1380666119164},{"val": 12, "ts":1380666119374}]

Contributing

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.

Licence

Copyright (c) 2013 Mark Wolfe Licensed under the MIT license.

Documentation

Overview

Simple test application which uses the tempodb golang library to upload a entry ever 500ms for a period of time.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL