Skip to content

Conversation

@patschi
Copy link
Member

@patschi patschi commented Jun 1, 2017

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.

@patschi
Copy link
Member Author

patschi commented Jun 1, 2017

cc @schiessle @nickvergessen May anyone check this if it's okay?

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];
Copy link
Member

@schiessle schiessle Jun 8, 2017

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. 😉

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! Similar as when failing to retrieve memory usage.
image

}

return [
'loadavg' => $loadavg
Copy link
Member

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?

Copy link
Member Author

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() {
Copy link
Member

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.

patschi added 2 commits June 9, 2017 17:35
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 <[email protected]>
@patschi
Copy link
Member Author

patschi commented Jun 14, 2017

As requested I've added warning on the client-side if CPU average couldn't retrieved on the server-side.

@MorrisJobke MorrisJobke added this to the Nextcloud 14 milestone Aug 20, 2018
@nickvergessen nickvergessen requested review from schiessle and removed request for nickvergessen August 23, 2018 12:50
@MorrisJobke MorrisJobke mentioned this pull request Aug 30, 2018
6 tasks
@MorrisJobke
Copy link
Member

I will move this to 15 so @schiessle can have a look at this.

Copy link
Member

@MorrisJobke MorrisJobke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks good 👍

@MorrisJobke MorrisJobke merged commit 743fe8c into nextcloud:master Oct 26, 2018
@joshtrichards joshtrichards mentioned this pull request Nov 21, 2023
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants