time-series-store
v0.1.0
Published
like graphite but for redis
Downloads
1
Readme
redis time series data manager
name
variable is the full name of the key to use with redistimeslots
variable is the length of the arraytimeslotLength
variable is the difference between the beginning times of the slots, or the length of the slots themselves- data is dropped from the end as new data comes in
The values in this array are of the format [ "time", "value" ]
API
Series.setClient(redis)
Where redis is a connected instance of redis.
new Series(schema [, options ])
check for the series in the database
if a series is found verify the slots match the number in the schema else initialize a new series with the schema
run
series.cleanup()
.incr(timestamp [, value] [, callback])
- incrmeent series slot
example:
series.incr(1339644364453, 2, function (err) { })
series.incr(1339644364453, function (err) { })
series.incr(1339644364453, 2)
series.incr(1339644364453)
Check to make sure the value is a number and check to make sure the timestamp is valid.
Use value provided or default from schema
Callback error if timestamp is not a valid timestamp and determine which slot to add the value to. If there isnt a valid place to add the value callback an error (e.g. too far in the past)
4a. if the timestamp is in the future then create new time slots to bring the series data up to the provided time -- this usually creates 1 additional field but with less active series this may create many new time slots
4b. Increment the slot by the value. Note that the timestamp can be any timestamp within the currently recorded length of time, as the correct slot will be determined based on the series schema.
.getAll(callback)
- return all the series data
example:
series.getAll(function (err, series) {
// do something with series
// ...
})
.setValue(timestamp, value [, callback])
- set a slot to a specific value
- callback the old slot
example:
series.setValue(1339644364453, 12, function (err, oldSlot) { })
series.setValue(1339644364453, 12)
Identifies the slot to set. Note that like
incr
the timestamp can be any timestamp and the correct slot will be determined from the provided value.Set the slot to the new value