INNER CODE UNIT · Python
__init__
stephenhillier/starlette_exporter · starlette_exporter/labels.py:12
def __init__(
self, key: str, allowed_values: Optional[Iterable] = None, default: str = ""
) -> None:
self.key = key.lower()
self.default = default
self.allowed_values = allowed_values
def __call__(self, headers: Dict) -> Any:
v = headers.get(self.key, self.default)
if self.allowed_values is not None and v not in self.allowed_values:
return self.default
return v
def from_header(key: str, allowed_values: Optional[Iterable] = None) -> Callable:
"""returns a function that retrieves a header value from a request.
The returned function can be passed to the `labels` argument of PrometheusMiddleware
to label metrics using a header value.