Best-effort audit log emission for online feature requests.
(
request: GetOnlineFeaturesRequest,
features: Union[List[str], "feast.FeatureService"],
entity_count: int,
status: str,
latency_ms: float,
)
| 189 | |
| 190 | |
| 191 | def _emit_online_audit( |
| 192 | request: GetOnlineFeaturesRequest, |
| 193 | features: Union[List[str], "feast.FeatureService"], |
| 194 | entity_count: int, |
| 195 | status: str, |
| 196 | latency_ms: float, |
| 197 | ): |
| 198 | """Best-effort audit log emission for online feature requests.""" |
| 199 | try: |
| 200 | from feast.permissions.security_manager import get_security_manager |
| 201 | |
| 202 | requestor_id = "anonymous" |
| 203 | sm = get_security_manager() |
| 204 | if sm and sm.current_user: |
| 205 | requestor_id = sm.current_user.username or "anonymous" |
| 206 | |
| 207 | fv_names, feat_count = _parse_feature_info(features) |
| 208 | |
| 209 | feast_metrics.emit_online_audit_log( |
| 210 | requestor_id=requestor_id, |
| 211 | entity_keys=list(request.entities.keys()), |
| 212 | entity_count=entity_count, |
| 213 | feature_views=fv_names, |
| 214 | feature_count=feat_count, |
| 215 | status=status, |
| 216 | latency_ms=latency_ms, |
| 217 | ) |
| 218 | except Exception: |
| 219 | logger.warning("Failed to emit online audit log", exc_info=True) |
| 220 | |
| 221 | |
| 222 | async def _get_features( |