コード例 #1
0
def get_qdb_conn(uri, cluster_public_key=None, user_security_file=None):
    if cluster_public_key and user_security_file:
        user, private_key = _parse_user_security_file(user_security_file)
        public_key = _slurp(cluster_public_key)
        return quasardb.Cluster(uri,
                                user_name=user,
                                user_private_key=private_key,
                                cluster_public_key=public_key)
    else:
        return quasardb.Cluster(uri)
コード例 #2
0
    def post(self):
        body = json.loads(request.data)
        range_ = body.get('range', None)
        targets = body.get('targets', None)

        if range_ != None and targets != None:

            cluster = app.config.get('QDB_CLUSTER_URI', None)
            separator = app.config.get('SEPARATOR_TS_LABEL', None)
            tag_grafana = app.config.get('TAG_TS_GRAFANA', None)

            if cluster != None and separator != None and tag_grafana != None:
                c = quasardb.Cluster(cluster)
                tag = c.tag(tag_grafana)
                timeseries = list(tag.get_entries())
                grafana_data = []

                from_ = range_.get('from', None)
                to_ = range_.get('to', None)
                range1start = dateutil.parser.parse(from_)
                range1end = dateutil.parser.parse(to_)

                timeseries = []
                # Grabbing all timeseries tagged with 'grafana' tag
                tag = c.tag(tag_grafana)
                entries = list(tag.get_entries())
                for entry in entries:
                    ts = c.ts(entry)
                    cols = ts.columns_info()
                    cols_name = []
                    for col in cols:
                        name = entry + separator + col.name
                        timeseries.append(name)

                # looping over targets returning datapoints for selected entries
                for t in targets:
                    for ts in timeseries:
                        if ts == t.get('target'):
                            ts_ = c.ts(ts.split(separator)[0])
                            col_ = ts.split(separator)[1]
                            col_selected = ts_.column(
                                quasardb.TimeSeries.DoubleColumnInfo(col_))
                            range1 = (range1start, range1end)
                            results = col_selected.get_ranges([range1])
                            res = json.dumps(results, default=json_serializer)
                            data = json.loads(res)
                            datapoints = []
                            for i in xrange(0, len(data)):
                                datapoints.append(
                                    [int(data[i][1]),
                                     int(data[i][0])])
                            grafana_data.append({
                                'target': ts,
                                'datapoints': datapoints
                            })
            return grafana_data
        else:
            return {
                'error': 'No range given for timeserie or missing target(s)'
            }
コード例 #3
0
    def post(self):
        cluster_uri = app.config.get('QDB_CLUSTER_URI', None)
        separator = app.config.get('SEPARATOR_TS_LABEL', None)

        if cluster_uri != None and separator != None:
            cluster = quasardb.Cluster(cluster_uri)
            tag = cluster.tag('grafana')
            entries = list(tag.get_entries())
            results = []
            for entry in entries:
                ts = cluster.ts(entry)
                cols = ts.columns_info()
                cols_name = []
                for col in cols:
                    name = entry + separator + col.name
                    result = {"text": name, "value": name}
                    results.append(result)
            return results
コード例 #4
0
import asyncio
import websockets
import json
import orjson
import quasardb
from datetime import timedelta

cluster = quasardb.Cluster("qdb://127.0.0.1:2836")
ts = cluster.ts("book")
try:
    ts.remove()
except:
    pass

try:
    columns = [
        quasardb.ColumnInfo(quasardb.ColumnType.Int64, "change_id"),
        quasardb.ColumnInfo(quasardb.ColumnType.Int64, "level"),
        quasardb.ColumnInfo(quasardb.ColumnType.Double, "bid"),
        quasardb.ColumnInfo(quasardb.ColumnType.Double, "ask"),
        quasardb.ColumnInfo(quasardb.ColumnType.Double, "bid_size"),
        quasardb.ColumnInfo(quasardb.ColumnType.Double, "ask_size"),
    ]

    ts.create(columns, shard_size=timedelta(seconds=720))
except quasardb.Error:
    pass

length = 20

batch_columns = [
コード例 #5
0
import quasardb
import datetime as dt
from datetime import timedelta, date
from random import randrange
import json, time, sys

c = quasardb.Cluster('qdb://127.0.0.1:2836')
timeseries = ['ts0', 'ts1']

cluster_uri = 'qdb://127.0.0.1:2836'
separator = '.'
results = []

if cluster_uri != None and separator != None:
    cluster = quasardb.Cluster(cluster_uri)
    tag = cluster.tag('grafana')
    entries = list(tag.get_entries())
    for entry in entries:
        ts = cluster.ts(entry)
        cols = ts.columns_info()
        cols_name = []
        for col in cols:
            name = entry + separator + col.name
            result = {"text": name, "value": name}
            results.append(result)

# insertion of some summy data
for tslabel in timeseries:
    ts = c.ts(tslabel)
    try:
        cols = ts.create([quasardb.TimeSeries.DoubleColumnInfo("col1")])
コード例 #6
0
def get_qdb_conn(uri):
    return quasardb.Cluster(uri)