fix: remove HEAD and OPTIONS handling from metrics

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2022-03-14 06:24:15 -07:00
parent 790ca4194a
commit afd25c248f
No known key found for this signature in database
GPG key ID: F7E46DED420788F3

View file

@ -60,6 +60,9 @@ def http_requests_total() -> Callable[[Info], None]:
labelnames=("method", "path", "status"))
def instrumentation(info: Info) -> None:
if info.request.method.lower() in ("head", "options"): # pragma: no cover
return
scope = info.request.scope
# Taken from https://github.com/stephenhillier/starlette_exporter
@ -70,8 +73,8 @@ def http_requests_total() -> Callable[[Info], None]:
if not (scope.get("endpoint", None) and scope.get("router", None)):
return None
root_path = scope.get("root_path", "")
app = scope.get("app", {})
root_path = scope.get("root_path", str())
app = scope.get("app", dict())
if hasattr(app, "root_path"):
app_root_path = getattr(app, "root_path")
@ -102,6 +105,9 @@ def http_api_requests_total() -> Callable[[Info], None]:
labelnames=("type", "status"))
def instrumentation(info: Info) -> None:
if info.request.method.lower() in ("head", "options"): # pragma: no cover
return
if info.request.url.path.rstrip("/") == "/rpc":
type = info.request.query_params.get("type", "None")
if info.response: