import logging from flask import Flask, Response, render_template, request from server import metrics from datetime import datetime from datetime import timedelta import json app = Flask(__name__) # UI endpoint for dashboard @app.route("/") def index(): return render_template('index.html') # Api endpoint for fetching list of stores @app.route("/api/stores") def stores(): logging.info("hey") stores = open("stores.json", "r") resp = Response( response=stores.read(), status=200, mimetype="application/json" ) resp.headers['Access-Control-Allow-Origin'] = '*' return resp # Api endpoint for fetching metrics by store @app.route("/api/metrics", methods=['GET']) def metrics_srv(): logging.info("request: {}".format(request)) try: dms_ids = request.args.get("dms_ids").split(",") start_back = int(request.args.get("start_back")) start = datetime.now() - timedelta(seconds=start_back) end_back = int(request.args.get("end_back", "0")) end = datetime.now() - timedelta(seconds=end_back) aggr = request.args.get("aggr", "cnt,max,min").split(",") resp = Response( response=json.dumps(metrics.get_metrics( dms_ids=dms_ids, start=start, end=end, aggr=aggr ), indent=4), status=200, mimetype="application/json" ) resp.headers['Access-Control-Allow-Origin'] = '*' return resp except Exception as ex: logging.error(ex) return Response( response="hello", status=200, mimetype="application/json") if __name__ == "__main__": app.run()