def get_master_errors(stream): hit = keen.extraction(stream, 'this_3_years', filters=[ {"property_name": "branch", "operator": "eq", "property_value": 'HEAD'}]) if not hit: raise ValueError('No data for master branch found') return hit[-1]
def get_latest_buildtime(repo=None): """ Query Keen.io database and retrieve buildtime duration of last build. Parameters : - repo : repo name (fe. buildtimetrend/python-lib) """ if repo is None or not is_readable(): return -1 try: result = keen.extraction( "build_jobs", property_names="job.duration", latest=1, filters=[get_repo_filter(repo)] ) except requests.ConnectionError: logger.error("Connection to Keen.io API failed") return -1 except keen.exceptions.KeenApiError as msg: logger.error("Error in keenio.get_latest_buildtime() : " + str(msg)) return -1 if is_list(result) and len(result) > 0 and \ check_dict(result[0], None, ['job']) and \ check_dict(result[0]['job'], None, ['duration']): return result[0]['job']['duration'] return -1
def test_extraction(self, get): get.return_value = self.LIST_RESPONSE resp = keen.extraction("query test", timeframe="today", property_names=["number"]) self.assertEqual(type(resp), list) for event in resp: self.assertTrue("string" not in event)
def query(): final_filter = [] """Custom queries using keen.io as a backend. The frontent form must pass values in using the names `property_name` - The name of the property you wish to query `property_value` - The value of the property being entered `operator` - 'eq', 'gt', 'lt' """ if current_user.user_type != 'admin': return 403 if request.method == 'POST': # Run the query # Used to display the query filters on the view. filter_view = [request.form.to_dict()] number_of_filters = len(request.form) / 3 for filter_number in range(0, number_of_filters): temp = {} temp['operator'] = request.form["operator" + str(filter_number)] temp['property_value'] = request.form["property_value" + str(filter_number)] temp['property_name'] = request.form["property_name" + str(filter_number)] final_filter.append(temp) response = keen.extraction('answers', filters=final_filter) if len(response) == 0: response = 'No results found' final_filter = json.dumps(final_filter) # response = json.dumps(response, indent=2, sort_keys=True) return render_template('custom_analysis.haml', filters=final_filter, questions=Question.get_active(), filter_view=filter_view, number_of_filters=number_of_filters, response=response) return 'Why'
def test_extraction(self): resp = keen.extraction("query test", timeframe="today") self.assertEqual(type(resp), list)
def get_master_errors(stream): hit = keen.extraction(stream, 'this_5_years', filters=[ {"property_name": "commit", "operator": "eq", "property_value": remote_head}]) if not hit: raise ValueError('No data for master branch found') return hit[-1]
def test_extraction(self): resp = keen.extraction("query test", timeframe="today") assert type(resp) is list
def test_extraction(self): resp = keen.extraction("query test", timeframe="today") assert isinstance(resp, list)
def test_extraction(self): resp = keen.extraction("query test", timeframe="today", property_names=["number"]) self.assertEqual(type(resp), list) for event in resp: self.assertTrue("string" not in event)
import sys import csv import matplotlib.pyplot as plt import numpy as num import jdcal import dateutil import astropy.time plt.ion() duration = input("Duration of analysis until now in days or hours (nd or nh) : ") if duration[-1:] == 'd' or duration[-1:] == 'D': tf = "this_"+duration[:-1]+"_days" if duration[-1:] == 'h' or duration[-1:] == 'H': tf = "this_"+duration[:-1]+"_hours" c = keen.extraction("Beehive_MyDatas", property_names="data", timeframe=tf) ds = keen.extraction("Beehive_MyDatas", property_names="published_at", timeframe=tf) ne = len(c) tb = num.empty([ne,5],num.float) tt = num.empty([ne],num.float) for i in range(ne): for j in range(5): tb[i,j] = float(c[i]['data'].split(" ")[2*j+1]) # parsing de la date pour convertir en julien dss = ds[i]['published_at'] dt1 = dss.split('-') dt2 = dt1[-1].split('T') dt3 = dt2[-1].split(':') dt4 = dt3[-1].split('Z') sd = dt1[0]+'.'+dt1[1]+'.'+dt2[0] # year, month, day