Real time application bandwidth monitoring

Costa Tsaousis edited this page Apr 8, 2016 · 2 revisions


Running Netdata



Netdata Registry

Monitoring Info

Netdata Badges

Data Collection

Binary Modules

Python Modules

Node.js Modules

BASH Modules

API Documentation

Web Dashboards

Running behind another web server

Advanced configurations



Other monitoring tools

Clone this wiki locally

this is incomplete!


Per application bandwidth monitoring is Linux, is problematic. The Linux kernel does not expose counters for the bandwidth its processes send or receive.

So how can we get bandwidth charts like this?


The solution is very simple:

  1. Use FireQOS to classify traffic for each application, at the network interface level
  2. Use Netdata to visualize them in real-time

You can install these packages, on every server - and / or a Linux router that all the traffic passed through. Usually I do both. I install a basic FireQOS configuration on each server (no need for actual traffic shaping - just classification) and a more complex FireQOS configuration at the core routers of my DMZ.

Let's see an example:


FireQOS is part of FireHOL. If you install the firehol package using your linux distribution package manager, you will most probably get FireQOS too. Otherwise, you can follow this procedure to install all the FireHOL tools directly from source.

FireQOS will setup tc classes and filters. Everything is handled by the Linux kernel, so you don't need to run a daemon. You configure it, you run it just once, and this is it.

You need a FireQoS configuration file (/etc/firehol/fireqos.conf) like this:


You can apply it using the command:

fireqos start

If you need more help to set it up, you can also follow the FireQoS tutorial.