(
project: str = Query(...),
feature_view_name: Optional[str] = Query(None),
feature_name: Optional[str] = Query(None),
feature_service_name: Optional[str] = Query(None),
granularity: Optional[str] = Query(None),
data_source_type: Optional[str] = Query(None),
start_date: Optional[str] = Query(None),
end_date: Optional[str] = Query(None),
)
| 368 | |
| 369 | @router.get("/monitoring/metrics/timeseries", tags=["Monitoring"]) |
| 370 | async def get_timeseries( |
| 371 | project: str = Query(...), |
| 372 | feature_view_name: Optional[str] = Query(None), |
| 373 | feature_name: Optional[str] = Query(None), |
| 374 | feature_service_name: Optional[str] = Query(None), |
| 375 | granularity: Optional[str] = Query(None), |
| 376 | data_source_type: Optional[str] = Query(None), |
| 377 | start_date: Optional[str] = Query(None), |
| 378 | end_date: Optional[str] = Query(None), |
| 379 | ): |
| 380 | store = _get_store() |
| 381 | if feature_view_name: |
| 382 | fv = store.registry.get_feature_view( |
| 383 | name=feature_view_name, project=project |
| 384 | ) |
| 385 | assert_permissions(fv, actions=[AuthzedAction.DESCRIBE]) |
| 386 | |
| 387 | svc = _get_monitoring_service() |
| 388 | return svc.get_timeseries( |
| 389 | project=project, |
| 390 | feature_view_name=feature_view_name, |
| 391 | feature_name=feature_name, |
| 392 | feature_service_name=feature_service_name, |
| 393 | granularity=granularity, |
| 394 | data_source_type=data_source_type, |
| 395 | start_date=date.fromisoformat(start_date) if start_date else None, |
| 396 | end_date=date.fromisoformat(end_date) if end_date else None, |
| 397 | ) |
| 398 | |
| 399 | return router |
nothing calls this directly
no test coverage detected