54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
import uvicorn
|
|
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from fastapi.exceptions import HTTPException
|
|
|
|
from middlewares.token_middleware import AuthHeaderMiddleware
|
|
from application.create_file import create_app
|
|
from handlers_exception import (
|
|
exception_handler_http,
|
|
exception_handler_exception,
|
|
)
|
|
from prometheus_fastapi_instrumentator import Instrumentator
|
|
from prometheus_client import Counter, Histogram
|
|
|
|
from service_app.app_runner_init import create_endpoints_from_api_functions
|
|
|
|
app = create_app()
|
|
Instrumentator().instrument(app=app).expose(app=app)
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
**{
|
|
"allow_origins": ["*"],
|
|
"allow_credentials": True,
|
|
"allow_methods": ["*"],
|
|
"allow_headers": ["*"],
|
|
},
|
|
)
|
|
app.add_middleware(AuthHeaderMiddleware)
|
|
|
|
app.add_exception_handler(HTTPException, exception_handler_http)
|
|
app.add_exception_handler(Exception, exception_handler_exception)
|
|
create_endpoints_from_api_functions(api_app=app)
|
|
|
|
# # Define a counter metric
|
|
# REQUESTS_COUNT = Counter(
|
|
# "requests_total", "Total number of requests", ["method", "endpoint", "status_code"]
|
|
# )
|
|
# # Define a histogram metric
|
|
# REQUESTS_TIME = Histogram("requests_time", "Request processing time", ["method", "endpoint"])
|
|
# api_request_summary = Histogram("api_request_summary", "Request processing time", ["method", "endpoint"])
|
|
# api_request_counter = Counter("api_request_counter", "Request processing time", ["method", "endpoint", "http_status"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
uvicorn_config = {
|
|
"app": "app:app",
|
|
"host": "0.0.0.0",
|
|
"port": 41575,
|
|
"log_level": "info",
|
|
"reload": True,
|
|
}
|
|
uvicorn.Server(uvicorn.Config(**uvicorn_config)).run()
|