May 8, 2026 · 7 min read · Snowflake, Slack, How-to
How to monitor Snowflake business metrics and get Slack alerts
Most data teams using Snowflake have the same blind spot: the warehouse contains everything — transactions, signups, revenue, user activity — but nobody gets notified when something goes wrong. You find out in the Monday standup, or when the CEO asks why last week's numbers look off.
This guide covers how to set up proactive business metric monitoring on Snowflake with Slack alerts — so your team knows the moment a KPI moves, not hours or days later.
Why Snowflake monitoring ≠ infrastructure monitoring
Snowflake has built-in query monitoring and account usage views. These are useful for tracking warehouse credits, query costs, and performance. But they don't monitor the data inside your tables.
Business metric monitoring is different. It means watching the values your SQL produces — transaction counts, daily active users, conversion rates, revenue by segment — and alerting your team when they change unexpectedly.
You can't do that with Snowflake's native tooling. You need something that:
- ·Runs SQL queries against your Snowflake tables on a schedule
- ·Understands what "normal" looks like for each metric (day of week, seasonality)
- ·Sends a Slack notification with full context when something moves
What most teams build first — and why it breaks
The typical starting point is a Python script that runs on a cron job, queries Snowflake, compares the result to a hardcoded threshold, and posts to a Slack webhook if triggered.
This works. For a while.
The problem is the maintenance: static thresholds fire every Monday morning because Monday is always slower than Friday. Your team starts ignoring alerts. You spend time tuning thresholds that make sense this month but break after a campaign or a seasonal shift. A schema change breaks three queries silently. Eventually the system owns you.
The deeper problem: only engineers can touch it. Every time a product manager wants a new metric, it's a ticket.
Setting up Snowflake metric monitoring with Lighthouse
Lighthouse is a business metric monitoring platform that connects directly to Snowflake with read-only credentials and sends Slack alerts when KPIs change. Here's how to get from zero to your first alert.
Step 1: Connect Snowflake with read-only credentials
Lighthouse needs a read-only Snowflake service account. Create a dedicated role with SELECT permissions on the schemas you want to monitor:
CREATE ROLE lighthouse_monitor;
GRANT USAGE ON WAREHOUSE your_warehouse TO ROLE lighthouse_monitor;
GRANT USAGE ON DATABASE your_db TO ROLE lighthouse_monitor;
GRANT USAGE ON SCHEMA your_db.your_schema TO ROLE lighthouse_monitor;
GRANT SELECT ON ALL TABLES IN SCHEMA your_db.your_schema TO ROLE lighthouse_monitor;
Then create a user and assign the role:
CREATE USER lighthouse_user
PASSWORD = 'your_secure_password'
DEFAULT_ROLE = lighthouse_monitor;
GRANT ROLE lighthouse_monitor TO USER lighthouse_user;
Enter these credentials in Lighthouse. Setup takes about 3 minutes.
Step 2: Describe a metric in plain English
Once connected, Lighthouse shows you your Snowflake schemas. Pick a table and describe what you want to monitor — in plain English.
For example: "Total transaction volume in the last hour, compared to the same hour last week."
Lighthouse's AI reads your schema and generates the Snowflake SQL automatically — including CTEs, window functions, and time filters. You review and approve the query. No manual SQL writing required.
Step 3: Set alert conditions
Configure how Lighthouse should alert:
- ·Threshold type: drop by more than X%, rise by more than X%, or absolute value
- ·Compare period: same time yesterday, same day last week, 4-week average
- ·Severity: S1 (critical), S2, or informational
- ·Frequency: every hour, every 15 minutes, daily
Lighthouse also sets adaptive baselines automatically — it learns your day-of-week patterns so Monday's lower volume doesn't trigger an alert.
Step 4: Connect Slack
Authorize the Lighthouse Slack app and pick which channel to send alerts to. You can route different metrics to different channels — finance metrics to #finance-alerts, product metrics to #product-data.
What the Slack alert looks like
When a metric crosses its threshold, Lighthouse sends a Slack message with:
- ·Metric name and severity
- ·Current value vs. baseline value
- ·Percentage change and compare period
- ·Segment (e.g., US · New Users)
- ·Action buttons: acknowledge, resolve, mark as known issue
Your team has the full picture without leaving Slack or opening a dashboard.
Common Snowflake metrics to monitor
Here are the metrics data teams most commonly set up alerts for:
Transaction and revenue metrics
- ·Total transaction volume (hourly or daily)
- ·Revenue by product line or region
- ·Average order value
- ·Payment failure rate
User and engagement metrics
- ·Daily and monthly active users
- ·New user signups
- ·Session volume by platform
- ·Feature adoption rates
Operations and data quality
- ·ETL pipeline row counts (detect data drops)
- ·Table freshness (last updated timestamp)
- ·Null rate or anomalous value counts
- ·API error rates logged to Snowflake
Frequently asked questions
Do I need admin credentials? No. Lighthouse only needs a read-only role with SELECT access. It never writes to your warehouse.
How does it handle seasonal patterns? Lighthouse compares each metric to a rolling baseline — same day of week, same time of day, averaged over the past 4 weeks. Monday at 9am is compared to the last 4 Mondays at 9am, not to Sunday at midnight.
Can analysts create their own metrics? Yes. Lighthouse is designed so non-technical business users can describe metrics in plain English without filing a ticket to the data team. Every analyst can manage their own alerts.
How long does setup take? Most teams connect Snowflake and create their first metric in under 10 minutes.
Ready to set it up? Start for free on Lighthouse — or read more about the Snowflake integration.