Esempio n. 1
0
 def test_write_100000_points_in_5000_chunks_single_process(self):
     for chunk in range(0, 20):
         print('Sending chunk ', chunk)
         dummies = DummyPoints(self.series, npoints=5000, decimals=4, delta_seconds=600, opt='one_point_per_series')
         pts = dummies.dump()
         print('Sent bytes: ', len(pts))
         r = self.dbclient.write(dbname=self.dbname, points=dummies.dump(), precision='n')
         self.assertEqual(r.status_code, 204)
Esempio n. 2
0
    def setUp(self):  # Executes before every testcase

        self.single_point = Measurement(name=self.series,
                                        fields={'X': -100, 'Y': 720.0, 'T':  30.0},
                                        timestamp='2013-12-30 10:36:43.567')

        self.dummies = DummyPoints(self.series, npoints=1000, decimals=4, delta_seconds=600)

        self.dbclient = InfluxDBClient(host=self.host, port=self.port, http_timeout=600, http_retries=3)
        self.dbclient.create_database(self.dbname)

        self.startTime = time()
Esempio n. 3
0
 def write_worker(self, npoints, nchunks):
     for chunk in range(0, nchunks):
         print('Sending chunk ', chunk)
         dummies = DummyPoints(self.series, npoints=npoints, decimals=4, delta_seconds=6000, opt='one_point_per_series')
         self.dbclient.write(dbname=self.dbname, points=dummies.dump(), precision='n')
Esempio n. 4
0
 def test_bulk_write_into_single_series(self):
     dummies = DummyPoints(self.series, npoints=5000, decimals=4, delta_seconds=600, opt='single_series')
     #print(dummies.dump())
     r = self.dbclient.write(dbname=self.dbname, points=dummies.dump(), precision='n')
     self.assertEqual(r.status_code, 204)
Esempio n. 5
0
class DBClientTest(unittest.TestCase):

    # host = '46.101.128.140'
    host = '10.6.74.60'

    port = 8086

    dbname = 'unittestdb'
    user = '******'
    password = '******'

    series = 'Tilt'

    def setUp(self):  # Executes before every testcase

        self.single_point = Measurement(name=self.series,
                                        fields={'X': -100, 'Y': 720.0, 'T':  30.0},
                                        timestamp='2013-12-30 10:36:43.567')

        self.dummies = DummyPoints(self.series, npoints=1000, decimals=4, delta_seconds=600)

        self.dbclient = InfluxDBClient(host=self.host, port=self.port, http_timeout=600, http_retries=3)
        self.dbclient.create_database(self.dbname)

        self.startTime = time()

    def tearDown(self):  # Executes after every testcase
        t = time() - self.startTime
        print('Test <%s> executed in: %.3f seconds' % (self.id(), t))

        self.dbclient.drop_database(self.dbname)

    #@unittest.skip("Skipped")
    def test_InfluxDBClient_constructor(self):
        dbclient = InfluxDBClient(host=self.host, port=self.port, http_timeout=60, http_retries=3)
        print(dbclient)

    #@unittest.skip("Skipped")
    def test_create_database(self):
        self.dbclient.create_database(self.dbname)

    #@unittest.skip("Skipped")
    def test_write_single_Measurement(self):
        r = self.dbclient.write(dbname=self.dbname, points=self.single_point.to_bytes(), precision='n')
        self.assertEqual(r.status_code, 204)

    #@unittest.skip("Skipped")
    def test_query(self):
        self.dbclient.write(dbname=self.dbname, points=self.single_point.to_bytes(), precision='n')
        q = self.dbclient.query(dbname=self.dbname, query='SELECT * FROM %s' % self.series)
        print('Single point query: ', q)
        self.assertEqual(q['results'][0]['series'][0]['values'][0][1], 30)

    #@unittest.skip("Skipped")
    def test_write_in_memory_dumped_bytearray(self):
        # bytearray (or bytes, dumped in-memory) (non-chunked, not compressed)
        self.dbclient.write(dbname=self.dbname, points=self.dummies.dump(), precision='n')

    #@unittest.skip("Skipped")
    def test_write_container(self):

        measurement1 = Measurement(name='TestSeries1',
                                   fields={'X': -100, 'Y': 720.0, 'T':  30.0},
                                   timestamp='2013-12-30 10:36:43.567')

        measurement2 = Measurement(name='TestSeries1',
                                   fields={'X': -200, 'Y': 700.0, 'T':  25.0},
                                   timestamp='2013-12-30 10:37:43.567')

        measurement3 = Measurement(name='TestSeries1',
                                   fields={'X': -20, 'Y': 70.0, 'T':  15.0},
                                   timestamp='2013-12-30 10:38:43.567')

        container = Container(measurement1, measurement2)
        container.append(measurement3)
        print(container)

        self.dbclient.write(dbname=self.dbname, points=container.dump(decimals=4), precision='n')

    #@unittest.skip("Skipped")
    def test_chunked_write(self):
        # generator (chunked HTTP POST)
        r = self.dbclient.write(dbname=self.dbname, points=self.dummies, precision='n')
        self.assertEqual(r.status_code, 204)

    #@unittest.skip("Skipped")
    def test_write_gzipped_from_memory(self):
        # bytearray (or bytes, dumped in-memory) (non-chunked, compressed)
        r = self.dbclient.write(dbname=self.dbname, points=self.dummies.dump(compress=True), precision='n', gzipped=True)
        self.assertEqual(r.status_code, 204)

    #@unittest.skip("Skipped")
    def test_bulk_write_into_single_series(self):
        dummies = DummyPoints(self.series, npoints=5000, decimals=4, delta_seconds=600, opt='single_series')
        #print(dummies.dump())
        r = self.dbclient.write(dbname=self.dbname, points=dummies.dump(), precision='n')
        self.assertEqual(r.status_code, 204)

    @unittest.skip("Skipped")
    def test_write_100000_points_in_5000_chunks_single_process(self):
        for chunk in range(0, 20):
            print('Sending chunk ', chunk)
            dummies = DummyPoints(self.series, npoints=5000, decimals=4, delta_seconds=600, opt='one_point_per_series')
            pts = dummies.dump()
            print('Sent bytes: ', len(pts))
            r = self.dbclient.write(dbname=self.dbname, points=dummies.dump(), precision='n')
            self.assertEqual(r.status_code, 204)

    def write_worker(self, npoints, nchunks):
        for chunk in range(0, nchunks):
            print('Sending chunk ', chunk)
            dummies = DummyPoints(self.series, npoints=npoints, decimals=4, delta_seconds=6000, opt='one_point_per_series')
            self.dbclient.write(dbname=self.dbname, points=dummies.dump(), precision='n')

    @unittest.skip("Skipped")
    def test_write_100000_points_in_10000_chunks_multiprocess(self):

        nworkers = 20
        npoints = 1000
        nchunks = 10

        workers = []
        for i in range(nworkers):
            p = multiprocessing.Process(target=self.write_worker, args=(), kwargs={'npoints': npoints,
                                                                                   'nchunks': nchunks})
            workers.append(p)
            p.start()

        for p in workers:
            p.join()