From snowflake-pack
Collects diagnostic data from Snowflake QUERY_HISTORY, ACCOUNT_USAGE, sessions, and warehouse metrics for troubleshooting and support tickets.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin snowflake-packThis skill is limited to using the following tools:
Collect diagnostic information from Snowflake's ACCOUNT_USAGE views, QUERY_HISTORY, and driver logs for support tickets and troubleshooting.
Debugs advanced Snowflake issues with query profiling, spill analysis, lock contention, and performance dives using ACCOUNT_USAGE views for slow queries and warehouse problems.
Finds and ranks expensive Snowflake queries by cost, execution time, bytes scanned, or spillage. Analyzes query history for warehouse costs and optimization candidates with recommendations.
Automates Snowflake data warehouse operations: lists databases/schemas/tables with filters, executes SQL (SELECT/DDL/DML), manages workflows via Composio MCP.
Share bugs, ideas, or general feedback.
Collect diagnostic information from Snowflake's ACCOUNT_USAGE views, QUERY_HISTORY, and driver logs for support tickets and troubleshooting.
SNOWFLAKE.ACCOUNT_USAGE schema (typically ACCOUNTADMIN)-- Find the problematic query by ID
SELECT query_id, query_text, execution_status, error_code, error_message,
start_time, end_time, total_elapsed_time / 1000 AS elapsed_seconds,
bytes_scanned, rows_produced, compilation_time, execution_time,
warehouse_name, warehouse_size
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE query_id = '<paste-query-id-here>';
-- Recent failed queries
SELECT query_id, query_text, error_code, error_message,
start_time, user_name, role_name, warehouse_name
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE execution_status = 'FAIL'
AND start_time >= DATEADD(hours, -24, CURRENT_TIMESTAMP())
ORDER BY start_time DESC
LIMIT 20;
-- Slow queries (> 60 seconds)
SELECT query_id, query_text, total_elapsed_time / 1000 AS seconds,
bytes_scanned / 1e9 AS gb_scanned, partitions_scanned, partitions_total,
warehouse_name, warehouse_size
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE total_elapsed_time > 60000
AND start_time >= DATEADD(hours, -24, CURRENT_TIMESTAMP())
ORDER BY total_elapsed_time DESC
LIMIT 10;
-- Active sessions
SELECT session_id, user_name, created_on,
client_application_id, client_environment
FROM TABLE(INFORMATION_SCHEMA.SESSIONS())
ORDER BY created_on DESC;
-- Login history (auth failures)
SELECT event_timestamp, user_name, client_ip, reported_client_type,
error_code, error_message, is_success
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE event_timestamp >= DATEADD(hours, -24, CURRENT_TIMESTAMP())
AND is_success = 'NO'
ORDER BY event_timestamp DESC;
-- Warehouse load (queued queries = undersized)
SELECT warehouse_name, start_time,
avg_running, avg_queued_load, avg_queued_provisioning, avg_blocked
FROM TABLE(INFORMATION_SCHEMA.WAREHOUSE_LOAD_HISTORY(
DATE_RANGE_START => DATEADD(hours, -4, CURRENT_TIMESTAMP())
))
ORDER BY start_time DESC;
-- Credit consumption by warehouse
SELECT warehouse_name, SUM(credits_used) AS credits,
SUM(credits_used_compute) AS compute_credits,
SUM(credits_used_cloud_services) AS cloud_credits
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE start_time >= DATEADD(days, -7, CURRENT_TIMESTAMP())
GROUP BY warehouse_name
ORDER BY credits DESC;
#!/bin/bash
# snowflake-debug-bundle.sh
set -euo pipefail
BUNDLE_DIR="snowflake-debug-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE_DIR"
echo "=== Snowflake Debug Bundle ===" > "$BUNDLE_DIR/summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE_DIR/summary.txt"
# Environment info
echo "--- Environment ---" >> "$BUNDLE_DIR/summary.txt"
node --version >> "$BUNDLE_DIR/summary.txt" 2>&1 || true
python3 --version >> "$BUNDLE_DIR/summary.txt" 2>&1 || true
echo "SNOWFLAKE_ACCOUNT: ${SNOWFLAKE_ACCOUNT:-NOT SET}" >> "$BUNDLE_DIR/summary.txt"
echo "SNOWFLAKE_WAREHOUSE: ${SNOWFLAKE_WAREHOUSE:-NOT SET}" >> "$BUNDLE_DIR/summary.txt"
# Driver versions
echo "--- Driver Versions ---" >> "$BUNDLE_DIR/summary.txt"
npm list snowflake-sdk 2>/dev/null >> "$BUNDLE_DIR/summary.txt" || echo "Node driver: N/A" >> "$BUNDLE_DIR/summary.txt"
pip show snowflake-connector-python 2>/dev/null | grep -E "Name|Version" >> "$BUNDLE_DIR/summary.txt" || echo "Python connector: N/A" >> "$BUNDLE_DIR/summary.txt"
# Recent application logs (redacted)
if [ -f "logs/app.log" ]; then
grep -i "snowflake\|error\|timeout\|connection" logs/app.log 2>/dev/null \
| tail -100 \
| sed -E 's/(password|token|key)=[^ ]*/\1=***REDACTED***/gi' \
> "$BUNDLE_DIR/app-logs-redacted.txt"
fi
# Configuration (redacted)
if [ -f ".env" ]; then
sed 's/=.*/=***REDACTED***/' .env > "$BUNDLE_DIR/config-redacted.txt"
fi
# Network test
echo "--- Connectivity ---" >> "$BUNDLE_DIR/summary.txt"
curl -s -o /dev/null -w "Status: %{http_code}, Time: %{time_total}s\n" \
"https://${SNOWFLAKE_ACCOUNT:-unknown}.snowflakecomputing.com/" \
>> "$BUNDLE_DIR/summary.txt" 2>&1 || echo "Connectivity test failed" >> "$BUNDLE_DIR/summary.txt"
tar -czf "$BUNDLE_DIR.tar.gz" "$BUNDLE_DIR"
rm -rf "$BUNDLE_DIR"
echo "Bundle created: $BUNDLE_DIR.tar.gz"
QUERY_HISTORYALWAYS REDACT: passwords, private keys, OAuth tokens, PII SAFE TO INCLUDE: error codes, query IDs, query text (if no PII), timestamps, warehouse names
| Item | Purpose | Source |
|---|---|---|
| Query ID | Pinpoint exact failure | QUERY_HISTORY |
| Error code | Classify issue type | Error message |
| Warehouse load | Identify resource contention | WAREHOUSE_LOAD_HISTORY |
| Login history | Auth failure pattern | LOGIN_HISTORY |
| Driver version | Version-specific bugs | npm list / pip show |
For concurrency and warehouse sizing, see snowflake-rate-limits.