<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abin Alex</title>
    <description>The latest articles on DEV Community by Abin Alex (@abin_alex_863f65bd6a1a77f).</description>
    <link>https://dev.to/abin_alex_863f65bd6a1a77f</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4054112%2F0c0e00f2-6d1d-4a26-af66-1b703b72a391.png</url>
      <title>DEV Community: Abin Alex</title>
      <link>https://dev.to/abin_alex_863f65bd6a1a77f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abin_alex_863f65bd6a1a77f"/>
    <language>en</language>
    <item>
      <title>SnowLens: Free Snowflake Observability — 9 Detectors, Zero Data Egress</title>
      <dc:creator>Abin Alex</dc:creator>
      <pubDate>Thu, 30 Jul 2026 02:40:40 +0000</pubDate>
      <link>https://dev.to/abin_alex_863f65bd6a1a77f/snowlens-free-snowflake-observability-9-detectors-zero-data-egress-1dln</link>
      <guid>https://dev.to/abin_alex_863f65bd6a1a77f/snowlens-free-snowflake-observability-9-detectors-zero-data-egress-1dln</guid>
      <description>&lt;p&gt;If you run Snowflake in production, you've probably asked yourself: which queries are burning credits? Why did costs spike last Tuesday? Are any warehouses just sitting there idle?&lt;/p&gt;

&lt;p&gt;Most observability tools answer these questions by shipping your query logs to an external SaaS — data egress, vendor lock-in, another subscription. SnowLens takes a different approach: it's a Streamlit app that installs directly into your Snowflake account and runs on your own compute. Your data never leaves your environment.&lt;/p&gt;

&lt;p&gt;And it's completely free.&lt;/p&gt;

&lt;p&gt;What It Detects — 9 Rules&lt;/p&gt;

&lt;p&gt;Performance:&lt;/p&gt;

&lt;p&gt;Slow queries — configurable threshold (10s/20s/30s/60s) with SELECT-only toggle&lt;br&gt;
Cancelled queries — manually stopped or killed by timeout&lt;br&gt;
Failed queries — non-cancellation errors (syntax, permissions, resource limits)&lt;br&gt;
Disk spill — local vs remote classification, remote flagged as high-risk&lt;br&gt;
Queuing — warehouse contention when QUEUED_OVERLOAD_TIME exceeds 60s&lt;/p&gt;

&lt;p&gt;Cost:&lt;/p&gt;

&lt;p&gt;Credit spikes — hourly usage &amp;gt; 2 standard deviations above warehouse baseline&lt;br&gt;
Idle-but-running — credits burned with zero queries&lt;br&gt;
Oversized warehouses — big warehouse, tiny workload&lt;br&gt;
Workload cost spikes — cost outliers by QUERY_TAG or role&lt;/p&gt;

&lt;p&gt;Plus a cost attribution engine that groups credit usage by QUERY_TAG, dbt model, or role.&lt;/p&gt;

&lt;p&gt;How It Works&lt;/p&gt;

&lt;p&gt;SnowLens reads from three Snowflake metadata views that every account already has:&lt;/p&gt;

&lt;p&gt;SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY&lt;br&gt;
SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY&lt;br&gt;
SNOWFLAKE.ACCOUNT_USAGE.QUERY_ATTRIBUTION_HISTORY&lt;/p&gt;

&lt;p&gt;These are Snowflake's own internal metadata — not your business data. No tables, stages, or query results are touched.&lt;/p&gt;

&lt;p&gt;Privacy Model&lt;br&gt;
Only reads ACCOUNT_USAGE metadata&lt;br&gt;
No outbound network calls (Streamlit-in-Snowflake runs in isolation)&lt;br&gt;
Runs on XSMALL warehouse with 60s auto-suspend (cents per session)&lt;br&gt;
Least-privilege role with only the grants the app needs&lt;br&gt;
Clean uninstall in 3 lines of SQL&lt;br&gt;
Memory Safety&lt;/p&gt;

&lt;p&gt;Streamlit-in-Snowflake has a ~32 MB memory limit. SnowLens handles large accounts with:&lt;/p&gt;

&lt;p&gt;Query text truncated to 300 characters&lt;br&gt;
Each detector capped at top 200 findings via QUALIFY ROW_NUMBER()&lt;br&gt;
Cost attribution aggregated in SQL before loading into Python&lt;br&gt;
Warehouse scope selector to limit detection to individual warehouses&lt;br&gt;
Install in 5 Minutes&lt;br&gt;
Download the ZIP from snowlens.vizcanvaz.com&lt;br&gt;
Run sql/01_setup.sql as ACCOUNTADMIN in Snowsight&lt;br&gt;
Upload streamlit_app.py and environment.yml to the stage, run sql/02_create_app.sql&lt;/p&gt;

&lt;p&gt;Done. Open Projects &amp;gt; Streamlit &amp;gt; SNOWLENS_APP.&lt;/p&gt;

&lt;p&gt;Links&lt;br&gt;
Product page: snowlens.vizcanvaz.com&lt;br&gt;
GitHub: github.com/abysabin/snowlens&lt;br&gt;
Full blog post with SQL logic: vizcanvaz.com&lt;/p&gt;

&lt;p&gt;Built by Abin Alex — 15+ years in data engineering. Questions or feedback welcome at &lt;a href="mailto:vizcanvas@gmail.com"&gt;vizcanvas@gmail.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>snowflake</category>
      <category>dataengineering</category>
      <category>opensource</category>
      <category>python</category>
    </item>
  </channel>
</rss>
