Docs / Monitoring & Logging / SmokePing: Network Latency Monitoring

SmokePing: Network Latency Monitoring

By Admin · Mar 15, 2026 · Updated Apr 23, 2026 · 392 views · 2 min read

SmokePing is a network latency measurement tool that generates beautiful graphs showing latency distribution, packet loss, and jitter over time. It uses multiple probes (ICMP, TCP, DNS, HTTP) and creates "smoke" graphs that visualize latency variance — dense smoke indicates consistent latency, while spread-out smoke reveals jitter problems. This guide covers deploying SmokePing for VPS network monitoring.

Installation

# Ubuntu/Debian
sudo apt install smokeping

# Docker
docker run -d --name smokeping \
    -p 8080:80 \
    -v smokeping_config:/config \
    -v smokeping_data:/data \
    lscr.io/linuxserver/smokeping:latest

# Access web UI at http://localhost:8080

Configuration

# /etc/smokeping/config (main configuration)

*** General ***
owner    = Operations Team
contact  = ops@example.com
cgiurl   = https://smokeping.example.com/cgi-bin/smokeping.cgi
syslogfacility = local0

*** Alerts ***
to = ops@example.com
from = smokeping@example.com

+lossy
type = loss
pattern = >0%,*12*,>0%,*12*,>0%
comment = Packet loss detected

+someloss
type = loss
pattern = >10%
comment = More than 10% packet loss

+highlatency
type = rtt
pattern = >200
comment = Latency above 200ms

*** Targets ***

probe = FPing

+ Network
menu = Network
title = Network Monitoring

++ Upstreams
menu = Upstream Providers
title = Upstream Provider Latency

+++ CloudflarePublicDNS
host = 1.1.1.1
title = Cloudflare DNS (1.1.1.1)

+++ GooglePublicDNS
host = 8.8.8.8
title = Google DNS (8.8.8.8)

+++ DefaultGateway
host = 10.0.0.1
title = Default Gateway

++ Servers
menu = Our Servers
title = Server Latency

+++ WebServer
host = web.example.com
title = Web Server

+++ DatabaseServer
host = db.example.com
title = Database Server

+++ APIServer
host = api.example.com
title = API Server

Multiple Probe Types

*** Probes ***

+ FPing
binary = /usr/bin/fping
packetsize = 1000

+ TCPPing
binary = /usr/bin/tcpping
port = 443

+ DNS
binary = /usr/bin/dig
lookup = example.com

+ Curl
binary = /usr/bin/curl
urlformat = https://%host%/health

*** Targets ***

+ WebLatency
probe = Curl
menu = Web Response Time
title = HTTPS Response Time

++ ExampleCom
host = example.com
title = example.com HTTPS

+ DNSLatency
probe = DNS
menu = DNS Response Time
title = DNS Resolution Time

++ CloudflareDNS
host = 1.1.1.1
title = Cloudflare DNS Resolution

Reading SmokePing Graphs

  • Dark/dense smoke — consistent latency, stable connection
  • Wide/spread smoke — high jitter, unstable connection
  • Green line — median latency
  • Gray smoke — individual probe results (spread = variance)
  • Red/yellow — packet loss percentage (colored bands at the top)
  • Gaps — complete connectivity loss

Alerting

*** Alerts ***
to = ops@example.com
from = smokeping@example.com

+bigloss
type = loss
pattern = ==0%,==0%,==0%,==0%,>50%,>50%,>50%
comment = Sudden severe packet loss

+rttdetect
type = rtt
pattern =         

Was this article helpful?