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
Exemple #2
0
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})
Exemple #3
0
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')