def __init__(self, api=MongoStampedAPI(), logsQuery=logsQuery()): self.stamp_collection = api._stampDB._collection self.acct_collection = api._userDB._collection self.query = logsQuery self.writer = statWriter("dashboard") conn = SDBConnection(keys.aws.AWS_ACCESS_KEY_ID, keys.aws.AWS_SECRET_KEY) self.domain = conn.get_domain("dashboard")
def __init__(self): self.mongoQ = mongoQuery() self.logsQ = logsQuery() self.evals = { 'stamps': self.mongoQ.newStamps, 'agg_stamps': (lambda t0,t1: self.mongoQ.newStamps(v1_init(),t1)), 'accounts': self.mongoQ.newAccounts, 'agg_accts': (lambda t0,t1: self.mongoQ.newAccounts(v1_init(),t1)), 'friendships': (lambda t0, t1: self.logsQ.customQuery(t0,t1,'count(*)','/v1/friendships/create.json')), 'users': self.logsQ.activeUsers, 'comments': (lambda t0, t1: self.logsQ.customQuery(t0,t1,'count(*)','/v1/comments/create.json')), 'todos': (lambda t0, t1: self.logsQ.customQuery(t0,t1,'count(*)','/v1/todos/create.json')), 'todos_c': (lambda t0, t1: self.logsQ.customQuery(t0,t1,'count(*)','/v1/todos/complete.json')), 'likes': (lambda t0, t1: self.logsQ.customQuery(t0,t1,'count(*)','/v1/stamps/likes/create.json')), 'entities': (lambda t0, t1: self.logsQ.customQuery(t0,t1,'count(*)','/v1/entities/create.json')), 'friends': (lambda t0, t1: self.logsQ.customQuery(v1_init(),t1,'count(*)','/v1/friendships/create.json')), 'actions': (lambda t0, t1: self.logsQ.customQuery(v1_init(),t1,'count(*)','/v1/actions/complete.json')), }
def stress(request): query = logsQuery(stack_name) class qpsForm(forms.Form): intervals =[("5","5 seconds"),("10","10 seconds"),("30","30 Seconds"),("60","60 Seconds"),("300","5 Minutes"),("600","10 Minutes")] windows = [("30","30 seconds"),("60","60 Seconds"),("300","5 Minutes"),("600","10 Minutes"),("1800","30 Minutes"),("3600","1 Hour")] window = forms.CharField(max_length=30, widget=forms.Select(choices=windows)) interval = forms.CharField(max_length=30, widget=forms.Select(choices=intervals)) count_report = {} mean_report = {} headers = [] window = 0 interval = 1 if request.method == 'POST': form = qpsForm(request.POST) if form.is_valid(): window = int(form.cleaned_data['window']) interval = int(form.cleaned_data['interval']) count_report,mean_report = query.qpsReport(now(),interval,window) headers = map(lambda x: (now() - timedelta(seconds=(interval * x))), range(window / interval)) else: form = qpsForm() t = loader.get_template('../html/stress.html') c = Context({ 'hour': est().hour, 'minute': est().minute, 'stack': stack_name, 'form': form, 'count_results': count_report.iteritems(), 'mean_results': mean_report.iteritems(), 'n': range(0, window, interval), 'interval': interval, 'headers': headers, }) return HttpResponse(t.render(c))
def latency(request): query = logsQuery(stack_name) class latencyForm(forms.Form): uri = forms.CharField(max_length=30) start_date = forms.DateTimeField() end_date = forms.DateTimeField(required=False) blacklist= forms.CharField(required=False) whitelist= forms.CharField(required=False) customResults = [] if request.method == 'POST': form = latencyForm(request.POST) if form.is_valid(): uri = form.cleaned_data['uri'] bgn = form.cleaned_data['start_date'] end = form.cleaned_data['end_date'] blacklist = form.cleaned_data['blacklist'] whitelist = form.cleaned_data['whitelist'] if end is None: end = now() customResults = query.dailyLatencyReport(bgn,end,uri,blacklist,whitelist) print customResults else: form = latencyForm() else: form = latencyForm() blacklist = [] whitelist = [] try: blacklist = request.POST['blacklist'].split(',') except KeyError: try: whitelist = request.POST['whitelist'].split(',') except KeyError: pass is_blacklist = len(blacklist) > 0 is_whitelist = len(whitelist) > 0 report = query.latencyReport(dayAgo(today()),now(),None,blacklist,whitelist) t = loader.get_template('../html/latency.html') c = Context({ 'hour': est().hour, 'minute': est().minute, 'stack': stack_name, 'report': report, 'blacklist': blacklist, 'whitelist': whitelist, 'is_whitelist': is_whitelist, 'is_blacklist': is_blacklist, 'form': form, 'customResults': customResults }) return HttpResponse(t.render(c))
from libs.ec2_utils import get_stack from api.MongoStampedAPI import MongoStampedAPI from api.db.mongodb.MongoStatsCollection import MongoStatsCollection # utils.init_db_config('peach.db3') api = MongoStampedAPI() stamp_collection = api._stampDB._collection acct_collection = api._userDB._collection entity_collection = api._entityDB._collection todo_collection = api._todoDB._collection conn = SDBConnection(keys.aws.AWS_ACCESS_KEY_ID, keys.aws.AWS_SECRET_KEY) logsQuery = logsQuery('bowser') dash = Dashboard(api,logsQuery) stack_name = 'bowser' def index(request): today_stamps_hourly,todayStamps,yest_stamps_hourly,yestStamps,week_stamps_hourly,weekStamps,deltaStampsDay,deltaStampsWeek = dash.newStamps() today_accts_hourly,todayAccts,yest_accts_hourly,yestAccts,week_accts_hourly,weekAccts,deltaAcctsDay,deltaAcctsWeek = dash.newAccounts() today_users_hourly,todayUsers,yest_users_hourly,yestUsers,week_users_hourly,weekUsers,deltaUsersDay,deltaUsersWeek = dash.todaysUsers() stamp_graph = [today_stamps_hourly,yest_stamps_hourly,week_stamps_hourly] acct_graph = [today_accts_hourly,yest_accts_hourly,week_accts_hourly] users_graph = [today_users_hourly,yest_users_hourly,week_users_hourly]