GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: Add materialization, feature freshness, request latency, and push metrics to feature server by ntkathole · Pull Request #6071 · feast-dev/feast

Conversation

@ntkathole

@ntkathole ntkathole commented Mar 5, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ntkathole
ntkathole requested a review from a team as a code owner March 5, 2026 08:57
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from 82d4bf7 to 534688e Compare March 5, 2026 09:36
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from 534688e to 6f6ff76 Compare March 5, 2026 10:11
@ntkathole ntkathole added the ok-to-test label Mar 5, 2026
astefanutti
astefanutti reviewed Mar 5, 2026
View reviewed changes
Comment thread docs/reference/feature-servers/python-feature-server.md
metrics: true
```

The operator automatically exposes port 8000 and creates the corresponding

@astefanutti astefanutti Mar 5, 2026

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Should the operator also create the PodMonitor / ServiceMonitor resource owned by the FeatureStore resource for Prometheus operator to discover the metrics endpoint and configure the scraping?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@ntkathole ntkathole Mar 5, 2026

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

That would be a good enhancement, we can have CRD detection guard to avoid crashing on vanilla Kubernetes clusters without the Prometheus Operator. Will raise an issue for this.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

astefanutti reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

@ntkathole ntkathole Mar 5, 2026

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

#6072

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ntkathole
ntkathole force-pushed the improve_metrics branch from 6f6ff76 to 4518b88 Compare March 9, 2026 11:41
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from 4518b88 to e8ca946 Compare March 9, 2026 11:50
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from e8ca946 to de33e02 Compare March 9, 2026 12:01
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from de33e02 to 7db8e10 Compare March 9, 2026 12:13
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from 7db8e10 to 18e2786 Compare March 9, 2026 12:27
franciscojavierarceo
franciscojavierarceo approved these changes Mar 9, 2026
View reviewed changes
@ntkathole
ntkathole force-pushed the improve_metrics branch from 18e2786 to 34abf5f Compare March 9, 2026 13:32
devin-ai-integration[bot]

This comment was marked as resolved.

Sign in to view

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole
ntkathole force-pushed the improve_metrics branch from 34abf5f to bec7f4f Compare March 9, 2026 14:10
@ntkathole
feat: Add materialization, feature freshness, request latency, and pu…
d0cc3dd
…sh metrics to feature server

Signed-off-by: ntkathole <[email protected]>
@ntkathole
ntkathole force-pushed the improve_metrics branch from bec7f4f to d0cc3dd Compare March 9, 2026 15:12
@ntkathole
ntkathole merged commit 2c6be18 into feast-dev:master Mar 9, 2026
19 of 24 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole ntkathole mentioned this pull request Mar 26, 2026
docs: Added blog post for Feature Server Monitoring #6157
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@devin-ai-integration devin-ai-integration[bot] devin-ai-integration[bot] left review comments
@franciscojavierarceo franciscojavierarceo franciscojavierarceo approved these changes
+1 more reviewer
@astefanutti astefanutti astefanutti left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

ok-to-test

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@ntkathole @astefanutti @franciscojavierarceo
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.