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 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:

SELECT Snowflake spend alerts in slack

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:

SELECT usage group weekly spend digest

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.

SELECT dbt usage group spend threshold

Supported Resources for Monitors

Currently, you can configure Spend Digests and Spend Threshold Monitors for the following resources:

  1. Snowflake Accounts
  2. Snowflake Warehouses
  3. Usage Groups

Roadmap

In the future, we plan to offer two additional types of Monitors:

  1. Anomaly: instead of configuring a threshold, we will figure out if spend is abnormal and alert you.
  2. 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.

SELECT alerts setup part 1

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:

SELECT Slack app installation

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 "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.

SELECT alerts setup part 2

Slack

For Slack, simply enter the name of the channel you want to connect.

SELECT alerts setup part 3

Teams

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:

SELECT Teams alerts modal

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)
SELECT Teams alerts destinations

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.

SELECT Teams alerts test message

Troubleshooting

Slack Private Channels

If the Slack channel you attempt to add in a destination is private, you may see an error like this.

SELECT alerts setup part 4

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:

SELECT monitors page

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.

SELECT monitors setup

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.