forked from agoragames/kairos
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintegration
More file actions
executable file
·64 lines (57 loc) · 1.64 KB
/
Copy pathintegration
File metadata and controls
executable file
·64 lines (57 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python
import sys, os
sys.path.append(os.path.abspath("."))
sys.path.append(os.path.abspath(".."))
from kairos import Timeseries
import redis
import random
import time
#import gevent
client = redis.Redis('localhost', 6379)
t = Timeseries(client, {
'5second': {
'step': 5, # 5 seconds
'steps' : 360, # last half hour
'read_cast' : float,
},
'minute':{
'step':60, # 60 seconds
'steps':120, # last 2 hours
'read_cast' : float,
},
'hour':{
'step':3600, # 1 hour
'steps':48, # last 2 days
'resolution':60, # 1 minute resolution
'compress':True, # compress the data
'read_cast' : float,
}
})
# Insert random numbers. To show compression working, cast the floats
# to strings and trim to 1 decimal place
print 'Inserting for 5 minutes' # more or less
for second in range(1*60):
num_per_sec = 5000
sleep = 1/num_per_sec
for _something in range(num_per_sec):
num = "%.1f"%(random.random())
t.insert('integration', num)
time.sleep( sleep )
print 'last 5 seconds'
series = t.get('integration', '5second', condensed=True)
print ' count', len(series)
print ' min ', min(series)
print ' max ', max(series)
print ' avg ', (sum(series) / len(series))
print 'last minute'
series = t.get('integration', 'minute', condensed=True)
print ' count', len(series)
print ' min ', min(series)
print ' max ', max(series)
print ' avg ', (sum(series) / len(series))
print 'last hour'
series = t.get('integration', 'hour', condensed=True)
print ' count', len(series)
print ' min ', min(series)
print ' max ', max(series)
print ' avg ', (sum(series) / len(series))