Workbench notebooks left running with idle shutdown turned off
What does ZopNight detect here?
Workbench notebooks with idle shutdown explicitly disabled keep billing provisioned vCPU, GPU and RAM while nobody is attached. ZopNight multiplies the notebook's monthly cost by its measured weekly idle fraction from the usage heatmap and proposes an off-hours stop/start schedule, or simply re-enabling the built-in idle shutdown with a 60-180 minute timeout.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1235 |
| Category | schedule |
| Severity | medium |
| Metric | none — pure configuration read |
| Source | vertex_security.go (VertexNotebookIdleShutdownRule) |
Where it applies
Default-on, so an explicit false matters
Workbench ships with idle shutdown enabled. Someone had to turn it off (usually to stop
a long training run from being interrupted), and the setting then survives long after
the training did. The gate honours that history precisely: it fires only when the
discoverer positively recorded idleShutdown as false. An absent signal is never treated
as disabled, because doing so would flag every notebook still on the default.
Priced from a heatmap, not a guess
A notebook without idle shutdown is a GPU-shaped VM billing around the clock. The saving is computed as the notebook’s monthly cost multiplied by its measured idle fraction, the share of the week the aggregator’s usage heatmap shows the machine doing nothing. No heatmap, no number, no recommendation: the rule has no fallback fraction, so a notebook whose usage pattern was never measured produces silence rather than an invented percentage.
Schedule or timeout: same money
Two remediations recover the same idle window. ZopNight can apply a recurring stop/start
schedule, executed through notebooks.instances.stop and notebooks.instances.start
inside roles/notebooks.admin, with the cron window and timezone carried on the
recommendation. Or the operator simply re-enables Workbench’s own idle shutdown with a
60-180 minute timeout, which achieves the shutdown half automatically and needs no
external scheduler. The schedule is the better fit for teams with predictable hours; the
timeout wins for irregular ones.
Read the shutdown setting
gcloud workbench instances describe my-notebook --location us-central1-a \ --format="value(gceSetup.metadata)" | tr ',' '\n' | grep -i idleAn idle-timeout key that is missing or zeroed on a running notebook reproduces what the discoverer stamped.
No measurement, no recommendation
Abstention applies when the idleShutdown flag is absent or true, when pricing for the
notebook is unknown or zero, and when no heatmap-derived schedule data exists or the
measured idle percentage is zero. This is a cost recommendation with a real dollar
figure, deliberately not a $0 governance advisory; that earlier shape was retired.