Skip to content

Commit

Permalink
DEV-19025: add configure method
Browse files Browse the repository at this point in the history
  • Loading branch information
alexreznikoff committed Feb 12, 2025
1 parent d272feb commit 9014c7e
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 14 deletions.
11 changes: 10 additions & 1 deletion src/huntflow_base_metrics/web_frameworks/_middleware.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import abc
import time
from dataclasses import dataclass
from typing import Generic, Optional, Set, TypeVar
from typing import Generic, Iterable, Optional, Set, TypeVar

from huntflow_base_metrics import apply_labels
from huntflow_base_metrics._context import METRIC_CONTEXT
Expand Down Expand Up @@ -40,6 +40,15 @@ class PrometheusMiddleware(abc.ABC, Generic[RequestType]):
include_routes: Optional[Set[str]] = None
exclude_routes: Optional[Set[str]] = None

@classmethod
def configure(
cls,
include_routes: Optional[Iterable[str]] = None,
exclude_routes: Optional[Iterable[str]] = None,
) -> None:
cls.include_routes = set(include_routes) if include_routes is not None else None
cls.exclude_routes = set(exclude_routes) if exclude_routes is not None else None

@staticmethod
@abc.abstractmethod
def get_method(request: RequestType) -> str:
Expand Down
5 changes: 1 addition & 4 deletions src/huntflow_base_metrics/web_frameworks/aiohttp.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,7 @@ def add_middleware(
If it's not empty (and include_routes is not specified), then the
specified routes will not be observed.
"""
include_routes = set(include_routes) if include_routes is not None else include_routes
exclude_routes = set(exclude_routes) if exclude_routes is not None else exclude_routes
_PrometheusMiddleware.include_routes = include_routes
_PrometheusMiddleware.exclude_routes = exclude_routes
_PrometheusMiddleware.configure(include_routes, exclude_routes)
app.middlewares.append(_PrometheusMiddleware.dispatch)


Expand Down
5 changes: 1 addition & 4 deletions src/huntflow_base_metrics/web_frameworks/fastapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,7 @@ def add_middleware(
If it's not empty (and include_routes is not specified), then the
specified routes will not be observed.
"""
include_routes = set(include_routes) if include_routes is not None else include_routes
exclude_routes = set(exclude_routes) if exclude_routes is not None else exclude_routes
_PrometheusMiddleware.include_routes = include_routes
_PrometheusMiddleware.exclude_routes = exclude_routes
_PrometheusMiddleware.configure(include_routes, exclude_routes)
app.add_middleware(_PrometheusMiddleware)


Expand Down
6 changes: 1 addition & 5 deletions src/huntflow_base_metrics/web_frameworks/litestar.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,7 @@ def get_middleware(
specified routes will not be observed.
"""

include_routes = set(include_routes) if include_routes is not None else include_routes
exclude_routes = set(exclude_routes) if exclude_routes is not None else exclude_routes
_PrometheusMiddleware.include_routes = include_routes
_PrometheusMiddleware.exclude_routes = exclude_routes

_PrometheusMiddleware.configure(include_routes, exclude_routes)
return _PrometheusMiddleware


Expand Down

0 comments on commit 9014c7e

Please sign in to comment.