2017 © Pedro Peláez
 

library server-status

Library to access various components of the operating system

image

innmind/server-status

Library to access various components of the operating system

  • Wednesday, February 14, 2018
  • by Baptouuuu
  • Repository
  • 1 Watchers
  • 2 Stars
  • 230 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 7 % Grown

The README.md

Server Status

Build Status codecov Type Coverage, (*1)

Give an easy access to the cpu, memory, disk usages and the list of processes running on the machine., (*2)

[!NOTE] only works for Mac OSX and Linux for now., (*3)

Installation

composer require innmind/server-status

Usage

use Innmind\Server\Status\{
    ServerFactory,
    Server\Disk\Volume\MountPoint,
    Server\Process\Pid,
    EnvironmentPath,
};
use Innmind\Server\Control\ServerFactory as Control;
use Innmind\TimeContinuum\Clock;
use Innmind\TimeWarp\Halt\Usleep;
use Innmind\IO\IO;

$server = ServerFactory::build(
    $clock = Clock::live(),
    Control::build(
        $clock,
        IO::fromAmbientAuthority(),
        Usleep::new(),
    ),
    EnvironmentPath::of(\getenv('PATH')),
);

$cpu = $server->cpu()->unwrap();
$cpu->user(); // percentage of the cpu used by the user
$cpu->system(); // percentage of the cpu used by the system
$cpu->idle(); // percentage of the cpu not used
$cpu->cores(); // number of cores available

$memory = $server->memory()->unwrap();
$memory->total(); // total memory of the server
$memory->active(); // memory that is used by processes
$memory->free(); // memory that is not used
$memory->swap(); // memory that is used and located on disk
$memory->used(); // total - free

$loadAverage = $server->loadAverage()->unwrap();
$loadAverage->lastMinute();
$loadAverage->lastFiveMinutes();
$loadAverage->lastFifteenMinutes();

$server->disk()->get(MountPoint::of('/'))->match(
    function($disk) {
        $disk->size(); // total size of the volume
        $disk->available();
        $disk->used();
        $disk->usage(); // percentage of space being used
    },
    fn() => null, // the mount point doesn't exist
);

$server->processes()->get(Pid::of(1))->match(
    function($process) {
        $process->user(); // root in this case
        $process->cpu(); // percentage
        $process->memory(); // percentage
        $process->start(); // point in time at which the process started
        $process->command();
    },
    fn() => null, // the process doesn't exist
);

$server->tmp(); // path to temp directory

You can easily log all the informations gathered via a simple decorator:, (*4)

use Innmind\Server\Status\Server\Logger;
use Psr\Log\LoggerInterface;

$server = Logger::of($server, /** instance of LoggerInterface */);

The Versions

14/02 2018

dev-master

9999999-dev http://github.com/Innmind/ServerStatus

Library to access various components of the operating system

  Sources   Download

MIT

The Requires

 

The Development Requires

14/02 2018

1.1.0

1.1.0.0 http://github.com/Innmind/ServerStatus

Library to access various components of the operating system

  Sources   Download

MIT

The Requires

 

The Development Requires

14/02 2018

dev-develop

dev-develop http://github.com/Innmind/ServerStatus

Library to access various components of the operating system

  Sources   Download

MIT

The Requires

 

The Development Requires

26/11 2017

1.0.1

1.0.1.0 http://github.com/Innmind/ServerStatus

Library to access various components of the operating system

  Sources   Download

MIT

The Requires

 

The Development Requires

26/05 2017

1.0.0

1.0.0.0 http://github.com/Innmind/ServerStatus

Library to access various components of the operating system

  Sources   Download

MIT

The Requires

 

The Development Requires