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)
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)
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)
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)
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)
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, '')
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, '')
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
def fromPandas(series): # I'm missing Haskell's zipWith here... return [DataPoint(x[0], x[1]) for x in zip(series.index, series)]
""" 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)
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)
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)
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
def write(series, time, data): client.write_key(series, [DataPoint(time, data)])