diff --git a/package.nix b/package.nix index 5c1a7860..22caf1da 100644 --- a/package.nix +++ b/package.nix @@ -110,6 +110,7 @@ let NetAmazonS3 NetPrometheus NetStatsd + NumberBytesHuman PadWalker ParallelForkManager PerlCriticCommunity diff --git a/src/lib/Hydra/Controller/Root.pm b/src/lib/Hydra/Controller/Root.pm index d78e1b6d..c4000d1c 100644 --- a/src/lib/Hydra/Controller/Root.pm +++ b/src/lib/Hydra/Controller/Root.pm @@ -9,6 +9,7 @@ use Hydra::Helper::CatalystUtils; use Hydra::View::TT; use Nix::Store; use Nix::Config; +use Number::Bytes::Human qw(format_bytes); use Encode; use File::Basename; use JSON::MaybeXS; @@ -215,6 +216,19 @@ sub machines :Local Args(0) { "where busy != 0 order by machine, stepnr", { Slice => {} }); $c->stash->{template} = 'machine-status.tt'; + $c->stash->{human_bytes} = sub { + my ($bytes) = @_; + return format_bytes($bytes, si => 1); + }; + $c->stash->{pretty_load} = sub { + my ($load) = @_; + return sprintf('%.2f', $load); + }; + $c->stash->{pretty_percent} = sub { + my ($percent) = @_; + my $ret = sprintf('%.2f', $percent); + return (' ' x (6 - length($ret))) . $ret; + }; $self->status_ok($c, entity => $c->stash->{machines}); } diff --git a/src/root/machine-status.tt b/src/root/machine-status.tt index 924bdb52..cf8f960c 100644 --- a/src/root/machine-status.tt +++ b/src/root/machine-status.tt @@ -25,36 +25,29 @@ [% WRAPPER makePopover title="Details" classes="btn-secondary btn-sm" %] -
Some CPU: | [% pressure.cpuSome.avg10 %]% | [% pressure.cpuSome.avg60 %]% | [% pressure.cpuSome.avg300 %]% | - [% END %] - [% IF pressure.ioSome %] - | ||
Some IO: | [% pressure.ioSome.avg10 %]% | [% pressure.ioSome.avg60 %]% | [% pressure.ioSome.avg300 %]% | - [% END %] - [% IF pressure.ioFull %] - | ||
Full IO: | [% pressure.ioFull.avg10 %]% | [% pressure.ioFull.avg60 %]% | [% pressure.ioFull.avg300 %]% | - [% END %] - [% IF pressure.irqFull %] - | ||
Full IRQ: | [% pressure.irqFull.avg10 %]% | [% pressure.irqFull.avg60 %]% | [% pressure.irqFull.avg300 %]% | - [% END %] - [% IF pressure.memSome %] - | ||
Some Memory: | [% pressure.memSome.avg10 %]% | [% pressure.memSome.avg60 %]% | [% pressure.memSome.avg300 %]% | - [% END %] - [% IF pressure.memFull %] - | ||
Full Memory: | [% pressure.memFull.avg10 %]% | [% pressure.memFull.avg60 %]% | [% pressure.memFull.avg300 %]% | - [% END %] + [% render_pressure('Some CPU', pressure.cpuSome) %] + [% render_pressure('Some IO', pressure.ioSome) %] + [% render_pressure('Full IO', pressure.ioFull) %] + [% render_pressure('Full IRQ', pressure.irqFull) %] + [% render_pressure('Some Memory', pressure.memSome) %] + [% render_pressure('Full Memory', pressure.memFull) %] |