<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Prometheus on Linux Colorado</title><link>https://www.linuxcolorado.com/tags/prometheus/</link><description>Recent content in Prometheus on Linux Colorado</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.linuxcolorado.com/tags/prometheus/index.xml" rel="self" type="application/rss+xml"/><item><title>Letting Claude Read My Firewall: an OPNsense MCP Server, and What It Found on My Network</title><link>https://www.linuxcolorado.com/post/2026-08-18-opnsense-mcp-network-forensics/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.linuxcolorado.com/post/2026-08-18-opnsense-mcp-network-forensics/</guid><description>&lt;p&gt;I gave Claude a read-only window into my firewall. Not &amp;ldquo;pasted some logs into a chat&amp;rdquo; — an actual &lt;a href="https://modelcontextprotocol.io"&gt;Model Context Protocol&lt;/a&gt; server wrapping the &lt;strong&gt;OPNsense&lt;/strong&gt; API, so Claude Code could call &lt;code&gt;leasesSearchLease&lt;/code&gt;, &lt;code&gt;dnsReverseLookup&lt;/code&gt;, and dozens of other firewall functions on demand. Then I pointed it at a simple question — &lt;em&gt;what is actually on my network, and where does it all phone home?&lt;/em&gt; — and got a genuinely uncomfortable answer.&lt;/p&gt;
&lt;p&gt;This post is two things: how to stand up an OPNsense MCP server in Docker &lt;strong&gt;safely&lt;/strong&gt;, and the little network-forensics session it enabled, which is the real reason to build one.&lt;/p&gt;</description></item><item><title>Aiming an OTA Antenna With Data: Prometheus + Grafana on an HDHomeRun FLEX 4K</title><link>https://www.linuxcolorado.com/post/2026-08-15-hdhomerun-antenna-aiming-grafana/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.linuxcolorado.com/post/2026-08-15-hdhomerun-antenna-aiming-grafana/</guid><description>&lt;p&gt;Aiming an over-the-air TV antenna is traditionally a two-person job with a lot of yelling: one person on the roof rotating the mast, one inside shouting &amp;ldquo;better… worse… BETTER… no, worse again.&amp;rdquo; The feedback loop is slow, the signal bar in the tuner&amp;rsquo;s web UI updates lazily, and you can never quite tell whether that last nudge helped.&lt;/p&gt;
&lt;p&gt;I wanted a &lt;em&gt;tight&lt;/em&gt; feedback loop: a live graph, updating every few seconds, of the exact signal metrics that matter — so I could rotate the antenna and watch a line move in real time. My tuner is an &lt;strong&gt;HDHomeRun FLEX 4K&lt;/strong&gt;, and it turns out you can scrape per-tuner signal quality straight into &lt;strong&gt;Prometheus&lt;/strong&gt; and chart it in &lt;strong&gt;Grafana&lt;/strong&gt;. This post is how I built that, the one exporter that actually does the job, and the surprise ending where the data explained a &amp;ldquo;broken&amp;rdquo; channel that wasn&amp;rsquo;t broken at all.&lt;/p&gt;</description></item></channel></rss>