◐ Shell
clean mode source ↗

feat: Add materialization, feature freshness, request latency, and push metrics to feature server by ntkathole · Pull Request #6071 · feast-dev/feast

What this PR does / why we need it:

Adds rich Prometheus metrics to the Feast feature server covering areas that previously had no observability:

  • Request latency histograms with feature_count and feature_view_count labels so operators can correlate latency with request complexity
  • Materialization tracking — success/failure counters and duration histograms per feature view
  • Feature freshness gauges — staleness (seconds since last materialization) per feature view, updated via background polling
  • Online feature retrieval counters — request counts and entity-row-per-request histograms
  • Push request counters — tracked by push source and mode (online/offline)
  • CPU and memory gauges — moved from inline code to the shared metrics module
    Previously the feature server only had inline CPU/memory monitoring. This PR introduces 10 new metric families covering the full request lifecycle, materialization pipeline, and data freshness.

Screenshot 2026-03-05 at 2 45 51 PM Screenshot 2026-03-05 at 2 46 40 PM

New metrics

Metric Type Labels
feast_feature_server_request_total Counter endpoint, status
feast_feature_server_request_latency_seconds Histogram endpoint, feature_count, feature_view_count
feast_online_features_request_total Counter
feast_online_features_entity_count Histogram
feast_push_request_total Counter push_source, mode
feast_materialization_total Counter feature_view, status
feast_materialization_duration_seconds Histogram feature_view
feast_feature_freshness_seconds Gauge feature_view, project
feast_feature_server_cpu_usage Gauge
feast_feature_server_memory_usage Gauge

Configuration

Metrics are fully opt-in with zero overhead when disabled. Enable via CLI or YAML:

feature_server:
  metrics:
    enabled: true
    resource: true          # CPU / memory gauges
    request: true           # endpoint latency & request counters
    online_features: true   # online feature retrieval counters
    push: true              # push request counters
    materialization: true   # materialization counters & duration
    freshness: true         # per-feature-view freshness gauges

Per-category toggles let disable specific metric groups (e.g., keep CPU/memory but skip request latency). All categories default to true. The --metrics CLI flag works without any YAML config.


Open with Devin