Bird
Raised Fist0
Snowflakecloud~5 mins

Resource monitors for cost control in Snowflake - Commands & Configuration

Choose your learning style10 modes available
Introduction
Resource monitors help you keep track of how much computing power your Snowflake account uses. They stop you from spending too much by setting limits on usage.
When you want to avoid unexpected high bills from running too many queries.
When you need to set a monthly budget for your Snowflake data warehouse usage.
When you want to get alerts before your account reaches a spending limit.
When you want to automatically suspend warehouses to save costs after a limit is reached.
When you manage multiple teams and want to control their resource usage separately.
Config File - resource_monitor.sql
resource_monitor.sql
CREATE RESOURCE MONITOR my_monitor
  WITH CREDIT_QUOTA = 100
  TRIGGERS ON 80 PERCENT DO NOTIFY,
           ON 100 PERCENT DO SUSPEND;

ALTER ACCOUNT SET RESOURCE_MONITOR = my_monitor;

This SQL script creates a resource monitor named my_monitor with a credit limit of 100 credits.

It sets two triggers: when 80% of the limit is reached, it sends a notification; when 100% is reached, it suspends warehouses to stop further usage.

The last command attaches this monitor to the Snowflake account so it starts controlling usage.

Commands
This command creates a resource monitor named 'my_monitor' with a limit of 100 credits. It sets triggers to notify at 80% usage and suspend warehouses at 100%.
Terminal
snowsql -q "CREATE RESOURCE MONITOR my_monitor WITH CREDIT_QUOTA = 100 TRIGGERS ON 80 PERCENT DO NOTIFY, ON 100 PERCENT DO SUSPEND;"
Expected OutputExpected
Resource monitor MY_MONITOR created.
This command attaches the resource monitor 'my_monitor' to the Snowflake account so it starts monitoring usage.
Terminal
snowsql -q "ALTER ACCOUNT SET RESOURCE_MONITOR = my_monitor;"
Expected OutputExpected
Account altered.
This command checks the details of the resource monitor to verify it was created and attached correctly.
Terminal
snowsql -q "SHOW RESOURCE MONITORS LIKE 'my_monitor';"
Expected OutputExpected
name | credit_quota | used_credits | state MY_MONITOR | 100 | 0 | ACTIVE
Key Concept

If you remember nothing else from this pattern, remember: resource monitors let you set credit limits and actions to control Snowflake costs automatically.

Common Mistakes
Not attaching the resource monitor to the account after creating it.
The monitor won't control usage or send alerts unless it is linked to the account.
Always run ALTER ACCOUNT SET RESOURCE_MONITOR = your_monitor_name after creating the monitor.
Setting triggers without specifying actions like NOTIFY or SUSPEND.
Triggers without actions do nothing and won't help control costs.
Always define what happens at each trigger level, such as NOTIFY or SUSPEND.
Summary
Create a resource monitor with a credit limit and triggers for notifications and suspending warehouses.
Attach the resource monitor to your Snowflake account to activate cost control.
Verify the monitor status with a SHOW command to ensure it is active and tracking usage.

Practice

(1/5)
1. What is the main purpose of a resource monitor in Snowflake?
easy
A. To track and control cloud credit usage by setting limits
B. To create new virtual warehouses automatically
C. To backup data to external storage
D. To manage user access permissions

Solution

  1. Step 1: Understand resource monitor function

    Resource monitors are designed to track cloud credit consumption and enforce limits to control costs.
  2. Step 2: Identify the correct purpose

    Among the options, only tracking and controlling credit usage matches the resource monitor's role.
  3. Final Answer:

    To track and control cloud credit usage by setting limits -> Option A
  4. Quick Check:

    Resource monitor = cost control [OK]
Hint: Resource monitors limit cloud credits to control costs [OK]
Common Mistakes:
  • Confusing resource monitors with user access controls
  • Thinking resource monitors create warehouses
  • Assuming resource monitors handle data backups
2. Which Snowflake SQL command correctly creates a resource monitor with a 1000 credit monthly limit?
easy
A. CREATE RESOURCE MONITOR my_monitor WITH CREDIT_QUOTA = 1000, TRIGGERS ON 90 PERCENT DO NOTIFY
B. CREATE RESOURCE MONITOR my_monitor SET CREDIT_LIMIT = 1000
C. CREATE RESOURCE MONITOR my_monitor WITH CREDIT_QUOTA = 1000 TRIGGERS ON 90 PERCENT DO NOTIFY
D. CREATE RESOURCE MONITOR my_monitor CREDIT_LIMIT 1000

Solution

  1. Step 1: Review correct syntax for resource monitor creation

    The correct syntax uses CREATE RESOURCE MONITOR with WITH CREDIT_QUOTA and TRIGGERS clauses.
  2. Step 2: Match syntax with options

    CREATE RESOURCE MONITOR my_monitor WITH CREDIT_QUOTA = 1000 TRIGGERS ON 90 PERCENT DO NOTIFY matches the correct syntax including triggers and notification on 90% usage.
  3. Final Answer:

    CREATE RESOURCE MONITOR my_monitor WITH CREDIT_QUOTA = 1000 TRIGGERS ON 90 PERCENT DO NOTIFY -> Option C
  4. Quick Check:

    Correct syntax uses WITH CREDIT_QUOTA and TRIGGERS [OK]
Hint: Use WITH CREDIT_QUOTA and TRIGGERS to create monitors [OK]
Common Mistakes:
  • Using SET instead of WITH for quota
  • Omitting TRIGGERS clause
  • Incorrect keyword CREDIT_LIMIT instead of CREDIT_QUOTA
3. Given this resource monitor configuration:
CREATE RESOURCE MONITOR rm1 WITH CREDIT_QUOTA = 500 TRIGGERS ON 80 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND;

What happens when the credit usage reaches 100%?
medium
A. The resource monitor suspends the warehouses linked to it
B. Snowflake sends a notification but continues running
C. The credit quota automatically increases
D. Nothing happens automatically

Solution

  1. Step 1: Analyze the triggers in the resource monitor

    The monitor triggers a notification at 80% and suspends resources at 100% usage.
  2. Step 2: Understand the effect of the 100% trigger

    At 100%, the monitor suspends warehouses linked to it to prevent further credit use.
  3. Final Answer:

    The resource monitor suspends the warehouses linked to it -> Option A
  4. Quick Check:

    100% trigger with SUSPEND = suspend warehouses [OK]
Hint: 100% trigger with SUSPEND stops warehouses automatically [OK]
Common Mistakes:
  • Thinking notification happens at 100% instead of suspend
  • Assuming quota increases automatically
  • Believing nothing happens at limit
4. You wrote this command to create a resource monitor:
CREATE RESOURCE MONITOR monitor1 WITH CREDIT_QUOTA = 2000 TRIGGERS ON 90 PERCENT DO NOTIFY ON 110 PERCENT DO SUSPEND;

What is wrong with this command?
medium
A. CREDIT_QUOTA must be less than 1000
B. The trigger percentage cannot exceed 100%
C. DO NOTIFY is not a valid action
D. Resource monitors cannot suspend warehouses

Solution

  1. Step 1: Check trigger percentage limits

    Trigger percentages must be between 0 and 100; 110% is invalid.
  2. Step 2: Validate other parts of the command

    DO NOTIFY is valid, CREDIT_QUOTA can be any positive number, and suspension is allowed.
  3. Final Answer:

    The trigger percentage cannot exceed 100% -> Option B
  4. Quick Check:

    Trigger percent ≤ 100% [OK]
Hint: Trigger percentages must be 0-100% only [OK]
Common Mistakes:
  • Setting trigger above 100%
  • Confusing DO NOTIFY syntax
  • Thinking suspension is disallowed
5. You want to prevent unexpected high costs by automatically suspending warehouses when 95% of your monthly credit quota is used, and notify at 80%. Which resource monitor configuration achieves this?
hard
A. CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 95 PERCENT DO NOTIFY ON 80 PERCENT DO SUSPEND;
B. CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 100 PERCENT DO NOTIFY ON 95 PERCENT DO SUSPEND;
C. CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 80 PERCENT DO SUSPEND ON 95 PERCENT DO NOTIFY;
D. CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 80 PERCENT DO NOTIFY ON 95 PERCENT DO SUSPEND;

Solution

  1. Step 1: Identify notification and suspension percentages

    Notification should occur at 80%, suspension at 95% usage.
  2. Step 2: Match triggers to correct actions and order

    CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 80 PERCENT DO NOTIFY ON 95 PERCENT DO SUSPEND; correctly sets 80% for notification and 95% for suspension.
  3. Step 3: Verify other options

    The other options swap actions or percentages incorrectly or notify at 100% instead of 80%.
  4. Final Answer:

    CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 80 PERCENT DO NOTIFY ON 95 PERCENT DO SUSPEND; -> Option D
  5. Quick Check:

    Notify 80%, suspend 95% = CREATE RESOURCE MONITOR cost_control WITH CREDIT_QUOTA = 1500 TRIGGERS ON 80 PERCENT DO NOTIFY ON 95 PERCENT DO SUSPEND; [OK]
Hint: Notify lower %, suspend higher % to control costs [OK]
Common Mistakes:
  • Swapping notify and suspend percentages
  • Setting notify higher than suspend
  • Using 100% notify instead of 80%
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard