SmokePing Network Latency
SmokePing latency monitoring tool for tracking network performance.
Overview
SmokePing is a mature network latency measurement and monitoring system originally developed by Tobias Oetiker that continuously tracks round-trip times and packet loss to multiple network targets. The tool creates detailed historical graphs showing network performance trends over time, making it invaluable for identifying patterns in connectivity issues, service degradation, and infrastructure problems that might otherwise go unnoticed until they become critical. This implementation uses the LinuxServer.io containerized version, which includes a web interface for viewing interactive graphs and managing monitoring configurations. SmokePing operates by sending ICMP ping packets or other probe types to configured targets at regular intervals, collecting response times and calculating statistics like minimum, maximum, average, and median latency values. The system excels at detecting network quality issues that simple uptime monitoring misses, such as intermittent packet loss, jitter, and gradual performance degradation that could indicate failing network equipment or ISP routing problems. This monitoring solution is particularly valuable for network administrators managing multi-site deployments, ISP service level agreement verification, and anyone requiring detailed historical analysis of network connectivity patterns rather than simple up/down status monitoring.
Key Features
- Multi-target ping monitoring with configurable intervals and probe counts per measurement cycle
- Interactive web-based RRDtool graphs displaying latency trends, packet loss patterns, and statistical distributions
- Smoke-style latency distribution visualization showing response time spread and consistency over time
- Support for multiple probe types including ICMP ping, TCP connect tests, DNS queries, and HTTP response monitoring
- Configurable alert thresholds with email notifications for packet loss and latency threshold violations
- Hierarchical target organization allowing logical grouping of monitored hosts by location, service type, or importance
- Historical data retention with automatic data aggregation for long-term trend analysis and capacity planning
- Master-slave architecture support for distributed monitoring across multiple network segments
Common Use Cases
- 1ISP service level agreement monitoring to verify contracted uptime and latency guarantees with historical evidence
- 2Multi-site corporate network monitoring to identify WAN link quality issues between office locations
- 3Cloud service provider performance tracking to compare response times across different regions and providers
- 4Home lab network troubleshooting to identify intermittent connectivity issues with specific internet services
- 5Managed service provider client reporting to demonstrate network performance metrics and identify customer-side issues
- 6Critical application dependency monitoring to track connectivity quality to essential third-party services and APIs
- 7Network equipment lifecycle management using latency trend analysis to predict hardware failures before complete outages
Prerequisites
- Docker host with at least 512MB available RAM for RRDtool graph generation and data processing
- Network configuration allowing ICMP ping packets outbound to target hosts for basic monitoring functionality
- Port 8080 available on the Docker host for accessing the SmokePing web interface and graph displays
- Basic understanding of network addressing and ping concepts for configuring meaningful monitoring targets
- Sufficient disk space for long-term RRD database storage, typically 10-50MB per monitored target annually
- Time zone environment variable configured correctly for accurate graph timestamps and alert scheduling
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 smokeping: 3 image: linuxserver/smokeping:latest4 container_name: smokeping5 environment: 6 - PUID=10007 - PGID=10008 - TZ=${TZ}9 volumes: 10 - smokeping_config:/config11 - smokeping_data:/data12 ports: 13 - "8080:80"14 restart: unless-stopped15 networks: 16 - smokeping-network1718volumes: 19 smokeping_config: 20 smokeping_data: 2122networks: 23 smokeping-network: 24 driver: bridge.env Template
.env
1# SmokePing2TZ=UTCUsage Notes
- 1UI at http://localhost:8080
- 2Edit Targets file in config
- 3Historical latency graphs
- 4Packet loss visualization
- 5Configure alerts
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 smokeping:5 image: linuxserver/smokeping:latest6 container_name: smokeping7 environment:8 - PUID=10009 - PGID=100010 - TZ=${TZ}11 volumes:12 - smokeping_config:/config13 - smokeping_data:/data14 ports:15 - "8080:80"16 restart: unless-stopped17 networks:18 - smokeping-network1920volumes:21 smokeping_config:22 smokeping_data:2324networks:25 smokeping-network:26 driver: bridge27EOF2829# 2. Create the .env file30cat > .env << 'EOF'31# SmokePing32TZ=UTC33EOF3435# 3. Start the services36docker compose up -d3738# 4. View logs39docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/smokeping-latency/run | bashTroubleshooting
- Targets showing constant 100% packet loss: Verify ICMP ping is allowed through host firewall and Docker networking configuration supports outbound ping packets
- Graphs not updating or showing old data: Check container logs for RRDtool permissions errors and ensure data volume has sufficient disk space for database updates
- Web interface displaying 'Permission denied' errors: Verify PUID and PGID environment variables match the user ownership of mounted config and data volumes
- Specific targets timing out while others work: Examine target host firewall rules and network ACLs that might block ICMP from the Docker container's IP address
- Alert emails not sending: Configure SMTP settings in the SmokePing configuration file and verify network connectivity to the specified mail server
- High CPU usage during graph generation: Reduce the number of simultaneous targets or increase measurement intervals in the Targets configuration file
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download