Snowflake

Resource Monitors & Cost Management

Proactively control and cap credit spend across warehouses and the account.

A resource monitor is a Snowflake object that tracks credit consumption against a defined quota for one or more virtual warehouses (or the entire account) and can trigger automated actions — sending alerts, suspending warehouses — when usage crosses configured thresholds. This is the primary built-in guardrail against runaway compute costs.

A resource monitor is like a prepaid data plan with usage alerts — you get a warning at 75% of your allotment, service pauses for new usage at 100%, and everything cuts off hard past the emergency ceiling.

Key Concepts

1
A resource monitor defines a credit quota for a time interval (daily, weekly, monthly, or never-resetting), plus a set of triggers: percentage thresholds (e.g., 75%, 100%, 110%) each paired with an action — NOTIFY (email alert only) or SUSPEND / SUSPEND_IMMEDIATE (stop new queries from starting, or kill running queries immediately). Multiple thresholds are typically layered, e.g., notify at 75%, suspend new queries at 100%, hard-suspend at 110%.
triggerscredit quotaNOTIFYSUSPENDSUSPEND_IMMEDIATE
2
Resource monitors can be attached to a specific warehouse or set at the account level to cap total organizational spend. They're most effective as a safety net against unexpected cost spikes (e.g., a runaway query, a misconfigured task looping constantly) rather than as the primary cost optimization strategy — which should instead rely on right-sizing warehouses, aggressive auto-suspend, and query optimization.
3
Beyond resource monitors, Snowflake's ACCOUNT_USAGE schema (views like WAREHOUSE_METERING_HISTORY, QUERY_HISTORY) and the newer budgets feature provide the visibility needed to attribute cost to teams, warehouses, or workloads for chargeback and optimization.
ACCOUNT_USAGEWAREHOUSE_METERING_HISTORYQUERY_HISTORYbudgets