Using SELECT
Monitors
Feature Overview
Spend Digests
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 your email, 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:
Budget information
If a Budget is set for the Usage Group, its progress and an image with the spend forecast are automatically included in the Weekly and Monthly Usage Group digests.
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 Snowflake Account Spend Threshold Monitor
Here's an example Slack alert for a Spend Threshold Monitor for a Snowflake account. You can also enable Threshold Monitors for other Snowflake resources like virtual warehouses.
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.
Supported Resources for Monitors
Currently, you can configure Spend Digests and Spend Threshold Monitors for the following resources:
- Snowflake Organizations
- Snowflake Accounts
- Snowflake Warehouses
- Usage Groups
Roadmap
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 a notification integration
To set up monitors, you first need to enable the notification integrations you want to use. Head to Settings -> Notifications in the SELECT web interface. From here, you can set up an email, Slack or Teams integration.
To enable our email integration, click the "Connect" button. You'll be prompted to enter an email address in the next step when adding a destination.
Slack
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.
Teams
To connect Teams, click the "Connect" button. You'll be prompted to enter a webhook in the next step when adding a destination.
Step 2: Add a destination
After creating a notification integration, the next step is to add a particular destination where messages will get sent to. It can be an email address (for our Email integration) or a channel (for our Slack and Teams integrations). Click the "Add New" button.
For email destinations, you need only provide the recipient's email address. This can be your own or someone else's in your organization.
Third-party tools with email integration
You can also have your messages delivered to any third-party tool that provides email integrations, such as incident management platforms like Opsgenie or PagerDuty. See our Opsgenie documentation for an example.
Slack
For Slack, simply enter the name of the channel you want to connect.
Teams
To create a Teams destination, first create a new Teams workflow by following the Teams Workflows documentation. During the process, you will be able to choose to which channel (or chat) the messages should be delivered to. Once that is complete, take note of your workflow URL and proceed with creating a new destination in SELECT:
Legacy Team Incoming Webhook support
We also support webhook URLs generated using the legacy Incoming Webhook feature from Teams, and we will support it for as long as Teams does. For new destinations, we suggest using the Workflows feature as described above.
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.
Troubleshooting
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.
Configure Monitors
To configure Monitors, head to the Monitors tab:
Enabling Spend Digests
Choose which Spend Digests you want to receive, and select the destination 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.