def internal_state(): '''Serve a json representation of internal agentstate as meta data ''' data = { 'services': { 'capture': ServiceStatus.str(get_service_status(Service.CAPTURE)), 'ingest': ServiceStatus.str(get_service_status(Service.INGEST)), 'schedule': ServiceStatus.str(get_service_status(Service.SCHEDULE)), 'agentstate': ServiceStatus.str(get_service_status(Service.AGENTSTATE)) } } return make_response(jsonify({'meta': data}))
def home(): '''Serve the status page of the capture agent. ''' # Get IDs of existing preview images preview = config()['capture']['preview'] previewdir = config()['capture']['preview_dir'] preview = [p.replace('{{previewdir}}', previewdir) for p in preview] preview = zip(preview, range(len(preview))) preview = [p[1] for p in preview if os.path.isfile(p[0])] # Get limits for recording table try: limit_upcoming = int(request.args.get('limit_upcoming', 5)) limit_processed = int(request.args.get('limit_processed', 15)) except ValueError: limit_upcoming = 5 limit_processed = 15 db = get_session() upcoming_events = db.query(UpcomingEvent)\ .order_by(UpcomingEvent.start)\ .limit(limit_upcoming) recorded_events = db.query(RecordedEvent)\ .order_by(RecordedEvent.start.desc())\ .limit(limit_processed) recording = get_service_status(Service.CAPTURE) == ServiceStatus.BUSY uploading = get_service_status(Service.INGEST) == ServiceStatus.BUSY processed = db.query(RecordedEvent).count() upcoming = db.query(UpcomingEvent).count() return render_template('home.html', preview=preview, config=config(), recorded_events=recorded_events, upcoming_events=upcoming_events, recording=recording, uploading=uploading, processed=processed, upcoming=upcoming, limit_upcoming=limit_upcoming, limit_processed=limit_processed, dtfmt=dtfmt)
def collect(self): service_states = StateSetMetricFamily( 'pyca_service_state_info', 'Service State of pyCA processes', labels=['service', 'state']) for service in Service.values(): service_states.add_metric([Service.str(service)], self.get_state_dict( get_service_status(service))) yield service_states
def home(): '''Serve the status page of the capture agent. ''' # Get IDs of existing preview images preview = config()['capture']['preview'] previewdir = config()['capture']['preview_dir'] preview = [p.replace('{{previewdir}}', previewdir) for p in preview] preview = zip(preview, range(len(preview))) preview = [p[1] for p in preview if os.path.isfile(p[0])] # Get limits for recording table try: limit_upcoming = int(request.args.get('limit_upcoming', 5)) limit_processed = int(request.args.get('limit_processed', 15)) except ValueError: limit_upcoming = 5 limit_processed = 15 db = get_session() upcoming_events = db.query(UpcomingEvent)\ .order_by(UpcomingEvent.start)\ .limit(limit_upcoming) recorded_events = db.query(RecordedEvent)\ .order_by(RecordedEvent.start.desc())\ .limit(limit_processed) recording = get_service_status(Service.CAPTURE) \ == ServiceStatus.BUSY uploading = get_service_status(Service.INGEST) \ == ServiceStatus.BUSY processed = db.query(RecordedEvent).count() upcoming = db.query(UpcomingEvent).count() return render_template('home.html', preview=preview, config=config(), recorded_events=recorded_events, upcoming_events=upcoming_events, recording=recording, uploading=uploading, processed=processed, upcoming=upcoming, limit_upcoming=limit_upcoming, limit_processed=limit_processed, dtfmt=dtfmt)