Skip to main content
orphan · gcp

Built Vector Search indexes deployed to no endpoint

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

Vector Search bills index builds and updates per GiB as one-time operations and serving per node-hour only while deployed, so an undeployed index has a $0 standing rate. ZopNight surfaces one only when billing attributed recent build spend to it. The figure reflects event-driven charges, not a recurring monthly bill.

Signal and threshold

How ZopNight evaluates Built Vector Search indexes deployed to no endpoint.
Field Value
Rule IDsRC-1215
Categoryorphan
Severitylow
Metricnone — pure configuration read
Sourcevertex_orphan.go

An orphan with no standing rate

Vector Search’s billing shape is unusual: building or updating an index is a one-time per-GiB operation, and the recurring node-hour charges belong entirely to the IndexEndpoint it serves from. An index sitting undeployed (the discoverer’s isDeployed flag recorded as false) therefore costs $0 per month just to exist. That makes this a different kind of orphan from an unattached disk: the waste is not a meter running today but money already spent on builds feeding nothing, and money that will be spent again on update pipelines that keep refreshing an index nobody queries.

Why the shown dollars are event-driven

The figure attached to a flagged index is spend that GCP billing export attributed to that index’s UID, in practice recent build and update operations. Read it as “what this index cost to maintain lately”, not as a charge that deletion stops permanently. If an automated pipeline is still updating the index, deleting the index and stopping the pipeline ends a genuinely recurring waste stream.

Verify deployment state

Terminal window
gcloud ai indexes describe INDEX_ID --region us-central1 \
--format="value(displayName,deployedIndexes)"

An empty deployedIndexes list is the exact gate. Indexes are discovered by a live aiplatform REST poller (Cloud Asset Inventory does not index them), under permissions in roles/aiplatform.viewer.

Rebuild cost is the real waste

Before deleting, weigh the rebuild: reconstructing a large index later costs its full per-GiB build price plus pipeline time. If redeployment is plausible within the quarter, undeploying nothing and simply pausing the update pipeline may be the cheaper reversible move. If the embedding model that produced the vectors has changed anyway, the index is already stale and deletion is free of regret.

When it stays quiet

The rule abstains for any index whose isDeployed flag is absent or true, and for indexes with no billing-attributed spend; a $0 orphan generates no recommendation. No minimum-age gate exists yet, because GCP’s Index resource records no last-undeployed timestamp; a just-built index awaiting its first deployment can briefly match, which is why the remediation starts with “confirm it is not awaiting deployment”.

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·