A platform agnostic machine stats generator (PHP 8.1+). Usage and totals for CPU, disk, memory...
composer require open-southeners/machine-stats
use OpenSoutheners\MachineStats\StatsManager;
$report = StatsManager::report();
$report->os->value; // 'linux'
$report->cpuCores; // 8
$report->cpuUsage; // 17.12
$report->memoryUnit->name; // 'GB'
$report->memoryAvailable; // 11.89
$report->memoryUsed; // 4.11
$report->diskUnit->name; // 'GB'
$report->diskCapacity; // 200
$report->diskAvailable; // 189
$report->diskUsed; // 11
If you are using Laravel you can simply inject 2 instances into Laravel's container. Add the following on your AppServiceProvider.php
file at the register
method:
use OpenSoutheners\MachineStats\StatsManager;
use OpenSoutheners\MachineStats\Drivers\DriverInterface;
$this->app->bind(StatsManager::class, fn () => new StatsManager);
$this->app->bind(DriverInterface::class, fn (Application $app) => $app->make(StatsManager::class)->getDriver());
Note: StatsManager is only a wrapper to the Driver, it mimics the Manager code design pattern that Laravel uses in many places like DB, Filesystem, etc. In our case we needed to separate between operating systems (as drivers).
This package is open-sourced software licensed under the MIT license.