Esempio n. 1
0
 def screen(self):
     bras_stats = ''
     for bras in Bras.objects.active():
         bras_stats += ' {0}: {1} sessions were cached at {2}\n'.format(bras.name, bras.last_update_sessions(),
                                                                      bras.last_update_datetime())
     current_time = time()
     delta = current_time - self.previos_time
     cm = coa_counter()
     stats = cache_stats()
     completed_notifications_num = UserNotificationRecord.objects.filter(is_completed=True).count()
     notifications_num = UserNotificationRecord.objects.count()
     result = SCREEN_TEMPLATE.format(
         cm=cm,
         cmps=(cm - self.previos_cm) / delta,
         cq=CoaQueue.objects.all().count(),
         bras=bras_stats,
         mi=stats['curr_items'],
         ms=stats['cmd_set'],
         msps=(stats['cmd_set'] - self.previos_ms) / delta,
         mg=stats['cmd_get'],
         mgps=(stats['cmd_get'] - self.previos_mg) / delta,
         la='  '.join(map(str, getloadavg())),
         nc=completed_notifications_num,
         ncp=completed_notifications_num / notifications_num * 100
     )
     self.previos_time = current_time
     self.previos_cm = cm
     self.previos_mg = stats['cmd_get']
     self.previos_ms = stats['cmd_set']
     return result
Esempio n. 2
0
    def handle(self, *args, **options):
        stats = cache_stats()
        stats['coa_counter'] = coa_counter()
        stats['coa_queue'] = CoaQueue.objects.all().count()

        if options['zenoss']:
            formatted_stats = 'OK | ' + ' '.join(['{0}={1}'.format(key, stats[key]) for key in stats])
            print(formatted_stats)
        elif options['screen']:
            try:
                window = curses.initscr()
                curses.noecho()
                window.clear()
                window.nodelay(True)
            except:
                curses.endwin()
                traceback.print_exc()
                sys.exit(1)
            key_pressed = None
            screen_refreshed = 0.00
            while key_pressed not in ['q', 'Q']:
                if time() - screen_refreshed >= REFRESH_DELAY:
                    window.clear()
                    try:
                        s = str(self.screen().encode('utf-8'))
                        window.addstr(1, 1, s)
                    except:
                        curses.endwin()
                        traceback.print_exc()
                        sys.exit(1)
                    screen_refreshed = time()
                try:
                    key_pressed = window.getkey()
                except:
                    key_pressed = None
                sleep(0.5)
            curses.endwin()
        else:
            for key in stats:
                print ('{0} : {1}'.format(key, stats[key]))