metrics: add url shortener counters
This commit is contained in:
@@ -14,6 +14,9 @@ _paste_deleted_counter = None
|
|||||||
_rate_limit_counter = None
|
_rate_limit_counter = None
|
||||||
_pow_counter = None
|
_pow_counter = None
|
||||||
_dedup_counter = None
|
_dedup_counter = None
|
||||||
|
_url_created_counter = None
|
||||||
|
_url_accessed_counter = None
|
||||||
|
_url_deleted_counter = None
|
||||||
_request_duration_histogram = None
|
_request_duration_histogram = None
|
||||||
|
|
||||||
|
|
||||||
@@ -23,7 +26,9 @@ def setup_custom_metrics(app: Flask) -> None:
|
|||||||
Should be called after prometheus_flask_exporter is set up.
|
Should be called after prometheus_flask_exporter is set up.
|
||||||
"""
|
"""
|
||||||
global _paste_created_counter, _paste_accessed_counter, _paste_deleted_counter
|
global _paste_created_counter, _paste_accessed_counter, _paste_deleted_counter
|
||||||
global _rate_limit_counter, _pow_counter, _dedup_counter, _request_duration_histogram
|
global _rate_limit_counter, _pow_counter, _dedup_counter
|
||||||
|
global _url_created_counter, _url_accessed_counter, _url_deleted_counter
|
||||||
|
global _request_duration_histogram
|
||||||
|
|
||||||
if app.config.get("TESTING"):
|
if app.config.get("TESTING"):
|
||||||
return
|
return
|
||||||
@@ -70,6 +75,24 @@ def setup_custom_metrics(app: Flask) -> None:
|
|||||||
["outcome"],
|
["outcome"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
_url_created_counter = Counter(
|
||||||
|
"flaskpaste_url_created_total",
|
||||||
|
"Total number of short URL creation attempts",
|
||||||
|
["auth_type", "outcome"],
|
||||||
|
)
|
||||||
|
|
||||||
|
_url_accessed_counter = Counter(
|
||||||
|
"flaskpaste_url_accessed_total",
|
||||||
|
"Total number of short URL accesses",
|
||||||
|
["auth_type"],
|
||||||
|
)
|
||||||
|
|
||||||
|
_url_deleted_counter = Counter(
|
||||||
|
"flaskpaste_url_deleted_total",
|
||||||
|
"Total number of short URL deletion attempts",
|
||||||
|
["auth_type", "outcome"],
|
||||||
|
)
|
||||||
|
|
||||||
_request_duration_histogram = Histogram(
|
_request_duration_histogram = Histogram(
|
||||||
"flaskpaste_request_duration_seconds",
|
"flaskpaste_request_duration_seconds",
|
||||||
"Request duration in seconds",
|
"Request duration in seconds",
|
||||||
@@ -143,6 +166,24 @@ def record_dedup(outcome: str) -> None:
|
|||||||
_dedup_counter.labels(outcome=outcome).inc()
|
_dedup_counter.labels(outcome=outcome).inc()
|
||||||
|
|
||||||
|
|
||||||
|
def record_url_created(auth_type: str, outcome: str) -> None:
|
||||||
|
"""Record a short URL creation attempt."""
|
||||||
|
if _url_created_counter:
|
||||||
|
_url_created_counter.labels(auth_type=auth_type, outcome=outcome).inc()
|
||||||
|
|
||||||
|
|
||||||
|
def record_url_accessed(auth_type: str) -> None:
|
||||||
|
"""Record a short URL access."""
|
||||||
|
if _url_accessed_counter:
|
||||||
|
_url_accessed_counter.labels(auth_type=auth_type).inc()
|
||||||
|
|
||||||
|
|
||||||
|
def record_url_deleted(auth_type: str, outcome: str) -> None:
|
||||||
|
"""Record a short URL deletion attempt."""
|
||||||
|
if _url_deleted_counter:
|
||||||
|
_url_deleted_counter.labels(auth_type=auth_type, outcome=outcome).inc()
|
||||||
|
|
||||||
|
|
||||||
def observe_request_duration(method: str, endpoint: str, status: int, duration: float) -> None:
|
def observe_request_duration(method: str, endpoint: str, status: int, duration: float) -> None:
|
||||||
"""Record request duration.
|
"""Record request duration.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user