Skip to content

Commit 8d006ef

Browse files
committed
feat: Add timing middleware
1 parent 832d9b7 commit 8d006ef

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/stac_auth_proxy/app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111

1212
from .proxy import ReverseProxy
1313
from .config import Settings
14+
from .middleware import AddProcessTimeHeaderMiddleware
1415

1516

1617
def create_app(settings: Optional[Settings] = None) -> FastAPI:
1718
settings = settings or Settings()
1819

1920
app = FastAPI(openapi_url=None)
21+
app.add_middleware(AddProcessTimeHeaderMiddleware)
2022

2123
open_id_connect_scheme = OpenIdConnect(
2224
openIdConnectUrl=str(settings.oidc_discovery_url),

src/stac_auth_proxy/middleware.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import time
2+
3+
from fastapi import Request, Response
4+
from starlette.middleware.base import BaseHTTPMiddleware
5+
6+
7+
class AddProcessTimeHeaderMiddleware(BaseHTTPMiddleware):
8+
async def dispatch(self, request: Request, call_next) -> Response:
9+
start_time = time.perf_counter()
10+
response = await call_next(request)
11+
process_time = time.perf_counter() - start_time
12+
response.headers["X-Process-Time"] = f"{process_time:.3f}"
13+
return response

0 commit comments

Comments
 (0)