<?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: SIA UA</title>
    <description>The latest articles on DEV Community by SIA UA (@sia_ua_9403e2a52030c510b7).</description>
    <link>https://dev.to/sia_ua_9403e2a52030c510b7</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%2F4120992%2F567990c4-bfec-4553-991b-1b2d2812846d.png</url>
      <title>DEV Community: SIA UA</title>
      <link>https://dev.to/sia_ua_9403e2a52030c510b7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sia_ua_9403e2a52030c510b7"/>
    <language>en</language>
    <item>
      <title>Where the Packet Goes</title>
      <dc:creator>SIA UA</dc:creator>
      <pubDate>Fri, 11 Sep 2026 13:40:47 +0000</pubDate>
      <link>https://dev.to/sia_ua_9403e2a52030c510b7/where-the-packet-goes-4796</link>
      <guid>https://dev.to/sia_ua_9403e2a52030c510b7/where-the-packet-goes-4796</guid>
      <description>&lt;p&gt;When a link starts flapping and a client messages "everything is slow," the question is always the same: is it your network, the ISP's link, or something further down the path? Here's &lt;strong&gt;PULSAR&lt;/strong&gt;, a self-hosted network monitor that answers it — without sending your traffic anywhere else.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/testsia" rel="noopener noreferrer"&gt;
        testsia
      &lt;/a&gt; / &lt;a href="https://github.com/testsia/pulsar-monitor" rel="noopener noreferrer"&gt;
        pulsar-monitor
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      PULSAR — self-hosted, real-time network monitoring (Ping/MTR/Traceroute/HTTP/DNS/TCP), alerting, incident correlation, route geo-analytics
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;PULSAR&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;🇬🇧 English | 🇺🇦 &lt;a href="https://github.com/testsia/pulsar-monitor/README.uk.md" rel="noopener noreferrer"&gt;Українська&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;🚧 &lt;strong&gt;Active development.&lt;/strong&gt; Expect breaking changes between releases. Found
a bug or have an idea? &lt;a href="https://github.com/testsia/pulsar-monitor/issues" rel="noopener noreferrer"&gt;Open an issue&lt;/a&gt;
or &lt;a href="https://github.com/testsia/pulsar-monitor/discussions" rel="noopener noreferrer"&gt;start a discussion&lt;/a&gt; —
and if PULSAR is useful to you, a ⭐ star helps others find it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Self-hosted, real-time network monitoring.&lt;/strong&gt; Ping, MTR, Traceroute, HTTP
DNS, and TCP probes against any host or agent, with alerting, incident
correlation, route/ASN geo-analytics, and a live WebSocket dashboard — no
polling, no external SaaS dependency, your data stays on your own
infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/testsia/pulsar-monitor/docs/screenshots/dashboard.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftestsia%2Fpulsar-monitor%2FHEAD%2Fdocs%2Fscreenshots%2Fdashboard.png" alt="Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

More screenshots (monitor list, RTT history)
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/testsia/pulsar-monitor/docs/screenshots/monitors.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftestsia%2Fpulsar-monitor%2FHEAD%2Fdocs%2Fscreenshots%2Fmonitors.png" alt="Monitors"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/testsia/pulsar-monitor/docs/screenshots/monitor-history.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftestsia%2Fpulsar-monitor%2FHEAD%2Fdocs%2Fscreenshots%2Fmonitor-history.png" alt="Monitor history"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-protocol probing&lt;/strong&gt; — ICMP Ping, MTR, Traceroute, HTTP(S), DNS, TCP
each with its own configurable interval/timeout/thresholds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live dashboard&lt;/strong&gt; — WebSocket-pushed monitor states, RTT/loss/jitter
charts, no client-side polling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alerting &amp;amp; incident correlation&lt;/strong&gt; — one alert per real-world incident
(not one per flapping probe), automatic root-cause grouping by shared
route/ASN topology, Telegram notifications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route intelligence&lt;/strong&gt; — historical route playback, animated…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/testsia/pulsar-monitor" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;▶️ &lt;a href="https://www.youtube.com/watch?v=Nalt10EUQS8" rel="noopener noreferrer"&gt;Watch the full walkthrough on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PULSAR is a self-hosted network monitoring system you run on your own infrastructure: multi-protocol probes against any host, a live dashboard with no polling, alerting with incident correlation, and route geo-analytics. No external service, no target-count license tiers, no telemetry leaving your network — the data stays exactly where you put it.&lt;/p&gt;

&lt;p&gt;If you've reached for &lt;strong&gt;PingPlotter&lt;/strong&gt;, &lt;strong&gt;SmokePing&lt;/strong&gt;, or &lt;strong&gt;WinMTR&lt;/strong&gt; for latency and traceroute monitoring, or you're comparing self-hosted &lt;strong&gt;network observability&lt;/strong&gt; tools for a homelab or a small ISP/MSP's &lt;strong&gt;netops&lt;/strong&gt; stack, PULSAR is built to cover the same ground — ping monitor, traceroute tool, MTR, and route/BGP-ASN analytics — in one open-source package.&lt;/p&gt;

&lt;p&gt;Here's a tour of the interface, screenshot by screenshot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install in three commands
&lt;/h2&gt;

&lt;p&gt;The whole system is one stack: a FastAPI backend, the frontend, TimescaleDB on top of Postgres, a dedicated worker for ICMP probes, and a garbage-collection worker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/testsia/pulsar-monitor
&lt;span class="nb"&gt;cd &lt;/span&gt;pulsar-monitor
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Five containers come up — open it in a browser and log in with the default credentials from &lt;code&gt;.env.example&lt;/code&gt;: &lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;changeme&lt;/code&gt; (change this before exposing the instance to anything but localhost). Auth is session-cookie based, with &lt;code&gt;admin&lt;/code&gt;, &lt;code&gt;operator&lt;/code&gt;, and &lt;code&gt;viewer&lt;/code&gt; roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  The dashboard: your network's state at a glance
&lt;/h2&gt;

&lt;p&gt;The main screen shows counters for healthy, down, and unstable monitors, plus rankings for who currently has the worst latency, packet loss, and jitter. Every tile is clickable and drops you into an already-filtered list.&lt;/p&gt;

&lt;p&gt;The part that's hard to convey in a screenshot: it updates itself. Data arrives over WebSocket the moment each probe finishes — no browser polling, no lag.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjhamx60jdq6kc5i9qhxv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjhamx60jdq6kc5i9qhxv.png" alt="Dashboard — network health, CPU/memory/disk, and live rankings" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitors: six probe types
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ping&lt;/strong&gt; — plain reachability and RTT.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traceroute / MTR&lt;/strong&gt; — the full path to the target, with per-hop RTT.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP / HTTPS&lt;/strong&gt; — status code and response time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNS&lt;/strong&gt; — resolve time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TCP&lt;/strong&gt; — reachability of a specific port.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each monitor has its own interval, timeout, and thresholds. If you run multiple sites, probes execute from a dedicated agent and the monitor is bound to the right one. The table can be sorted, but by default it doesn't reshuffle on every tick, so a row won't run away from under your cursor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw2lz0j3bea93orcnqi2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw2lz0j3bea93orcnqi2y.png" alt="Adding a monitor — pick a type, target, interval, and agent" width="430" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  History and automatic anomaly detection
&lt;/h2&gt;

&lt;p&gt;Clicking a monitor opens its detail view: a chart of RTT, packet loss, and jitter over the selected period, with drag-to-zoom. The chart carries two kinds of markers: an &lt;strong&gt;anomaly&lt;/strong&gt;, when RTT sharply left its normal band, and a &lt;strong&gt;route change&lt;/strong&gt;, when traceroute showed a different path.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The baseline is computed automatically — a z-score over TimescaleDB's hourly roll-ups. "Anomaly" means a deviation from this specific monitor's own history, not some fixed threshold applied across the board.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flhs1qqae24lgau9j64b5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flhs1qqae24lgau9j64b5.png" alt="RTT history — orange points are anomalies relative to this monitor's own baseline" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Routes: map, ASN, historical playback
&lt;/h2&gt;

&lt;p&gt;The Routes section shows how traffic actually reaches a target: every hop is a point on a map, placed by IP geolocation, with RTT and loss on that specific segment — the same kind of hop-by-hop trace you'd get from &lt;code&gt;traceroute&lt;/code&gt;, &lt;code&gt;mtr&lt;/code&gt;, or WinMTR, but stored and plotted over time. You can switch to an ASN view — hops grouped by autonomous system (BGP/ASN), showing exactly which providers your traffic transits.&lt;/p&gt;

&lt;p&gt;Historical Playback is a time slider: drag it back and the route redraws as it looked an hour or a day ago. And the flapping detector catches a route bouncing back and forth — five changes in ten minutes collapse into a single alert instead of twenty separate ones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4wqncku5tyzyvbtb1i1z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4wqncku5tyzyvbtb1i1z.png" alt="Route — every hop labeled with its ASN and provider, plotted on a map" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Alerts that don't drown you
&lt;/h2&gt;

&lt;p&gt;When a monitor crosses its thresholds, an alert is raised. But the point isn't the number of alerts — it's not drowning in them. PULSAR groups them: one real alert per real problem, not one per bounce of a flaky probe.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fthdyqacwk2ygle5dtw3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fthdyqacwk2ygle5dtw3e.png" alt="Alert center — open/acknowledged/resolved status, an Impact Score, and filters" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Incidents: correlation and root cause
&lt;/h2&gt;

&lt;p&gt;The Incidents section goes a step further than plain alerts. If ten monitors drop at once and they all route through the same ASN or a shared hop, that's one incident with an identified probable cause — not ten separate alerts. The system shows exactly what the affected monitors have in common: a likely culprit hop, with a confidence percentage.&lt;/p&gt;

&lt;p&gt;Critical events go straight to Telegram, with a link to the specific monitor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpximnu3yh6qailxswl0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpximnu3yh6qailxswl0l.png" alt="Correlation — ranked probable causes with a confidence score" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing channels head to head
&lt;/h2&gt;

&lt;p&gt;If you have two internet uplinks, a dedicated section compares them directly: one target, probed over two different physical interfaces. Both routes on one map, in different colors, with the points where the paths diverge highlighted. The Channel Stability Analyzer gives a deterministic score — no AI, just statistics over the history — for which channel is steadier on RTT, loss, and number of route changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Geo-analytics and topology
&lt;/h2&gt;

&lt;p&gt;Geo Analytics collects hops from every route of every monitor onto one heatmap and colors them by a metric — RTT, loss, or jitter. You immediately see whether a problem is local to one monitor or an entire region is hurting — the same "where does it actually hurt" question PingPlotter's route map tries to answer, but aggregated across every monitor at once.&lt;/p&gt;

&lt;p&gt;Topology shows the same thing as a graph: shared hops become nodes, and you can see where many routes converge on a single point — that point becomes a single point of failure, and it's the first thing PULSAR suspects during a mass outage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frdqptr2wmjxexe9ldym5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frdqptr2wmjxexe9ldym5.png" alt="Geo Analytics — geolocated hops on one map, circle size tracking route density" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Backups, atomic restore
&lt;/h2&gt;

&lt;p&gt;Back up the full system or just the configuration, downloaded as a single file. Restore is atomic, in one transaction: if anything goes wrong, the database is left exactly as it was. Before a restore, the system takes a fresh backup of the current state on its own, just in case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ka9p0lth623db05lgcu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ka9p0lth623db05lgcu.png" alt="Backups — snapshots on hand, atomic restore with an automatic pre-restore snapshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  One stack, your data stays yours
&lt;/h2&gt;

&lt;p&gt;PULSAR is self-hosted and open source (MIT), under active development. No limit on how many targets you monitor, and no external service you have to trust with your traffic — whether you're running it for a homelab, an MSP's netops dashboard, or infrastructure monitoring for a small ISP.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;a href="https://github.com/testsia/pulsar-monitor" rel="noopener noreferrer"&gt;GitHub — testsia/pulsar-monitor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;▶️ &lt;a href="https://www.youtube.com/watch?v=Nalt10EUQS8" rel="noopener noreferrer"&gt;Full walkthrough on YouTube&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🐳 &lt;a href="https://hub.docker.com/r/testsia13/pulsar-backend" rel="noopener noreferrer"&gt;Docker Hub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>selfhosted</category>
      <category>networking</category>
      <category>opensource</category>
      <category>monitoring</category>
    </item>
  </channel>
</rss>
