from __future__ import annotations from prometheus_client import CONTENT_TYPE_LATEST, Counter, Gauge, Histogram, generate_latest REQUESTS = Counter("findata_http_requests_total", "HTTP requests", ["method", "route", "status"]) LATENCY = Histogram("findata_http_request_seconds", "Request latency", ["route"], buckets=(0.01, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30)) ROWS = Counter("findata_rows_returned_total", "Rows returned by data endpoints", ["endpoint"]) LAKE_FREE = Gauge("findata_lake_free_gb", "Free space on the lake volume (GB)") LAKE_CURATED = Gauge("findata_lake_curated_bytes", "Curated Parquet bytes") JOBS = Gauge("findata_jobs", "Ingest jobs by status", ["status"]) FRESHNESS = Gauge("findata_dataset_freshness_days", "Days since last session in dataset", ["dataset"]) VENDOR_LAG = Gauge("findata_vendor_lag_days", "Days between vendor last_update and last ingested session", ["dataset"]) BACKUP_AGE = Gauge("findata_backup_age_hours", "Hours since last successful backup") ANOMALIES = Gauge("findata_quality_anomalies_7d", "Quality anomalies in the last 7 days", ["dataset", "severity"]) def render() -> tuple[bytes, str]: return generate_latest(), CONTENT_TYPE_LATEST