def create_app(test_config=None): """create and configure the app""" app = Flask(__name__, static_folder="build/static", template_folder="build") dir_name = "logs" try: # Create log Directory os.mkdir(dir_name) print("Directory ", dir_name, " Created ") except FileExistsError: print("Directory ", dir_name, " already exists") # app.logger.removeHandler(default_handler) handler = RotatingFileHandler("logs/orders.log", maxBytes=10000, backupCount=1) handler.setLevel(logging.DEBUG) app.logger.addHandler(handler) es_host_url = os.getenv("ES_HOST_URL") # if es url is set, enable logging to elasticsearch if es_host_url: es_handler = ElasticsearchLogHandler(os.getenv("ES_HOST_URL")) app.logger.addHandler(es_handler) app.logger.setLevel(logging.DEBUG) app.config.from_object("config") app.register_blueprint(mock) app.register_blueprint(index_blueprint) # set up prometheus metrics exporting metrics = GunicornPrometheusMetrics(app) # static information as metric metrics.info("AnomalyDetectorDemo", "Demo application for PAD/LAD", version="0.1") return app
import json from flask import Flask, request from prometheus_flask_exporter.multiprocess import GunicornPrometheusMetrics from config.config import Config app = Flask(__name__) metrics = GunicornPrometheusMetrics(app) metrics.info("app_name", "application info", version=Config.APP_VERSION) @app.route("/health-check") def health_check(): return json.dumps({"status": "OK", "version": Config.APP_VERSION})
from flask import Flask from healthcheck import HealthCheck from prometheus_flask_exporter.multiprocess import GunicornPrometheusMetrics import redis try: redis_client = redis.Redis(host="redis", port=6379, password="******") except redis.RedisError as e: print(e) app = Flask(__name__) metrics = GunicornPrometheusMetrics(app) metrics.info('app_info', 'Application info', version='1.0') health = HealthCheck() def redis_available(): redis_client.info() return True, "Redis OK" health.add_check(redis_available) app.add_url_rule("/healthcheck", "healthcheck", view_func=lambda: health.run()) @app.route('/readycheck')