Esempio n. 1
0
 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")
Esempio n. 2
0
 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')),
              }
Esempio n. 3
0
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))
Esempio n. 4
0
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))
Esempio n. 5
0
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]