About uptime mongers
DNS security and infrastructure monitoring built on boring tools that work
Why "mongers"?
Perl is special to me and the name is inspired by Perl Mongers — the worldwide community of Perl enthusiasts and practitioners. A "monger" isn't just someone who uses something, but someone who cares about doing it right.
uptime mongers: people who actually care that your infrastructure stays up.
Built on Pyng
uptime mongers is Pyng, offered as a hosted service. Pyng is a self-hosted monitoring system I built after using NodePing for almost a decade. I was very happy with NodePing, but I needed more powerful DNS checks.
So in 2023 I wrote a replacement in 1,350 lines of Python using just the standard Python library plus a bit of boring technology (ping, drill, curl, nc) that just works. kode24 wrote about it.
Two Years Later
About a year after the initial prototype, when evaluating Twisted for some other unrelated tasks, I ported Pyng to Twisted, wrote documentation and published everything. Writing documentation has taken a lot of time.
Another year later, at a conference in November 2025, a friend tried to show me his new app and it was down! "I really need to add some monitoring," he muttered. I pulled out my laptop and added a Pyng check for him right there. When the app came up again, he was paged on his phone. I asked: "Would you pay for this?" "Heck, yes," he said. He said USD 15 was a fair price. And here we are.
Claude Code Design Work
I'm an IT lawyer by profession; I do system administration and backend development as a hobby — not a designer. The backend, configuration, and raw HTML are all written in Emacs. Stuff I make works well, but looks ugly. When it was time to launch uptime mongers as a service, I needed a better front-end design.
I used Claude Code (yes, "AI") to clean up the CSS and polish the design. kode24 wrote about the design process.
I've been running this in production for my own monitoring for two years. It works.
Boring Technology
Tools that have worked for decades
Unix Philosophy
Pyng is written in Python and tries hard not to reinvent the wheel, but rather uses tested command-line utilities: ping for ICMP checks, drill for DNS queries, curl for HTTP requests, netcat for TCP checks. Pyng orchestrates them with Python, handling scheduling, alerting and result validation.
Small tools doing one thing well. That's it.
OpenBSD & FreeBSD
uptime mongers is developed primarily on OpenBSD and runs in production on a mix of OpenBSD and FreeBSD.
There are no containers, no exotic dependencies, and no trendy frameworks that'll be abandoned next year — just solid, boring technology that's been working for decades.
Self-Hosted on Hetzner
The service is self-hosted on Hetzner infrastructure using two VMs: one runs the master, another one runs all the commands.
uptime mongers is monitored by a Pyng instance running on my main server.
Supporting Good Folks
A few non-core dependencies I'm happy to support
ntfy.sh
ntfy push alerts use ntfy.sh, run by its creator. I pay for an account to support the project.
Posteo
Email runs on Posteo, so I'm reachable even if my own mail server is down, and replies land reliably.
Live Examples
Real monitoring setups running on uptime mongers
DNS Security Monitoring
Norwegian ccTLD (.no)
DNS security monitoring for the .no zone.
posteo.com Monitoring
DNS security monitoring for an email provider.
DNSSEC Edge Cases
Lookup of a domain with invalid DNSSEC. Invalid DNSSEC returns no data and no failure unless configured otherwise — this check demonstrates that behaviour.
View Check →HTTP Monitoring & Global Access
Hacker News Access
Testing accessibility from different continents and via Tor.
uptime.is Connectivity
Testing IPv4, IPv6, and Tor accessibility.
Posteo Email
HTTP check of a German email provider with a custom User-Agent header (they block curl's default User-Agent).
View Check →Friend's App Monitoring
Multi-location monitoring for a web app (the one that went down at the conference).
Infrastructure & Push Monitoring
System Reboot Detection
Detect reboots by monitoring boot time changes via push check.
View Check →Push Check Heartbeat
Chicken and egg: monitoring the monitor with a heartbeat sender.
View Check →Mullvad Gateway Tests
Testing VPN gateway connectivity for the command runner node.
uptime mongers DNS
Monitoring uptime mongers' own DNS service (TXT record lookup).
View Check →Data Extraction & Validation
Mullvad WireGuard Relays
Advanced JSON selector to filter active relays in Frankfurt.
View Check →Title Validation & Monitoring
Validate that the HTML title contains "Underskog" and monitor changes.
View Check →