SystemDataScope

Rating: 
5
Your rating: None Average: 5 (12 votes)

SystemDataScope is a GUI for visualization of collectd datasets. Together with collectd and RRDtool, it provides a system monitoring solution for Sailfish. Upgrade and this release notes are below. See also below for possible problem with SFOS 2.0.2 upgrade.

SystemDataScope reads the system performance data gathered by collectd. Graphs are generated using RRDtool and shown through provided GUI. If collectd is started by a GUI user through systemd, there is a support for starting/stopping the daemon.

Through process plugin of collectd, each program can be monitored with its RAM, CPU and disk access logged and shown on graphs through longer timespan.

The recorded statistics are kept with different time resolutions allowing to keep short-term (hours) as well as long-term data (year).

Reports

SystemDataScope can be used to generate report images that can be used for giving feedback on performance of your device or monitoring results on an app(s) that you selected in collectd configuration. By selecting "Report" in pulley menu, you would initiate generation of the graphs that will be stored, in Sailfish, under /home/nemo/Documents/SystemDataScope/TIMESTAMP. When the report graphs are all ready, a message will appear in SystemDataScope. With the file manager or Gallery app, select and send graphs that you want to share and delete the folder /home/nemo/Documents/SystemDataScope when not needed. This folder will be created if its missing the next time you would need a report. An example report graph is shown as one of the screenshots below.

Default configuration

The collected statistics are organized in a tree. In the beginning, a list of graphs on a top level are shown. By pressing on a graph, a detailed information regarding that statistics is shown on a list, if it exists. At present, using such scheme, there are three levels used.

The default configuration for collectd provides data on:

  • CPU
    • CPU usage (system, user, nice, idle, ...)
    • Amount of time spent in CPU sleep
      • CPU sleep (time; suspend attempts; duration of an average suspend)
      • Used CPU frequencies
      • Used CPU idle states
  • Battery (charge, current, energy, power consumption, temperature, time to full/low, voltage)
  • Memory and storage
    • RAM usage (free, used, cached, buffered, ...)
    • Storage usage
      • root partition used and free
      • disk stats (I/O time, traffic, operations per second, ...)
  •  Network
    • Overall traffic
    • Traffic on cellular and WiFi interfaces
    • For each interface: traffic, accumulated traffic over displayed time period, errors, packets per second, packets dropped
  • Radio details:
    • Cellular and used internet radio (wifi or cellular) signal strength
    • Whether WiFi or Bluetooth are switched on
    • Bluetooth radio: connected, visible, enabled
  • Processes and Load
    • Number of processes in different states (running, stopped, zombies, ...)
    • Fork rate
    • Load
    • You could monitor the processes you are interested in. For each of them, you get data on CPU usage, RAM usage (rss, code size, virtual memory used, ...), number of running threads and processes, disk traffic induced by the process
  • Uptime

SystemDataScope is build to support multiple different log configurations. The configuration is setup through JSON file that can be autogenerated, specified by user, or downloaded from URL (local or remote). This should facilitate development of the graph generation scripts that are tailored for specific user setups.

Since some statistics are populated as you use the phone, such as used mobile network type, regenerate the configuration after a while again to see the corresponding radio signal strength.

The current implementation is developed on Linux Desktops and Sailfish OS mobile devices.

If something does not work, please send your bug reports via GitHub by opening an Issue (see GitHub page below). It is an open-source project and its an easiest way to contribute to it. If you have improvement suggestions, send them also via GitHub by opening a new issue. Developers are welcome to join.

Upgrade notes:

To get support for new collectd plugins, just regenerate graph configuration. Note that the new stats have to be supported by the generation script.

Upgrade notes for users of collectd versions 2016.07.17-6 and earlier:

For details, see collectd OpenRepos page ( https://openrepos.net/content/rinigus/collectd ), under upgrade notes. In short, for default collectd configuration users, please delete the old datasets and start with the new default configuration (will delete earlier data). For that, stop collectd and remove /home/nemo/.local/share/collectd ( in terminal: rm -rf /home/nemo/.local/share/collectd ) and start collectd again. While the data will be lost from earlier recordings, new databases will be initialized allowing you to record data for 1 year.

SFOS upgrade to 2.0.2 series

This may concern users who have been using collectd/SystemDataScope before upgrading SFOS to 2.0.2. On my device, the upgrade from 2.0.1 to 2.0.2.51 resulted in a change of a hostname from Jolla to Sailfish. As a result, collectd started to record under different folder with the graphs not updated in SystemDataScope. If you have the same problem, stop collectd, move your records to the new folder under .local/shared/collectd, delete old subfolder from where you moved the records, and regenerate the graph definitions in Settings. Start collectd and your old records will be updated as before.

Hopefully, Jolla will not be changing SFOS hostname default frequently. Otherwise, you could also set the hostname or specify folder in /etc/collectd.conf .

Homepage: https://github.com/rinigus/systemdatascope

License: MIT

Official TMO thread: http://talk.maemo.org/showthread.php?t=97756

Donations: https://rinigus.github.io/donate

Screenshots: 
Application versions: 
AttachmentSizeDate
File systemdatascope-0.2.5-1.armv7hl.rpm108.14 KB24/07/2016 - 08:04
File systemdatascope-0.2.5-1.i486.rpm113.85 KB24/07/2016 - 08:04
File systemdatascope-0.2.7-1.armv7hl.rpm109.42 KB03/08/2016 - 10:25
File systemdatascope-0.2.7-1.i486.rpm115.11 KB03/08/2016 - 10:25
File systemdatascope-0.3.0-1.armv7hl.rpm110.65 KB31/08/2016 - 20:29
File systemdatascope-0.3.0-1.i486.rpm116.52 KB31/08/2016 - 20:29
File systemdatascope-0.4.0-1.armv7hl.rpm116.52 KB03/10/2016 - 23:24
File systemdatascope-0.4.0-1.i486.rpm123.72 KB03/10/2016 - 23:24
File systemdatascope-0.4.1-10.9.1.jolla_.i486.rpm122.77 KB24/12/2017 - 14:00
File systemdatascope-0.4.1-10.9.1.jolla_.armv7hl.rpm116.92 KB24/12/2017 - 14:00
Changelog: 

0.4.1

  • Add support for swap statistics

0.4.0

  • Add report generation
  • Add some support for changes in Sailfish Ambience
  • Support for merging statefs_battery into battery plugin
  • Redesign of Time dialog

 

0.3.0

  • Support for new variable name in cpusleep, cpuidle, and cpufreq plugins. NB! Regenrate graph definitions after upgrade and allowing collectd some time to make new databases.
  • Add progress bar as an indicator for graph generation
  • Add subpage title if the click on the graph opens new set of graphs
  • Small fixes

0.2.7

  • Support for cpufreq plugin
  • Support for cpuidle plugin
  • Support for suspend plugin

0.2.5

  • plugins covering WiFi, Bluetooth and cellular radios
  • reorganization of the graphs

For earlier versions, see github page.

Comments

PamNor's picture

Gui start loading for 30 sec and then quits. SystemDataScope process continue to run. Tried to start collectd from terminal in forehand,but no difference. chmod 666 /var/log/collectd.log, no difference.

rinigus's picture

PamNor, sorry to hear about. Let's try to fix it.  In general, GUI should run without collectd started and is supposed to display you a help screen. So, let's keep collectd out of the way and fix GUI first.

Just few questions:

  • what platform do you run on - arm or i486?
  • do you have rrdtool installed. The graph generator starts it as "rrdtool" using QProcess. If you type in terminal a command "rrdtool" does it give you help text?
  • try to run systemdatascope in terminal and tell what error messages do you see. I might have to compile debug version, since quite a few messages are available only in debug, but let's see what will happen with your version.

As for collectd, it should be started via systemctl --user and, as far as I have seen, all its messages end up in system journal (journalctl as devel-su). But let's fix GUI startup first.

 

 

Pages