I am reading values from my tempodb database using the following code:
import datetime
from tempodb import Client
client = Client("key", "secret")
start = datetime.datetime(2014, 3, 28)
end = datetime.datetime(2014, 3, 29)
data = client.read_key("custom", start, end, interval="1hour", function="mean")
print data
The code works fine, and it gets data points. However, it gets them in the format 'DataSet'
, which is TempoDB's format for data points. But they don't show how to convert from this format to actual coordinates or numbers. Here is the data that the code is returning:
{'series': <tempodb.base.Series object at 0x2500df0>,
'summary': <tempodb.base.Summary object at 0x250acb0>,
'end': datetime.datetime(2014, 3, 29, 0, 0, tzinfo=tzutc()),
'data': [<tempodb.base.DataPoint object at 0x250a2b0>,
<tempodb.base.DataPoint object at 0x250a270>,
<tempodb.base.DataPoint object at 0x250aa50>,
<tempodb.base.DataPoint object at 0x250a9f0>,
<tempodb.base.DataPoint object at 0x250aad0>,
<tempodb.base.DataPoint object at 0x250ab30>,
<tempodb.base.DataPoint object at 0x250ab90>,
<tempodb.base.DataPoint object at 0x250abf0>,
tempodb.base.DataPoint object at 0x250ac50>],
'start': datetime.datetime(2014, 3, 28, 0, 0, tzinfo=tzutc())}
Does anyone know how to convert form this format (DataSet) to actual coordinates?
EDIT:
Here is my current code:
import datetime
from tempodb import Client
client = Client("key", "secret")
start = datetime.datetime(2014, 3, 28)
end = datetime.datetime(2014, 3, 29)
data = client.read_key("custom", start, end, interval="1hour", function="mean")
print data
for point in data['data']:
print(point.value)
This outputs the following, with a TypeError
:
{'series': <tempodb.base.Series object at 0x15dae30>, 'summary': <tempodb.base.Summary object at 0x15e4d30>, 'end': datetime.datetime(2014, 3, 29, 0, 0, tzinfo=tzutc()), 'data': [<tempodb.base.DataPoint object at 0x15e4910>, <tempodb.base.DataPoint object at 0x15e42d0>, <tempodb.base.DataPoint object at 0x15e4ab0>, <tempodb.base.DataPoint object at 0x15e4ad0>, <tempodb.base.DataPoint object at 0x15e4b70>, <tempodb.base.DataPoint object at 0x15e4bd0>, <tempodb.base.DataPoint object at 0x15e4c10>, <tempodb.base.DataPoint object at 0x15e4c70>, <tempodb.base.DataPoint object at 0x15e4cd0>], 'start': datetime.datetime(2014, 3, 28, 0, 0, tzinfo=tzutc())}
Traceback (most recent call last):
File "readtempo.py", line 10, in <module>
for point in data['data']:
TypeError: 'DataSet' object has no attribute '__getitem__'
According to the tempodb
python client source code, you can use ts
attribute:
for point in data.data:
print(point.ts.isoformat())
Also check to_json() method.
Hope that helps.