View Single Post
Posts: 1,414 | Thanked: 7,547 times | Joined on Aug 2016 @ Estonia
#1
I would like to announce a system monitoring solution that is developed to be lightweight and provide information relevant to mobile devices. Its based on Sailfish port of collectd, rrdtool, and the GUI SystemDataScope.

Example of the questions this solution can answer you: does my phone enter sleep? for how long? which CPU frequencies are used? when did my RAM run out? whats a battery current? how much cellular traffic did I use? All these questions are relevant for monitoring different aspects of your device performance, such as determining reasons behind battery drain, for example.

It is expected that users are running this solution 24x7 without any noticeable impact on battery life, CPU, RAM, and storage usage.

collectd

Homepage: https://collectd.org/
Sailfish port: https://github.com/rinigus/collectd
Packages: https://openrepos.net/content/rinigus/collectd

rrdtool

Sailfish packaging scripts: https://github.com/rinigus/pkg-rrdtool
Packages: https://openrepos.net/content/rinigus/rrdtool

SystemDataScope

Homepage: https://github.com/rinigus/systemdatascope
Packages: https://openrepos.net/content/rinigus/systemdatascope

Screenshots: see SystemDataScope and collectd OpenRepos packages description.

When in use, the data is recorded by collectd and stored in RRD datasets. collectd runs as a daemon that should be enabled on installation. Data can be visualized using SystemDataScope that uses rrdtool to generate graphs. SystemDataScope also shows selected graph on a cover allowing you to follow recent data (whether your device is entering CPU sleep, for example).

Goal is to allow keep records that cover several time windows from hours, days, up-to a year in the default configuration. The data can be viewed on a device as well as the GUI allows you to generate the reports that you could send as a feedback on relevant forums.

The collected data covers CPU usage and sleep, battery, RAM and storage, network, radios, system load and processes.

In addition to overall system data, you could also follow some specific apps and see their CPU, RAM, I/O usage. This is useful if you develop an app and want to profile it.

Used resources

collectd has a very small CPU (~0.1% of wall time), RAM (~15MB RSS for collectd and datasets kept in RAM), and storage (~10MB for all default datasets) impact. collectd wakes up the device once in 2.5 minutes to perform the readout. SystemDataScope's main impact is through RAM usage which is ~55MB RSS that's used by GUI and rrdtool running in the background. CPU usage is negligible when minimized (redrawing of the cover once in 2 minutes) and an average when you scroll through the graphs. As such, I would expect that it has no noticeable impact.


Current state

In general, all is expected to work. There are several plugins that I developed for collectd and which are not merged yet with upstream. Taking into account the earlier experience with the other plugins, I expect that the recorded data may change for these plugins and the users would have to remove the old datasets recorded by these plugins. Eventually, when everything is merged with upstream such inconvenience would disappear.

If something does not work, please send your bug reports via GitHub by opening an Issue or reporting here.

Licenses: Open Source, see corresponding package or module.

Last edited by rinigus; 2016-10-08 at 17:16.
 

The Following 19 Users Say Thank You to rinigus For This Useful Post: