Vertex AI Feature Store online stores with provisioned nodes and no serving requests
What does ZopNight detect here?
Vertex AI Feature Online Stores are flagged when their node count shows provisioned serving capacity but `aiplatform.googleapis.com/featureonlinestore/online_serving/request_count` records no requests. Bigtable online serving and Optimized online serving nodes are both priced per node hour, so a store nothing reads keeps billing, and ZopNight counts its whole cost as the saving.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1218 |
| Category | idle |
| Severity | medium |
| Metric | aiplatform.googleapis.com/featureonlinestore/online_serving/request_count |
| Threshold | provisioned nodes with zero serving requests |
| Evaluation window | up to 42d |
| Source | ZopNight |
| Permissions used | aiplatform.featureOnlineStores.list · aiplatform.featureOnlineStores.get · monitoring.timeSeries.list |
Where it applies
Serving nodes that nothing reads from
A Feature Online Store is the low-latency serving layer of Vertex AI Feature Store: models read feature values from it at prediction time. Its cost is the serving capacity behind it. Google’s Vertex AI pricing lists Bigtable online serving nodes and Optimized online serving nodes as hourly node charges, with Bigtable online serving storage billed per GiB-hour on top. Optimized serving runs a minimum of 2 replicas per node for availability, and you are charged for the replicas.
When the model that used the store is retired or moved, the store is easy to forget. It has no traffic of its own to draw attention, only a steady line on the bill.
Checking a store’s traffic
List stores in a region with the Vertex AI REST API:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/featureOnlineStores"In Metrics Explorer, chart
aiplatform.googleapis.com/featureonlinestore/online_serving/request_count for the store over 30
days, next to its node count under featureonlinestore/storage.
How ZopNight decides the store is idle
- A node-count measurement exists for the store, proving it has provisioned serving capacity and that its telemetry is arriving.
- Online serving requests are zero across whatever metric history ZopNight holds, up to 42 days, with no minimum history. If the request series has no data points at all, that is read as zero requests, because the node count shows the store is being measured.
- The store carries a real cost in your billing data.
Stores that are not flagged
Any serving request in the window clears the store. Without a node-count measurement, the rule does not act on the absence of requests alone, since that could simply be missing data. Stores with no attributed cost are skipped rather than priced from list rates. The legacy Feature Store has its own check, GCP Vertex AI Feature Store Idle.
Counting the saving
saving = current monthly store costcost after deletion = 0Deleting an unused online store
- Confirm no model or application reads online features from the store, and stop any online serving that is still in progress.
- Record the feature views it contains and their settings, so they can be recreated if needed.
- Delete the store and its feature views in one call with
force=true, per Google’s deletion guide:Terminal window curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/featureOnlineStores/STORE_NAME?force=true"