github Starosdev/scrutiny v1.24.0

7 hours ago

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 job
  • comprehensive -- ~300 seconds per device, 1GB test file, 4 parallel jobs

Backend:

  • New API endpoints: POST /api/device/:wwn/performance and GET /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-performance

Known 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

Don't miss a new scrutiny release

NewReleases is sending notifications on new releases.