{"id":2439,"date":"2026-06-26T12:07:09","date_gmt":"2026-06-26T06:37:09","guid":{"rendered":"https:\/\/sharanamshah.com\/mymusings\/?page_id=2439"},"modified":"2026-06-26T12:52:03","modified_gmt":"2026-06-26T07:22:03","slug":"build-a-devops-monitoring-dashboard-with-python-and-streamlit","status":"publish","type":"page","link":"https:\/\/sharanamshah.com\/mymusings\/the-weekend-developer-series-on-kindle\/build-a-devops-monitoring-dashboard-with-python-and-streamlit\/","title":{"rendered":"Build a DevOps Monitoring Dashboard with Python and Streamlit"},"content":{"rendered":"\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"1024\" data-id=\"2434\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293-797x1024.png\" alt=\"\" class=\"wp-image-2434\" srcset=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293-797x1024.png 797w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293-233x300.png 233w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293-768x987.png 768w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293-1195x1536.png 1195w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293-1320x1696.png 1320w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/256293.png 1420w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"1024\" data-id=\"2437\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1-889x1024.jpeg\" alt=\"\" class=\"wp-image-2437\" srcset=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1-889x1024.jpeg 889w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1-260x300.jpeg 260w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1-768x884.jpeg 768w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1-1334x1536.jpeg 1334w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1-1320x1520.jpeg 1320w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Backpage1.jpeg 1589w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nobody pings you when your server goes down. Something should.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your client emails you Monday morning. Their website has been down since Saturday. Nobody told you \u2014 no alert, no red dashboard flag. You find out about outages from customers, expired SSL certificates from a &#8220;Not Secure&#8221; screenshot, and a failing hard drive when Windows finally warns you mid-presentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You know Python well enough to write a script that checks a URL. But the moment someone asks you to build something that runs by itself \u2014 invisible, awake even when your laptop is closed \u2014 you freeze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This book is the bridge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What You Will Build<\/strong><br>This is no toy script. You will build the Sentinel OS Controller \u2014 a self-hosted, zero-cost operations center made of two independent processes: a polished Streamlit dashboard you can see, and a headless Python daemon you cannot, staying in sync through two shared JSON files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is no hosted demo for this one, on purpose. The Sentinel OS Controller watches your hardware, your domains, and your file system \u2014 not a stranger&#8217;s cloud container. The proof is your own CPU graph, breathing in real time, the moment you finish Chapter 4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Part of The Weekend Developer Series<\/strong><br>This is the third title in The Weekend Developer Series \u2014 execution-first companions for impossibly busy people. Start Saturday morning, and by Monday you will have a fully autonomous operations center running quietly in the background, surviving a reboot without you lifting a finger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Across 9 Chapters and 4 Sections, You Will<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Section I \u2014 The Blueprint: Lock in the product contract, configure an isolated Python environment, and build the Streamlit command-center interface<\/li>\n\n\n\n<li>Section II \u2014 The Senses: Build the telemetry engine that reads CPU, RAM, and disk in real time, then the network engine that pings domains and catches a dying SSL certificate weeks early<\/li>\n\n\n\n<li>Section III \u2014 The Reflexes: Teach the daemon to route files instantly, parse security logs for intrusion attempts, throttle duplicate alerts, and graduate into a self-starting OS-level service<\/li>\n\n\n\n<li>Section IV \u2014 Under the Hood: Decode hardware interrupts, event-driven architecture, and the file-based contract that keeps two processes in sync<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What Makes This Book Different<\/strong><br>Most technical books fail in one of two ways: dense theory, or copy-paste snippets that break the moment something changes. This book is neither. Every chapter follows one protocol: real-world scenario, architecture map, exact commands, complete code, test plan, milestone checklist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Technical Skills You Will Own<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dual-process architecture \u2014 a dashboard and daemon synchronized through shared files, not shared memory<\/li>\n\n\n\n<li>Event-driven file watching, instead of CPU-draining polling loops<\/li>\n\n\n\n<li>Hardware telemetry \u2014 reading real CPU, RAM, and disk metrics from the OS kernel<\/li>\n\n\n\n<li>Network and SSL certificate verification before a certificate ever fails<\/li>\n\n\n\n<li>Log forensics with regex to catch intrusion patterns<\/li>\n\n\n\n<li>Alert engineering \u2014 throttling notifications so one incident is one alert, not forty<\/li>\n\n\n\n<li>OS-level service deployment via Task Scheduler, systemd, or launchd<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Who This Book Is For<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Solo developers and freelancers who find out about outages from clients, not dashboards<\/li>\n\n\n\n<li>Anyone managing personal or client domains who wants a private uptime tracker, no monthly bill<\/li>\n\n\n\n<li>Anyone tired of manually sorting invoices, screenshots, and downloads by hand<\/li>\n\n\n\n<li>Self-taught developers who want real systems-programming experience, not another script<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You do not need ML experience or a CS degree. Just basic Python logic and the ability to open a terminal. We handle everything else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Your Toolkit \u2014 Free<\/strong><br>Python 3.14.5+ \u2022 Streamlit \u2022 psutil \u2022 watchdog \u2022 requests \u2022 pandas \u2022 python-dotenv<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-7387b849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-thumbnail ticss-4bbf5ca5\"><a href=\"#\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC-150x150.jpg\" alt=\"\" class=\"wp-image-1600\" srcset=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC-150x150.jpg 150w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC-300x300.jpg 300w, https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/01\/TOC.jpg 360w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full ticss-dc129f0f\"><a href=\"https:\/\/play.google.com\/store\/books\/details?id=q4LuEQAAQBAJ\"><img loading=\"lazy\" decoding=\"async\" width=\"60\" height=\"68\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/Play-1.png\" alt=\"\" class=\"wp-image-2454\" style=\"object-fit:cover\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.in\/d\/0hZPr0zj\"><img loading=\"lazy\" decoding=\"async\" width=\"60\" height=\"60\" src=\"https:\/\/sharanamshah.com\/mymusings\/wp-content\/uploads\/2026\/06\/kindle1-2.jpg\" alt=\"\" class=\"wp-image-2453\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nobody pings you when your server goes down. Something should. Your client emails you Monday morning. Their website has been down since Saturday. Nobody told you \u2014 no alert, no red dashboard flag. You find out about outages from customers, expired SSL certificates from a &#8220;Not Secure&#8221; screenshot, and a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2400,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-2439","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/comments?post=2439"}],"version-history":[{"count":3,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2439\/revisions"}],"predecessor-version":[{"id":2455,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2439\/revisions\/2455"}],"up":[{"embeddable":true,"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/pages\/2400"}],"wp:attachment":[{"href":"https:\/\/sharanamshah.com\/mymusings\/wp-json\/wp\/v2\/media?parent=2439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}