def get_time_series(metric_name): """Sends an HTTP query to the tsdb getting a single time_series corresponding to a metric """ series = odb.ts_get(metric_name, dt.datetime(2016, 1, 18, 14, 10), dt.datetime(2016, 12, 24, 11, 30)) return series
def gatherOpenTsdSubnetStats(openTsdHost, subnetItem, startTime, endTime, fields): statList = [] if fields is None or len(fields)==0: return None, "No fields provided" for field in fields: try: print 'Subnet ID: %s' % (subnetItem['subnet_id']) data = opd.ts_get(field, startTime, endTime, 'subnetId=%s' % (subnetItem['subnet_id']), hostname=openTsdHost) except : data = None pass if data is not None: #print list(data) if data.empty: pass else: #Convert to DataFrame df = data.to_frame(name=field) #Generate Time Delta df['time'] = df.index df['delta'] = ((df['time'] - df['time'].shift()).fillna(60)) df['deltas'] = df['delta'].apply(lambda x: int( x.total_seconds() ) ) df['bits'] = df[field].apply(lambda x: x*8) df['bps'] = df.apply(lambda row: (int(row['bits'] * 1.0 / row['deltas']) if row['deltas'] >0 else 0), axis=1) print "Panda: df.ix=%s\n field:%s\n\n" % (df.ix[:,'bps':'bps'], field) return statList, ""
def get_host_series(metric_name, host, ts, tdelta): """Sends an HTTP query to the tsdb getting a single time_series corresponding to a (host) metric using a start datetime and a delta in seconds """ series = odb.ts_get(metric_name, ts, ts + dt.timedelta(0, tdelta), tags=host) return series
def test_wrong_host(): with pytest.raises(urllib2.URLError): ts1 = opd.ts_get('cipsi.seeds.test1.temperature', dt.datetime(2013, 04, 03), dt.datetime(2013, 04, 10), 'nodes=0013A2004061646F', hostname='haisen23.ux.ui.no', trim=False)
def test_wrong_time_span(): ts1 = opd.ts_get('cipsi.seeds.test1.temperature', dt.datetime(2015, 04, 03), dt.datetime(2015, 04, 10), 'node=0013A2004061646F', hostname='haisen23.ux.uis.no') assert len(ts1) == 0
def test_basic_without_trim(): ts1 = opd.ts_get('cipsi.seeds.test1.temperature', dt.datetime(2013, 04, 03), dt.datetime(2013, 04, 10), 'node=0013A2004061646F', hostname='haisen23.ux.uis.no', trim=False) assert len(ts1) == 5728
def test_basic_with_trim(): #assumes all default values except hostname and tag: agg='avg', rate=False, downsample='', port=4242, trim=True ts1 = opd.ts_get('cipsi.seeds.test1.temperature', dt.datetime(2013, 04, 03), dt.datetime(2013, 04, 10), 'node=0013A2004061646F', hostname='haisen23.ux.uis.no') assert len(ts1) == 5607
import opentsdb_pandas as opd import datetime as dt import urllib2 import json # Large amount of points (4567) # ts1 = opd.ts_get('cipsi.weather.TA', dt.datetime(2014, 4, 4, 12, 00), dt.datetime(2014, 5, 6, 12, 00), 'station=44640', hostname='haisen36.ux.uis.no') # Medium amount of points (2435) # ts1 = opd.ts_get('cipsi.weather.TA', dt.datetime(2014, 4, 4, 12, 00), dt.datetime(2014, 4, 21, 12, 00), 'station=44640', hostname='haisen36.ux.uis.no') # Small amount of points (1284) ts1 = opd.ts_get( "cipsi.weather.TA", dt.datetime(2014, 4, 4, 12, 00), dt.datetime(2014, 4, 13, 12, 00), "station=44640", hostname="haisen36.ux.uis.no", ) aux = json.dumps(ts1.T.as_matrix().tolist(), indent=4) print aux