← 输入框|github.com|刷新
Skip to content

fix(ui): stop treating the monitoring baseline as the latest window - #7056

Open
Mrun25 wants to merge 1 commit into
feast-dev:masterfrom
Mrun25:fix-monitoring-ui-baseline-window-7054
Open

Mrun25 wants to merge 1 commit into
feast-dev:masterfrom
Mrun25:fix-monitoring-ui-baseline-window-7054

Conversation

@Mrun25

@Mrun25 Mrun25 commented Oct 21, 2026

Copy link
Copy Markdown

The feature-monitoring UI treats the baseline metrics row as the newest window because the baseline is saved with metric_date = today (monitoring_service.py:182,:462, granularity "baseline"). On the current master this means:

  • FeatureMonitoringTab picks the baseline row as the latest window, so the tab opens on the baseline instead of real data
  • FeatureMetricsDetail lists "baseline" as a granularity and opens on it
  • TimeSeriesAnalysis mixes window lengths in one series
  • HistogramChart compares mismatched bins: raw counts on different bin edges, and a TypeError when the baseline is categorical but the window is numeric

Reproduced against master (e304a84) with the real DuckDB monitoring path (MonitoringService._save_computed_metrics + get_feature_metrics), no feast server needed.

Fix:

  • FeatureMonitoringTab: select the latest non-baseline window row (selectLatestWindowMetric)
  • FeatureMetricsDetail: filter baseline rows out of the granularity list and render each granularity's time series separately
  • HistogramChart: rebin numeric baselines onto the window's bin edges, compare densities instead of raw counts, guard non-numeric baselines
  • new histogramUtils.ts with unit tests

Tests: 9 new jest tests pass; full UI suite unchanged vs master (3 pre-existing local failures from un-generated protos; CI runs generate-protos); tsc and eslint clean on changed files.

Fixes #7054

The feature-monitoring UI picked the baseline metrics row as the newest
window because the baseline is saved with metric_date = today. That made
the monitoring tab land on the baseline instead of real data, listed
'baseline' as a granularity in the detail view, mixed window lengths in
the time series, and compared mismatched histogram bins (raw counts on
different bin edges, with a TypeError when the baseline was categorical
and the window numeric).

- FeatureMonitoringTab: select the latest non-baseline window row via
  selectLatestWindowMetric
- FeatureMetricsDetail: filter baseline rows out of the granularity
  list and render each granularity's time series separately
- HistogramChart: rebin numeric baselines onto the window's bin edges,
  compare densities instead of raw counts, and guard non-numeric
  baselines
- add histogramUtils with unit tests (9 passing)

Fixes feast-dev#7054

Signed-off-by: Mrun25 <165297479+Mrun25@users.noreply.github.com>
@Mrun25
Mrun25 requested a review from a team as a code owner October 21, 2026 04:36
Copilot AI balanced review requested due to automatic review settings October 21, 2026 04:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI: Monitoring pages treat the baseline as a window, and its overlay uses mismatched bins

2 participants