def test_to_json(self):
     ts = datetime.datetime(2012, 3, 27, 1, 2, 3, 4)
     dp = DataPoint(ts, 12.34)
     expected = {
         't': '2012-03-27T01:02:03.000004',
         'v': 12.34
     }
     json = dp.to_json()
     self.assertEqual(json, expected)
Example #2
0
 def test_init(self):
     start = datetime.datetime(2012, 1, 1)
     end = datetime.datetime(2012, 1, 2)
     series = Series("id", "key")
     data = [DataPoint(start, 12.34), DataPoint(end, 23.45)]
     summary = Summary()
     dataset = DataSet(series, start, end, data, summary)
     self.assertEqual(dataset.series, series)
     self.assertEqual(dataset.start, start)
     self.assertEqual(dataset.end, end)
     self.assertEqual(dataset.data, data)
     self.assertEqual(dataset.summary, summary)
Example #3
0
    def test_read(self):
        self.client.session.get.return_value = MockResponse(200, """[{
            "series": {
                "id": "id",
                "key": "key1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000Z",
            "end": "2012-03-28T00:00:00.000Z",
            "data": [{"t": "2012-03-27T00:00:00.000Z", "v": 12.34}],
            "summary": {}
        }]""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        datasets = self.client.read(start, end, keys=['key1'])

        expected = [
            DataSet(Series('id', 'key1'), start, end, [DataPoint(start, 12.34)], Summary())]
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00&key=key1',
            auth=('key', 'secret'),
            headers=self.get_headers
        )
        self.assertEqual(datasets, expected)
Example #4
0
    def test_read_key_escape(self):
        self.client.session.get.return_value = MockResponse(
            200, """{
            "series": {
                "id": "id",
                "key": "ke:y/1",
                "name": "",
                "tags": [],
                "attributes": {}
            },
            "start": "2012-03-27T00:00:00.000",
            "end": "2012-03-28T00:00:00.000",
            "data": [{"t": "2012-03-27T00:00:00.000", "v": 12.34}],
            "summary": {},
            "rollup": {}
        }""")

        start = datetime.datetime(2012, 3, 27)
        end = datetime.datetime(2012, 3, 28)
        dataset = self.client.read_key('ke:y/1', start, end)

        expected = DataSet(Series('id', 'ke:y/1'), start, end,
                           [DataPoint(start, 12.34)], Summary(), Rollup())
        self.client.session.get.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/data/?start=2012-03-27T00%3A00%3A00&end=2012-03-28T00%3A00%3A00',
            auth=('key', 'secret'),
            headers=self.get_headers)
        print dataset
        print expected
        self.assertEqual(dataset, expected)
Example #5
0
 def push(self, database, series, value):
     """
     Pushes a single value with current timestamp to the given database/series
     """
     db = self._databases[database]
     client = Client(db['api_key'], db['api_secret'])
     data = [DataPoint(datetime.now(), float(value))]
     client.write_key(series, data)
 def test_from_json(self):
     json = {
         't': '2012-03-27T01:02:03.000004',
         'v': 12.34
     }
     dp = DataPoint.from_json(json)
     ts = datetime.datetime(2012, 3, 27, 1, 2, 3, 4)
     expected = DataPoint(ts, 12.34)
     self.assertEqual(dp, expected)
Example #7
0
    def test_increment_key_escape(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 1)]
        result = self.client.increment_key("ke:y/1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/ke%3Ay%2F1/increment/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 1}]""",
            headers=self.post_headers)
        self.assertEquals(result, '')
Example #8
0
    def test_write_key(self):
        self.client.session.post.return_value = MockResponse(200, "")
        data = [DataPoint(datetime.datetime(2012, 3, 27), 12.34)]
        result = self.client.write_key("key1", data)

        self.client.session.post.assert_called_once_with(
            'https://example.com/v1/series/key/key1/data/',
            auth=('key', 'secret'),
            data="""[{"t": "2012-03-27T00:00:00", "v": 12.34}]""",
            headers=self.post_headers)
        self.assertEquals(result, '')
Example #9
0
 def push(self, database, series, value):
     """
     Pushes a single value with current timestamp to the given database/series
     """
     try:
         db = self._databases[database]
         client = Client(db['api_key'], db['api_secret'])
         data = [DataPoint(datetime.now(), float(value))]
         client.write_key(series, data)
         self.last_response = 'OK'
         return True
     except Exception as e:
         self.last_response = e
         return False
Example #10
0
def fromPandas(series):
    # I'm missing Haskell's zipWith here...
    return [DataPoint(x[0], x[1]) for x in zip(series.index, series)]
Example #11
0
"""
http://tempo-db.com/api/write-series/#write-series-by-key
"""

import datetime
import random
from tempodb import Client, DataPoint

client = Client('your-api-key', 'your-api-secret')

date = datetime.datetime(2012, 1, 1)

for day in range(1, 10):
    # print out the current day we are sending data for
    print date

    data = []
    # 1440 minutes in one day
    for min in range(1, 1441):
        data.append(DataPoint(date, random.random() * 50.0))
        date = date + datetime.timedelta(minutes=1)

    client.write_key('your-custom-key', data)
Example #12
0
 def test_from_json(self):
     json = {'t': '2012-03-27T01:02:03.000004Z', 'v': 12.34}
     dp = DataPoint.from_json(json)
     ts = datetime.datetime(2012, 3, 27, 1, 2, 3, 4)
     expected = DataPoint(ts, 12.34)
     self.assertEqual(dp, expected)
Example #13
0
 def test_to_json(self):
     ts = datetime.datetime(2012, 3, 27, 1, 2, 3, 4)
     dp = DataPoint(ts, 12.34)
     expected = {'t': '2012-03-27T01:02:03.000004', 'v': 12.34}
     json = dp.to_json()
     self.assertEqual(json, expected)
Example #14
0
 def test_init(self):
     now = datetime.datetime.now()
     dp = DataPoint(now, 12.34)
     self.assertEqual(dp.ts, now)
     self.assertEqual(dp.value, 12.34)
        date = datetime.datetime.now()
# 1: Pressure
# correct pressure for height above sea level
# see http://de.wikipedia.org/wiki/Barometrische_H%C3%B6henformel#Reduktion_auf_Meeresh.C3.B6he
# baro[0] is the current temperature of the sensor
# baro[1] is the absolute atmospheric pressure
# p0 is the corrected atmospheric pressure adjusted to HEIGHT
        temperature = baro[0]
        temperature = 6
        efactor=5.6402 * (-0.0916 + math.exp(0.06 * temperature))
        xfactor = (9.80665 / (287.05 * ((273.15 + temperature) + .12 * efactor + 0.0065 * (HEIGHT/2)))) * HEIGHT
        p0 = baro[1] * math.exp(xfactor)
# upload to tempoDB
        data = []
        data.append(DataPoint(date, p0))
        tmp=tempodbclient.write_key(SERIES_KEY1, data)

# 2. Temperature
        data = []
        data.append(DataPoint(date, temperature))
        tmp=tempodbclient.write_key(SERIES_KEY2, data)
        print tmp
        sys.stdout.flush()

# wait 5minutes
        time.sleep(300.0)
   
    tag.disconnect()
    del tag
Example #16
0
def write(series, time, data):
    client.write_key(series, [DataPoint(time, data)])