Skip to main content
schedule · databricks

Interactive clusters with auto-termination off or set too high

resource types
1
rule IDs covered
3
severity
medium

What does ZopNight detect here?

ZopNight flags an interactive Databricks cluster whose auto-termination is disabled or set above 120 minutes. An all-purpose cluster left running bills DBUs plus the underlying cloud VMs for every idle minute, and the saving is prorated against that 120-minute ceiling rather than assumed total.

Signal and threshold

How ZopNight evaluates Interactive clusters with auto-termination off or set too high.
Field Value
Rule IDsRC-2301 · RC-2401 · RC-2201
Categoryschedule
Severitymedium
Metricnone — pure configuration read
Sourcecluster_autotermination.go

Two failure modes, one rule

Auto-termination set to zero means disabled, and the cluster runs until somebody stops it. That is the expensive case: a cluster started for an afternoon’s exploration and forgotten bills through the night and the weekend.

Auto-termination set high, say 480 minutes, is the quieter case. It terminates eventually, but only after eight idle hours, and it resets on every stray interaction. In practice a cluster with a long timeout and an open notebook rarely terminates at all.

The 120-minute ceiling and how the saving is derived

The rule treats 120 minutes as the upper bound for a healthy setting. Above it, or at zero, the finding fires.

The saving is not the cluster’s whole cost. It is prorated: the reported figure scales by 1 - (120 / configured minutes), so a cluster set to 480 minutes yields three-quarters of the idle cost rather than all of it. That reflects what tightening to the ceiling actually recovers, not what deleting the cluster would.

What you are paying for while idle

Databricks charges DBUs for the cluster, and your cloud provider charges separately for the underlying VMs. An idle all-purpose cluster accrues both. That double meter is why interactive clusters are consistently the largest avoidable line in a Databricks bill.

Listing autotermination_minutes per cluster

Terminal window
databricks clusters list --output json | jq -r '.clusters[]
| select(.cluster_source=="UI" or .cluster_source=="API")
| [.cluster_name, .autotermination_minutes, .state] | @tsv'

Anything reporting 0, or a value above 120, is what this rule sees.

Where to set it instead

Ten to thirty minutes suits interactive work: long enough to survive a coffee break, short enough that a forgotten notebook costs little. Cluster policies can enforce a maximum so the setting is not left to whoever creates the cluster.

Job clusters are exempt from this finding entirely: they terminate when the job ends, which is the behaviour auto-termination is approximating.

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·