diff --git a/apiforgepy/__init__.py b/apiforgepy/__init__.py index 17bdd02..0bf4c80 100644 --- a/apiforgepy/__init__.py +++ b/apiforgepy/__init__.py @@ -24,7 +24,7 @@ from .transport import LocalTransport from .cloud_transport import CloudTransport -__version__ = "2.2.0" +__version__ = "2.2.1" __all__ = ["ApiForgeMiddleware"] diff --git a/apiforgepy/cloud_transport.py b/apiforgepy/cloud_transport.py index b4d8455..024e686 100644 --- a/apiforgepy/cloud_transport.py +++ b/apiforgepy/cloud_transport.py @@ -49,21 +49,30 @@ def write(self, rows: list[dict]) -> None: metrics = [ { - "route": r["route"], - "method": r["method"], - "service": self._service, - "env": r["env"], - "release": r.get("release_tag"), - "time": datetime.fromtimestamp(r["bucket_ts"], tz=timezone.utc).strftime('%Y-%m-%dT%H:%M:%S.000Z'), - "calls_total": r["total_calls"], - "calls_2xx": r["status_2xx"], - "calls_4xx": r["status_4xx"], - "calls_5xx": r["status_5xx"], - "lat_p50": r.get("lat_p50"), - "lat_p90": r.get("lat_p90"), - "lat_p99": r.get("lat_p99"), - "lat_avg": r.get("lat_avg"), - "bytes_avg": r.get("bytes_avg"), + "route": r["route"], + "method": r["method"], + "service": self._service, + "env": r["env"], + "release": r.get("release_tag"), + "time": datetime.fromtimestamp(r["bucket_ts"], tz=timezone.utc).strftime('%Y-%m-%dT%H:%M:%S.000Z'), + "calls_total": r["total_calls"], + "calls_2xx": r["status_2xx"], + "calls_3xx": r.get("status_3xx", 0), + "calls_4xx": r["status_4xx"], + "calls_5xx": r["status_5xx"], + "status_dist": r.get("status_dist"), + "lat_p50": r.get("lat_p50"), + "lat_p90": r.get("lat_p90"), + "lat_p99": r.get("lat_p99"), + "lat_avg": r.get("lat_avg"), + "lat_ttfb_p50": r.get("lat_ttfb_p50"), + "lat_ttfb_p90": r.get("lat_ttfb_p90"), + "lat_ttfb_p99": r.get("lat_ttfb_p99"), + "bytes_avg": r.get("bytes_avg"), + "request_size_avg": r.get("request_size_avg"), + "inflight_avg": r.get("inflight_avg"), + "inflight_max": r.get("inflight_max"), + "is_ghost": bool(r.get("is_ghost", 0)), } for r in rows ] diff --git a/pyproject.toml b/pyproject.toml index 4bbab17..07cd111 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "apiforgepy" -version = "2.2.0" +version = "2.2.1" description = "API observability & intelligence for FastAPI/Starlette — local-first, privacy-first" readme = "README.md"