Staying on top of your Snowflake usage can be hard. To help you easily keep an eye on your spend trends, we created Spend Digests. A Spend Digest is a scheduled message delivered straight to Slack or Teams. They are designed to help you easily keep tabs on your Snowflake spend and understand what drove any changes.
Example Snowflake Account Spend Digest
Here’s an example of a Daily Spend Digest from our Snowflake account:
On this day, we had a large usage spike that was driven by Automatic Clustering being enabled for the first time. We were able to diagnose exactly what happened straight from the message, but you can also click into the relevant section of the SELECT web app (i.e. the warehouse page) to quickly understand what drove the increase.
Example Usage Group Spend Digest
Here's an example Weekly Spend Digest configured for a Usage Group:
Spend Threshold Monitor
To help notify you immediately if your usage has spiked, you can specify a daily spend threshold. If your daily usage exceeds this amount, you will be alerted. The UI gives you immediate feedback on how often you would have been alerted historically based on the amount you set.
Example Usage Group Spend Threshold Monitor
Here's an example of a Spend Threshold Monitor for all dbt models, achieved by creating a new Usage Group for dbt spend specifically. You can also enable Threshold Monitors for other Snowflake resources like an account or virtual warehouse.
Supported Resources for Monitors
Currently, you can configure Spend Digests and Spend Threshold Monitors for the following resources:
- Snowflake Accounts
- Snowflake Warehouses
- Usage Groups
In the future, we plan to offer two additional types of Monitors:
- Anomaly: instead of configuring a threshold, we will figure out if spend is abnormal and alert you.
- Cumulative threshold: get notified if spend is projected to exceed a cumulative threshold in a given period.
We will also expand our support for other types of resources. For example, you'll be able to configure dbt specific Monitors or send automated usage reports to each Snowflake user via email.
Get setup to receive notifications
Step 1: Connect an notification integration
To set up alerts, head to Settings -> Notifications in the SELECT web interface. From here you can set up an integration with Slack or Teams.
For Slack, you'll need to install SELECT's Slack application. Click the "Connect" button. You'll be prompted with a screen like this:
Our Slack app only requires access to list channels in your workspace and post messages. That's it! Once the installation is complete, you'll be directed back to this web page.
To connect Teams, click the "Enable" button. You'll be prompted to enter a webhook in the next step when adding a destination.
Step 2: Add a destination
After creating an notification integration, the next step is to to add a destination: the channel in the integration where alerts will get sent. Click the "Add New" button.
For Slack, simply enter the name of the channel you want to connect.
To create a Teams destination, first create a new Incoming Webhook for the channel you want to receive alerts by following the Teams documentation in your Teams account. Once that is complete, you can add a new destination:
Teams destinations have:
- a friendly name
- a webhook URL
- an optional channel name to help you remember where it goes (the channel gets configured in the Incoming Webhook setup, so this isn't required)
Whenever you add a new Teams destination or update a webhook, you’ll receive a test message like the one below (but with the name/image you chose) to make sure everything’s working.
Slack Private Channels
If the Slack channel you attempt to add in a destination is private, you may see an error like this.
In order to send alerts to a private Slack channel, the SELECT app must be added to the channel. You can do this by typing
/invite in Slack, or by typing
@SELECT in the channel and hitting enter. You'll then see a prompt to invite the app to the channel.
I’ve updated the channel in my Teams destination but are digests are still going to the old one
- Microsoft Teams webhooks are created for specific channels and are only authorised to send to that channel. The channel name is just to help remember where digests will go.
- If you’d like to change the channel a destination sends alerts to, you can create a webhook for the new channel and update your destination
- If you’d like to change the channel for one account without affecting other accounts, you create a new webhook for a new destination then set the account you wish to change to use that destination
I’ve set up a Teams destination but there aren’t any digests coming through
- Make sure the account for which you want to receive spend digests has a destination and at least one period set (as per the last screenshot)
- When you configure spend digests for the first time, you should receive your first one within 24 hours. Reach out to the SELECT team if you do not.
To configure Monitors, head to the Monitors tab:
Enabling Spend Digests
Choose which Spend Digests you want to receive, and select the destination (Slack/Teams channel) where the digests will go, then click Update. We recommend enabling weekly/monthly digests in conjunction with a daily spend threshold alert.
Configuring Spend Threshold Alerts
If your spend spikes, you don't wait to wait till the end of the week or month to find out. To create a Daily Spend Threshold, enter a number, specify a destination and click "Update". If your daily spend exceeds this amount, you'll receive an alert that looks similar to the Spend Digest.
Choosing a threshold
A starting point, take your daily Snowflake budget and multiply it by 1.5 (i.e.
$100,000 / 365 * 1.5 = $41). You can use the graph shown in the UI to see how often the alert would have fired historically at the given threshold.