Skip to main content
idle · gcp

Feature Online Stores provisioned with nodes nobody queries

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

Feature Online Stores on the Bigtable-backed tier bill fixed nodes hourly even at 0 queries per second. ZopNight anchors idleness on the continuous optimized-nodes gauge and treats a missing request counter as idle-consistent: the request series is a delta counter that writes no datapoints while the store is idle.

Signal and threshold

How ZopNight evaluates Feature Online Stores provisioned with nodes nobody queries.
Field Value
Rule IDsRC-1218
Categoryidle
Severitymedium
Metricnone — pure configuration read
Sourcevertex_idle.go

Fixed nodes under a serverless name

A Feature Online Store sounds like managed infrastructure that scales itself away, and the Optimized tier does autoscale, but the Bigtable-backed tier runs a fixed node count that bills hourly regardless of serving traffic. A store stood up for an ML experiment that ended keeps its nodes running for nothing. Even a never-queried Optimized store is wasted setup: its FeatureViews sync data that no application reads back.

A gauge anchors, a counter vetoes

The idle decision anchors on VertexFeatureOnlineStoreNodes, the continuous storage/optimized-nodes gauge that exists for a provisioned store even at 0 QPS. The request counter, VertexFeatureOnlineStoreRequestCount, only vetoes: if that series is present and shows any traffic at all (any positive average or maximum), the store is serving and no recommendation appears.

Why absence of data is evidence here

The request series is a delta counter, and Cloud Monitoring writes no datapoints for a delta counter that has nothing to count. A “present and zero” request series is therefore impossible for an idle store. An earlier revision that demanded one could never fire on exactly the resources it existed to catch. Treating the counter’s absence as idle-consistent, while requiring the nodes gauge to be present, is what makes the rule both live and safe. Both series arrive through monitoring.timeSeries.list in roles/monitoring.viewer.

List your online stores

Terminal window
gcloud beta ai feature-online-stores list --region us-central1 \
--format="table(name,createTime,bigtable.autoScaling.minNodeCount)"

Confirm with the owning team that no service reads online features from a flagged store, then delete the store and its FeatureViews together.

Billing attribution limits the firing

Pricing a Vertex serving type would mean inventing a per-node rate, so ZopNight’s calculated cost path carries no rack rate for these types and the rule only fires when GCP billing export attributes real spend to the store’s UID. It also abstains when the nodes gauge itself is absent. When it does fire, the full attributed monthly cost is the recoverable figure, since an unqueried store has no partial value to preserve.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

417 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

417 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·