Beispiel #1
0
class LevelTsdCarbon(TimeSeriesDatabase):
    plugin_name = 'level-tsd'
    _pesudo_singleton = None

    @staticmethod
    def _scrub_metric(s):
        s = s.translate(None, r'?*[]/')  # smash wildcard charaters
        s = re.sub(r'\.+', r'.', s)  # squash multiple dots
        return s

    def __init__(self, settings):
        self.db = LevelTsdBase(settings['LOCAL_DATA_DIR'])
        self.writer = LevelTsdWriter(self.db)
        LevelTsdCarbon._pesudo_singleton = self

    def exists(self, metric):
        sm = LevelTsdCarbon._scrub_metric(metric)
        return self.db.indexer.get_metric_shortcut(sm)

    def create(self, metric, **options):
        sm = LevelTsdCarbon._scrub_metric(metric)
        self.db.indexer.make_metric_shortcut(sm, self.db.dir_db)

    def write(self, metric, datapoints):
        sm = LevelTsdCarbon._scrub_metric(metric)
        for point in datapoints:
            self.writer.write(sm, point[0], point[1])

    def close(self):
        self.db = None
        self.writer = None
Beispiel #2
0
    def test_create_metric(self):
        tsd = LevelTsdBase('/tmp')
        writer = LevelTsdWriter(tsd)
        ddb = tsd.dir_db
        mdb = tsd.indexer

        self.assertTrue(writer.write("foo.bar", 1, 2.4))
        self.assertTrue(writer.write("foo.baz", int(time()), 12.1))
        self.assertTrue(writer.write("foo.baz", int(time()) - 90000, -1))
        self.assertTrue(writer.write("foo.bazigar", 112, 3.14))
        self.assertTrue(writer.write("foo.bazigar", 90000, 3.14))
        self.assertTrue(writer.write("foo.bazigar", 90000000, 2.18))

        tsd.flush(True)

        self.assertTrue(writer.purge_db_data("foo.bazigar"))
        self.assertTrue(writer.purge_db_data("foo"))
Beispiel #3
0
    def test_create_metric(self):
        tsd = LevelTsdBase('/tmp')
        writer = LevelTsdWriter(tsd)
        ddb = tsd.dir_db
        mdb = tsd.indexer

        self.assertTrue(writer.write("foo.bar", 1, 2.4))
        self.assertTrue(writer.write("foo.baz", int(time()), 12.1))
        self.assertTrue(writer.write("foo.baz", int(time()) - 90000, -1))
        self.assertTrue(writer.write("foo.bazigar", 112, 3.14))
        self.assertTrue(writer.write("foo.bazigar", 90000, 3.14))
        self.assertTrue(writer.write("foo.bazigar", 90000000, 2.18))

        tsd.flush(True)

        self.assertTrue(writer.purge_db_data("foo.bazigar"))
        self.assertTrue(writer.purge_db_data("foo"))
Beispiel #4
0
    def test_read_metric(self):
        tsd = LevelTsdBase('/tmp')
        reader = LevelTsdReader(tsd)
        writer = LevelTsdWriter(tsd)

        self.assertTrue(writer.write("just.purge", 1, 2.4))
        self.assertTrue(writer.write("just.delete", 1, 2.4))
        self.assertTrue(writer.write("fubar.zigar", 112, 3.14))
        self.assertTrue(writer.write("fubar.zigar", 90000, 3.14))
        self.assertTrue(writer.write("fubar.zigar", 90000000, 2.18))

        tsd.flush(True)

        just_children = reader.get_child_nodes('just')
        self.assertTrue('purge' in just_children)
        self.assertTrue('delete' in just_children)
        self.assertTrue(reader.is_node_leaf('just.purge'))

        dp = list(reader.get_range_data("just.purge", 1, 100))
        print dp
        self.assertEqual(len(dp), 1)

        dp = list(reader.get_range_data("fubar.zigar", 1, 100000))
        print dp
        self.assertEqual(len(dp), 2)
Beispiel #5
0
 def __init__(self):
     self.reader = LevelTsdReader(LevelTsdCarbon._pesudo_singleton.db)
     self.writer = LevelTsdWriter(LevelTsdCarbon._pesudo_singleton.db)
Beispiel #6
0
 def __init__(self, settings):
     self.db = LevelTsdBase(settings['LOCAL_DATA_DIR'])
     self.writer = LevelTsdWriter(self.db)
     LevelTsdCarbon._pesudo_singleton = self