Skip to main content

From Fragmented to Fluid: Simplifying ServiceRadar with Elixir, Rustler, and CloudNativePG

· 7 min read
Michael Freeman
Open Source Software Engineer

In observability, complexity is the enemy. Our previous architecture asked a React app to hit two APIs (core in Go, SRQL our Domain-Specific Language (DSL) and query engine in Rust) through Nginx/Kong for JWT verification, while a Go-based auth service issued JWKS/OAuth tokens. We'd been wrestling with this stack for a while—slow initial renders, state management sprawl, and the constant churn of keeping dependencies current across a deep node_modules tree.

React2Shell forced the conversation we'd been putting off. The vulnerability itself was bad enough, but the follow-up CVEs and the broader pattern they revealed made us take a harder look at what we were signing up for. React is a mature framework carrying years of accumulated complexity and technical debt. That's not a criticism—it's the natural arc of any widely-adopted JS project. But for a team shipping observability tooling, betting on a stack where the next critical CVE feels like a matter of "when" rather than "if" wasn't a trade-off we wanted to keep making.

An upcoming release takes a different shape:

  • Phoenix + LiveView serves as the experience layer
  • Rustler-embedded SRQL runs inside the Phoenix app as a NIF—no extra service
  • CloudNativePG with TimescaleDB + Apache AGE provides a single unified data store
  • Go core continues to orchestrate agents, pollers, and ingestion

From 19 Hours to Under a Second: Building a Blazing-Fast TCP Scanner in Go

· 6 min read
Michael Freeman
Open Source Software Engineer

Our network discovery workflow used to take longer than a transatlantic flight. A full sweep across 21,000 devices required 19 hours with the TCP connect() scanner we shipped in early 2025. That left ServiceRadar’s inventory stale by the time scans finished. Internally, we challenged ourselves to deliver near-real-time visibility—and the result is a Go-powered SYN scanner that now finishes the same job in under one second.

Monitoring Your Ubiquiti Dream Machine Pro with ServiceRadar's SNMP Poller

· 5 min read
Michael Freeman
Open Source Software Engineer

Network monitoring doesn't have to be complicated—especially when you're managing devices like the Ubiquiti UniFi Dream Machine Pro (UDM-Pro). With ServiceRadar's SNMP Poller feature, you can easily keep tabs on your router's performance, like tracking bandwidth on your primary WAN interface, without breaking a sweat. In this post, we'll walk you through enabling SNMP on your UDM-Pro, finding the right OID for your WAN interface using a handy open-source tool, and setting it up in ServiceRadar. Whether you're a seasoned network admin or just getting started, this guide will show you how simple it can be to gain real-time visibility into your network.

Let's dive in and see how ServiceRadar makes monitoring your Ubiquiti gear a breeze!

Welcome to the ServiceRadar Blog

· 4 min read
Michael Freeman
Open Source Software Engineer

We’re thrilled to launch the ServiceRadar blog—a space where we’ll share updates, insights, and technical deep dives about our distributed network monitoring application, ServiceRadar. Whether you’re a network administrator, a DevOps engineer, or just curious about cutting-edge monitoring solutions, this blog will keep you in the loop on how ServiceRadar is evolving to meet the challenges of modern infrastructure.

This is the beginning of a journey to explore how ServiceRadar empowers you to monitor services in hard-to-reach places or constrained environments with real-time insights and robust alerting. Let’s dive into what ServiceRadar is all about and what you can expect from this blog.