-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checking for valid CPU average values #97
Conversation
Signed-off-by: Patrik Kernstock <info@pkern.at>
Signed-off-by: Patrik Kernstock <info@pkern.at>
cc @schiessle @nickvergessen May anyone check this if it's okay? |
lib/SystemStatistics.php
Outdated
if (!(is_array($loadavg) && count($loadavg) === 3)) { | ||
// either no array or too few array keys. | ||
// returning back zeroes to prevent any errors on JS side. | ||
$loadavg = [0, 0, 0]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wonder if it would make more sense to return a error code (maybe 'N/A' like we use for other statistics as well) and then hide the CPU Load in the web interface or display something like "not available". Otherwise it looks like everything is OK and the system load is just super low, something which makes probably every admin happy. 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lib/SystemStatistics.php
Outdated
} | ||
|
||
return [ | ||
'loadavg' => $loadavg |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you put this in another array and don't return $loadavg
directly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To allow easier extending the information without breaking something on the JS side. To be more extensible for the future. when extending stats with more CPU graph lines someday (e.g. splitting up CPU usage in user, system, kernel or something like that). But I can remove array if you want.
* | ||
* @return array load average with three values, 1/5/15 minutes average. | ||
*/ | ||
protected function getProcessorUsage() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Think this would be a nice method to write a small unit test.
Signed-off-by: Patrik Kernstock <info@pkern.at>
The graphs gets hidden when invalid data ('N/A') gets delivered from the server-side. When valid data gets delivered without reloading page again, graphs are still hidden. Fixed. Signed-off-by: Patrik Kernstock <info@pkern.at>
As requested I've added warning on the client-side if CPU average couldn't retrieved on the server-side. |
I will move this to 15 so @schiessle can have a look at this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks good 👍
Added sanity-checks to validate return values by
sys_getloadavg()
before finally using them. This fixes errors on JavaScript side when it returns 0 (zero/null) or any other unexpected values.Should solve #90 point 1.