v1.24.0 (2026-02-14)
Features
Performance Benchmarking (#220)
Adds fio-based performance benchmarking for hard drives, tracking sequential throughput, random IOPS, and latency over time. This feature is a work-in-progress -- testing and feedback are appreciated.
New collector binary: scrutiny-collector-performance runs fio benchmarks against your drives on a cron schedule (default: Sunday 2 AM) and publishes results to the Scrutiny API.
What's measured:
| Metric | Description |
|---|---|
| Sequential Read/Write | Throughput in bytes/sec (1M block size) |
| Random Read/Write | IOPS and latency (4K block size) |
| Mixed Random R/W | Combined IOPS with 70/30 read/write mix (comprehensive profile only) |
| Latency Percentiles | Average, P50, P95, P99 for random operations |
Two benchmark profiles:
quick(default) -- ~60 seconds per device, 256MB test file, 1 parallel jobcomprehensive-- ~300 seconds per device, 1GB test file, 4 parallel jobs
Backend:
- New API endpoints:
POST /api/device/:wwn/performanceandGET /api/device/:wwn/performance?duration=week - InfluxDB storage with history retrieval and baseline averaging
- Automatic degradation detection comparing current results against rolling baseline
Frontend:
- New "Performance Benchmarks" section on device detail page
- Summary cards showing latest throughput, IOPS, and latency with baseline comparison badges
- Trend charts for sequential throughput, random IOPS, and read latency over time
- Duration selector (day/week/month/year)
CI/CD:
- Multi-platform build pipeline for the performance collector binary (Linux, macOS, Windows, FreeBSD)
- New Docker image:
ghcr.io/starosdev/scrutiny:latest-collector-performance
Documentation:
- Performance benchmarking section in README with deployment instructions
- Example config file:
example.collector-performance.yaml - Environment variable reference for all collector settings
- Updated docker-compose example for hub/spoke deployments
Docker quick start:
docker run --restart unless-stopped \
--device=/dev/sda \
--device=/dev/sdb \
-e COLLECTOR_PERF_API_ENDPOINT=http://SCRUTINY_WEB_IPADDRESS:8080 \
--name scrutiny-perf-collector \
ghcr.io/starosdev/scrutiny:latest-collector-performanceKnown limitations:
- Requires fio installed on the host (included in Docker image)
- Collector writes temp files to device mount points; drives must be mounted
- Charts and baseline comparison require 2+ benchmark samples to be meaningful