MCPcopy
hub / github.com/feast-dev/feast / get_online_features

Function get_online_features

sdk/python/feast/feature_server.py:417–457  ·  view source on GitHub ↗
(request: GetOnlineFeaturesRequest)

Source from the content-addressed store, hash-verified

415 response_model=OnlineFeaturesResponse,
416 )
417 async def get_online_features(request: GetOnlineFeaturesRequest) -> Any:
418 with feast_metrics.track_request_latency(
419 "/get-online-features",
420 ) as metrics_ctx:
421 features = await _get_features(request, store)
422 feat_count, fv_count = _resolve_feature_counts(features)
423 metrics_ctx.feature_count = feat_count
424 metrics_ctx.feature_view_count = fv_count
425
426 entity_count = len(next(iter(request.entities.values()), []))
427 feast_metrics.track_online_features_entities(entity_count)
428
429 read_params = dict(
430 features=features,
431 entity_rows=request.entities,
432 full_feature_names=request.full_feature_names,
433 include_feature_view_version_metadata=request.include_feature_view_version_metadata,
434 )
435
436 audit_start_ms = time.monotonic() * 1000
437 audit_status = "success"
438 try:
439 if store._get_provider().async_supported.online.read:
440 response = await store.get_online_features_async(**read_params) # type: ignore
441 else:
442 response = await run_in_threadpool(
443 lambda: store.get_online_features(**read_params) # type: ignore
444 )
445 except Exception:
446 audit_status = "error"
447 raise
448 finally:
449 audit_latency_ms = time.monotonic() * 1000 - audit_start_ms
450 _emit_online_audit(
451 request, features, entity_count, audit_status, audit_latency_ms
452 )
453
454 response_dict = await run_in_threadpool(
455 convert_response_to_dict, response.proto
456 )
457 return JSONResponse(content=response_dict)
458
459 @app.post(
460 "/retrieve-online-documents",

Callers

nothing calls this directly

Calls 7

_resolve_feature_countsFunction · 0.85
_emit_online_auditFunction · 0.85
_get_featuresFunction · 0.70
valuesMethod · 0.45
_get_providerMethod · 0.45
get_online_featuresMethod · 0.45

Tested by

no test coverage detected