Skip to content

feat: Add metadata statistics to registry api#6159

Merged
ntkathole merged 1 commit intofeast-dev:masterfrom
ntkathole:metadata_endpoint
Mar 26, 2026
Merged

feat: Add metadata statistics to registry api#6159
ntkathole merged 1 commit intofeast-dev:masterfrom
ntkathole:metadata_endpoint

Conversation

@ntkathole
Copy link
Copy Markdown
Member

@ntkathole ntkathole commented Mar 26, 2026

What this PR does / why we need it:

This PR enrich /metrics/resource_counts with feature store inventory metadata.

Extended the existing GET /metrics/resource_counts endpoint to include feature store inventory metadata alongside the existing resource counts, giving users a single-call view of their feature store without querying the registry directly.

The response now includes (in addition to the existing backward-compatible counts):

featureServices - list of registered services with name and project
featureViews - list of feature views with name, project, type (featureView/onDemandFeatureView/streamFeatureView), and per-view feature count
projects - list of projects (with description in all-projects mode)
registryLastUpdated - registry last-updated timestamp

{
  "total": {
    "entities": 4,
    "dataSources": 3,
    "savedDatasets": 0,
    "features": 20,
    "featureViews": 8,
    "featureServices": 6
  },
  "perProject": {
    "multiproject1": {
      "entities": 2,
      "dataSources": 3,
      "savedDatasets": 0,
      "features": 10,
      "featureViews": 4,
      "featureServices": 3
    },
    "multiproject2": {
      "entities": 2,
      "dataSources": 0,
      "savedDatasets": 0,
      "features": 10,
      "featureViews": 4,
      "featureServices": 3
    }
  },
  "featureServices": [
    {
      "name": "driver_activity_v2",
      "project": "multiproject1"
    },
    {
      "name": "driver_activity_v1",
      "project": "multiproject1"
    },
    {
      "name": "driver_activity_v3",
      "project": "multiproject1"
    },
    {
      "name": "driver_activity_v3",
      "project": "multiproject2"
    },
    {
      "name": "driver_activity_v1",
      "project": "multiproject2"
    },
    {
      "name": "driver_activity_v2",
      "project": "multiproject2"
    }
  ],
  "featureViews": [
    {
      "name": "driver_hourly_stats_fresh",
      "project": "multiproject1",
      "type": "featureView",
      "featureCount": 3
    },
    {
      "name": "driver_hourly_stats",
      "project": "multiproject1",
      "type": "featureView",
      "featureCount": 3
    },
    {
      "name": "transformed_conv_rate_fresh",
      "project": "multiproject1",
      "type": "onDemandFeatureView",
      "featureCount": 2
    },
    {
      "name": "transformed_conv_rate",
      "project": "multiproject1",
      "type": "onDemandFeatureView",
      "featureCount": 2
    },
    {
      "name": "driver_hourly_stats",
      "project": "multiproject2",
      "type": "featureView",
      "featureCount": 3
    },
    {
      "name": "driver_hourly_stats_fresh",
      "project": "multiproject2",
      "type": "featureView",
      "featureCount": 3
    },
    {
      "name": "transformed_conv_rate",
      "project": "multiproject2",
      "type": "onDemandFeatureView",
      "featureCount": 2
    },
    {
      "name": "transformed_conv_rate_fresh",
      "project": "multiproject2",
      "type": "onDemandFeatureView",
      "featureCount": 2
    }
  ],
  "projects": [
    {
      "name": "multiproject1",
      "description": "A project for driver statistics"
    },
    {
      "name": "multiproject2",
      "description": "A project for driver statistics"
    }
  ],
  "registryLastUpdated": "2026-03-26T07:43:11.019554Z"
}

Which issue(s) this PR fixes:

Fixes #5921

Checks

  • I've made sure the tests are passing.
  • My commits are signed off (git commit -s)
  • My PR title follows conventional commits format

Testing Strategy

  • Unit tests
  • Integration tests
  • Manual tests
  • Testing is not required for this change

Open with Devin

@ntkathole ntkathole requested a review from a team as a code owner March 26, 2026 07:45
@ntkathole ntkathole self-assigned this Mar 26, 2026
devin-ai-integration[bot]

This comment was marked as resolved.

Signed-off-by: ntkathole <nikhilkathole2683@gmail.com>
Copy link
Copy Markdown
Member

@franciscojavierarceo franciscojavierarceo left a comment

Choose a reason for hiding this comment

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

looking now, resource_counts probably isn't the most intuitive name for an API but too late now 🤷‍♂️

@ntkathole ntkathole merged commit ef1d4fc into feast-dev:master Mar 26, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Metadata to Feature Registry

2 participants