Network Data Usage Monitor

by pdcurtis
UUID: netusagemonitor@pdcurtis
Score: 5
Last edited: 4 weeks ago
Last commit: 79beff5c34a62d6ed989f26e8b6fb5259c5756eb

A Comprehensive Data Usage Monitor with alerts and cumulative data functions

The Network Usage Monitor Applet (NUMA)

Summary

The Network Usage Monitor Applet (NUMA) enables one to continuously display the speed and data usage on a selected interface. It is intended to make monitoring of mobile connections by USB Mobile Internet Dongles, through phones by bluetooth and by Mobile Wifi (MiFi) units easy to accomplish. To this end, a maximum data and easily changed Alert level can be set for the current connection. There are also a number of cumulative data monitors to track total usage with offsets and corrections as required. It builds on the Network Speed Monitor Applet project by adreadec.

Special Requirements:

  • For the basic facilities the gir1.2-gtop-2.0 library must be installed or the applet will not load and a notification will be displayed. It can be installed by the synaptic package manager or with the terminal command: sudo apt-get install gir1.2-gtop-2.0

  • For full facilities including use of notifications, audible alerts and statistics the gir1.2-gtop-2.0 vnstat vnstati zenity sox libsox-fmt-mp3 libraries must be installed. They can be installed by the synaptic package manager or with the terminal command: `sudo apt-get install gir1.2-gtop-2.0 vnstat vnstati zenity sox libsox-fmt-mp3
  • Cinnamon Version 2.2 or higher ie. It can be used with all supported versions of Mint.

Features:

  • The Applet:
    • Continuosusly displays Upload and Download rate in a fixed width 'steady' display
    • The Applet Background colour is:
      • Black when Current Interface not active
      • Green when Current connection and interface has provided data
      • Orange when the Alert level (as percentage of the Data Limit) has been exceeded
      • Red when the Data Limit for the current connection has been exceeded
        • Hover over Applet:
    • Displays continuously updated Upload and Downoaded data usage for the current connection
      • The Context Menu (Right Click):
    • Displays all the interfaces managed by the Network Manager Applet
    • Identifies any Active interfaces within Network Manager
    • Allows the selection of the interface to be monitored from those manged by Network Manager.
    • Allows the selection of an interfaces not managed by properly by Network Manager and/or interfaces for a connection initiated outside Network manager (ppp0 and bnep0). (bnep0 needs v20_2.6.0 or higher)
    • Identifies the interface which has been selected for monitoring.
    • Allows updating of the list of Network Manager Interfaces (eg after a dongle has been inserted or a bluetooth connection made)
    • Enables the Cumulative Usage Monitors to be reset and the date and time of reset displayed.
    • Provides links to:
      • The NUMA Settings screen.
      • The Gnome System Monitor
        • Left Click Menu:
    • Displays continuously updated Uploaded and Downloaded Data for the Monitored Interface.
    • If Alerts are enabled:
      • A slider to adjust the Alert level as a percentage of the Data Limit
      • A display of the exact Alert level percentage and tthe Data Limit
    • For each Interface where cumulative monitoring is enabled:
      • The interface and Cumulative Usage
      • A comment (entered in Settings) to remind one of when it was set/reset and the value when set/reset.
        • The Settings Screen allows:
        • Setting the Update Frequency (1 to 5 seconds)
        • The Resolution of displayed upload and downloads (0 to 2 decimal places)
        • Change the units for Data Limits and Cumulative Offsets between Mbytes or Gbytes
        • Setting an interface to use as Default if no other interface is active at start-up - for Wifi hotspots and Mobile Broadband where the connection is manual.
        • Enabling Alerts on the current monitored interface and setting the Data Limit for the current connection on that interface and
      • setting the Alert Level as a percentage of the Data Limit by a slider (duplicated in the left click menu as it is frequently used.
      • Enabling each of three Cumulative Usage Monitors Setting an offset for each Cumulative Usage Monitors (v20_2.6.0 or higher)
    • Switching on a Long Term Statistics Display (Requires vnstat and vnstati to be installed)
    • Enabling Actions when the Current Data Usage Limit is exceeded:
      • Do nothing other than put up a standard Cinnamon Notification - this displays for 5 seconds or so and ends up in the notification tray - very easy to miss.
      • Display a high priority Notification - this displays on to of other windows until you clear it but does not go into the notification tray - still easy to miss from a distance.
      • Display a full screen Modal Dialog - this is techie term (look it up on Wikipedia) and the result is the whole screen is blacked out with an information box and button to clear it in the middle and uses the internal capabilities of Cinnamon. It is impossible to miss if you are at or close to the machine.
      • Run a shell script which lives in the applet folder and is called alertScript - this can be customised by the user and the example plays a system sound file for 6 seconds (using Sox) , puts up a warning box using Zenity and sends a standard notification so you have a record in the notification tray.
      • Suspend the Machine after a brief period during which you can abort. This is also implemented by a script (suspendScript) so the user can fine tune it but the version provided uses Zenity for the warning message which has a 30 second timeout to allow you to abort. Another message is put up before suspending which should be on display when you wake up the machine.
        • Disable Networking for all connections managed by the Network Manager. This puts up a warning message and you can abort for a short period by clicking the Applet - not the OK button on the warning screen.
        • Set a delay before disabling Network Connections Enable a warning sound
    • Set the sound file to be played
      • Add or hide the Advanced functions from Housekeeping drop down menu

Additional Configuration

Styling

The display width, justification and font details are set using an external Cascading Style Sheet (.css) file which is in the main folder (usualy ~/.local/share/cinnamon/netusagemonitor@pdcurtis/stylesheet.css).

The settings in this css file govern the width of the Applet and the font. Changes may be required with some themes to avoid the display width being exceeded which leads to jitter with high network speeds and resolutions or to allow a reduced size width to save panel space. The latest version also allow the backgrounds to be configured using this css file to optimise to a particular theme although the defaults work well on most popular themes.

Note: These settings will be overwritten if the applet is reloaded.

Interfaces monitored by the optional vnstat display.

The system program vnstat which provides the option of a graphic history of data used is automatically set up when it is installed to monitor the network devices/interfaces installed in the machine at the time. It is possible to add additional USB network devices and possibly bluetooth devices to the list of monitored interface man vnstat in a terminal will give details.

Status

The author is committed to maintaining and developing the applet. The applet is based on a well tried core from the netspeed applet and has been tested on various systems initially running under Mint 15 with a variety of themes. The current Version has been tested with Cinnamon 2.2 - 3.4 and Mint 17 - 18.2.

Translations and other Contributions

The internal changes required in the applet to allow translations are being implemented but no translations are available at this time. Translations are usually contributed by people fluent in the language and will be very much appreciated. Users please note I am unable to take responsibility for the accuracy of translations!

Although comments and suggestions are always welcome any contributions which are contemplated should follow discussion. Changes can have many unintended consequences and the integrity of the applet is paramount. Unsolicited Pull Requests will never be authorised other than for urgent and critical bug fixes from the Cinnamon Team.

Thanks are given for the very useful contributions from @collinss and @Odyseus to help harmonise the menus with other applets.

Manual Installation:

  • Download from Cinnamon Spices
  • Unzip and extract folder netusagemonitor@pdcurtis to ~/.local/share/cinnamon/applets/
  • Install the additional programs required.
  • Enable the applet in Cinnamon Settings -> Applets
  • You can also access the Settings Screen from Cinnamon Settings -> Applets

Version information prior to the changes introduced by the new Cinnamon Spices Web site in January 2017

There is a change log in the applet folder called CHANGELOG.md which can also be accessed through the Context (Right Click) menu in the Housekeeping sub-menu. The initial development was carried out on Github along with my other applets at github.com/pdcurtis/cinnamon-applets

Contact

The author can be contacted via the comments on the Cinnamon Spices Web Site, however that does not automatically notify me so if you want a rapid response please also alert me via the Form at www.pcurtis.com. On github, mentioning @pdcurtis in any conversation will cause it to be emailed to me.

Changelog covering recent significant changes

3.2.4

  • Change method of inhibiting display of vnstati image when vnstati not installed or enabled in settings by substituting a tiny image instead of use of an extra mainBox.
  • Improved notification when vnstat and vnstati not installed
  • Better formatting of CHANGELOG.md

3.2.3

  • Add check that GTop library is installed using a try and catch(e) technique
  • Remove duplicate let declarations occurances missed in 3.2.0 which could give difficulties in Cinnamon 3.4
  • Some changes in intialisation to remove CJS warnings

3.2.2

Support new facility on Cinnamon Spices Web Site to display a CHANGELOG.md

  • Add CHANGELOG.md to applet folder and use it instead of changelog.txt in right click menu
  • CHANGELOG.md based on recent entries to changelog.txt with last changes at the top. changelog.txt currently remains in applet folder but is not used.
  • Add symbolic links for README.md and CHANGELOG.md instead of copies from the applet folder to UUID folder for the Cinnamon Web Site to display.
  • Improve l10n translation support.

3.2.1

  • Harmonise with code writen by author for vnstat@cinnamon.org

3.2.0

  • Remove duplicate let declarations occurances in common coding for Cinnamon 3.4 thanks to @NikoKraus [#604]

3.1.1

  • Additional PopupMenu.PopupMenuSection added as per an easy and elegant suggestion from @collinss and @Odyseus so 'standard' context menu items are retained when the menu is refreshed.

3.1.0

  • Version numbering harmonised with other Cinnamon applets and added to metadata.json so it can show in 'About...'
  • icon.png copied back into applet folder so it can show in 'About...'
  • Add translation support to applet.js
  • Identify strings for translation and remove leading and trailing spaces and replace with separate spaces where required.

3.0.7

Transition to new cinnamon-spices-applets repository (January 2107)

  • Change from call to firefox to opening README.md on Context submenu to provide help.

Earlier Versions

Information is available on github.com/pdcurtis/cinnamon-applets but some highlights are:

  • First Released on 11-07-2013 for Cinnamon 1.8
  • All major development and facilites completed in 2.4.0 (March 2014)
  • Support for Android Bluetooth connections added in 2.6.0
  • Modifications for Mint 18+ and Cinnamon 3.0+ in 3.0.0
  • Support for Gbyte and Tbyte data levels by 3.0.6

Log In To Comment!

2 Comments

buggyRogers
buggyRogers-1 month ago
Thank you for the great applet! Keep up the good work!
Peter Curtis
Peter Curtis-4 months ago
As the author I am committed to maintaining and developing this and all my other applets.

I can be contacted here however posting a comment does not automatically cause me to be notified so if you want a rapid response please also alert me via http://www.pcurtis.com/contact_form.htm?applets . On github, @pdcurtis in any conversation should cause a copy to be emailed to me.

Please take the time to 'like' applets you find useful even if you do not comment, it is a great motivator for the authors.