add convex health metrics route
Build and Push Docker Container / build-and-push (push) Successful in 2m4s
Build and Push Docker Container / build-and-push (push) Successful in 2m4s
This commit is contained in:
@@ -68,6 +68,7 @@ LIMITER = Limiter(
|
|||||||
)
|
)
|
||||||
|
|
||||||
convex_runtime = ConvexWorkerPool(os.getenv("CONVEX_URL"))
|
convex_runtime = ConvexWorkerPool(os.getenv("CONVEX_URL"))
|
||||||
|
app.convex_runtime = convex_runtime
|
||||||
|
|
||||||
@app.before_serving
|
@app.before_serving
|
||||||
async def init_convex():
|
async def init_convex():
|
||||||
|
|||||||
@@ -4,3 +4,6 @@ from .auth.login import auth_login_bp
|
|||||||
from .side.main import side_main_bp
|
from .side.main import side_main_bp
|
||||||
|
|
||||||
from .side.upload import upload_bp
|
from .side.upload import upload_bp
|
||||||
|
|
||||||
|
# Health
|
||||||
|
from .api.health import health_bp
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
from my_modules.decoratory.header import format_response, feature_flag_required
|
||||||
|
from my_modules.app.setup import LIMITER
|
||||||
|
from my_modules.app.logger import logger
|
||||||
|
|
||||||
|
from quart import Blueprint, current_app
|
||||||
|
|
||||||
|
health_bp = Blueprint("health", __name__)
|
||||||
|
|
||||||
|
@health_bp.route("/convex", methods=["GET"])
|
||||||
|
@LIMITER.limit("30 per minute")
|
||||||
|
@feature_flag_required("convex_health", fallback=False, status_code=404)
|
||||||
|
@format_response
|
||||||
|
async def get_convex_health_for_api():
|
||||||
|
runtime = getattr(current_app, "convex_runtime", None)
|
||||||
|
if runtime is None:
|
||||||
|
return {
|
||||||
|
"status": "unavailable",
|
||||||
|
"description": "Convex runtime is not attached to app",
|
||||||
|
}, 503
|
||||||
|
|
||||||
|
is_alive = await runtime.is_alive()
|
||||||
|
metrics = runtime.get_metrics()
|
||||||
|
|
||||||
|
return {
|
||||||
|
"alive": is_alive,
|
||||||
|
"metrics": metrics,
|
||||||
|
}, 200 if is_alive else 503
|
||||||
@@ -10,7 +10,8 @@ import routes.handeling.errorsAndBots
|
|||||||
from routes import (
|
from routes import (
|
||||||
basic_bp, auth_login_bp,
|
basic_bp, auth_login_bp,
|
||||||
side_main_bp,
|
side_main_bp,
|
||||||
upload_bp
|
upload_bp,
|
||||||
|
health_bp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Views for Requests adding the uris
|
# Views for Requests adding the uris
|
||||||
@@ -20,5 +21,7 @@ app.register_blueprint(auth_login_bp)
|
|||||||
app.register_blueprint(side_main_bp)
|
app.register_blueprint(side_main_bp)
|
||||||
app.register_blueprint(upload_bp)
|
app.register_blueprint(upload_bp)
|
||||||
|
|
||||||
|
app.register_blueprint(health_bp, url_prefix='/health')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=WEB_DEBUG, port=5502)
|
app.run(debug=WEB_DEBUG, port=5502)
|
||||||
|
|||||||
Reference in New Issue
Block a user