diff --git a/README.md b/README.md index e69de29..a21f576 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,28 @@ +# speed-logger + +Runs periodic internet speed tests using the Cloudflare speed test API and visualizes the results in Grafana. Tests run every 15 minutes and record download speed, upload speed, latency, and jitter. Results are stored in a SQLite database and displayed on a pre-configured Grafana dashboard. + +![Dashboard](res/dashboard.png) + +## Requirements + +- Docker and Docker Compose + +## Deployment + +Create a `.env` file in the project root with the following variables: + +``` +GRAFANA_PORT=3000 +GRAFANA_ADMIN_USER=admin +GRAFANA_ADMIN_PASSWORD=changeme +``` + +Start the containers: + +``` +docker compose up -d +``` + +Grafana will be available at `http://localhost:3000`. The dashboard is provisioned automatically on first start. + diff --git a/grafana/provisioning/dashboards/speed_tests.json b/grafana/provisioning/dashboards/speed_tests.json index 986d4de..c8bae9f 100644 --- a/grafana/provisioning/dashboards/speed_tests.json +++ b/grafana/provisioning/dashboards/speed_tests.json @@ -31,7 +31,7 @@ }, "id": 100, "panels": [], - "title": "📊 Summary", + "title": "Summary", "type": "row" }, { @@ -482,7 +482,7 @@ }, "id": 101, "panels": [], - "title": "📈 Speed Over Time", + "title": "Speed Over Time", "type": "row" }, { @@ -860,7 +860,7 @@ }, "id": 102, "panels": [], - "title": "🕐 Time-of-Day & Weekday Patterns", + "title": "Time-of-Day & Weekday Patterns", "type": "row" }, { @@ -1261,7 +1261,7 @@ }, "id": 103, "panels": [], - "title": "🔴 Uptime & Failures", + "title": "Uptime & Failures", "type": "row" }, { @@ -1400,7 +1400,7 @@ }, "id": 104, "panels": [], - "title": "🗃️ Raw Data", + "title": "Raw Data", "type": "row" }, { diff --git a/res/dashboard.png b/res/dashboard.png new file mode 100644 index 0000000..3dd84aa Binary files /dev/null and b/res/dashboard.png differ