OpenWrt Forum Archive

Topic: Can't get LuCI Graph Statistics to work

The content of this topic has been archived between 22 Apr 2018 and 29 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Good and Bad news!

Stats started working on latest snapshot from openwrt.org (r13849) without any changes on my side...just did opkg upgrade

Then, without knowing, while upgrading webif, core was upgraded to r13849 from x-wrt.org (uncommented src of x-wrt.org from opkg.conf) - stats broke again!

There could be an issue with underlaying code somewhere...not sure how to pinpoint the issue...what I have noticed is while upgrading to openwrt snapshot it upgraded lot of packages (mostly seems to be lib*'s) but x-wrt upgrade just did base_files and webif (if I remember corretly)

Not sure how to go back to the r13849 without reinstalling whole firmware! - any ideas?

EDIT:
Noticed new versions at snapshot this morning and upgraded it and rebooted and STATS Graphs are WORKING now...not sure where the mismatches are! Good for now!

Thanks for the help.

(Last edited by premi on 7 Jan 2009, 15:56)

I have a strange problem with collectd 4.4.4 under x86 (latest trunk, kernel 2.6).

Graph Statistics are working only when I start collectd in foreground, as daemon the data directory in /tmp isn't created, processes are shown, but nothing happens, no data gets collected. If i run collectd like this

collectd -f

everything works fine and data gets collected.

What could be the problem here? (Tried packages built my own and also the one's that are available directly from OpenWrt's repos)

This is a well known uClibc bug. Programs relying on libpthread that run in daemon mode produce a deadlock under certain circumstances. You should change the init script to use "collectd -f &" as start command or sth. similar.

~ JoW

jow wrote:

This is a well known uClibc bug. Programs relying on libpthread that run in daemon mode produce a deadlock under certain circumstances. You should change the init script to use "collectd -f &" as start command or sth. similar.

~ JoW

This is an old thread but I have exactly the same issue. Collectd is working when I manually start it with collectd -f &, but no graphs with just the init.d script.
My question is how to implement "-f &" in the init.d script, I have tried several ways but with no luck.

Here is the orginal init.d script:

 
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org

START=80
BINARY="/usr/sbin/collectd"
PIDFILE="/var/run/collectd.pid"
DATADIR="/var/lib/collectd"

start() {
        [ -x "$BINARY" ] || exit 1;

        if [ -e "$PIDFILE" ]
        then
                kill $(cat "$PIDFILE") 2>/dev/null
                sleep 1
        fi

        [ -d "$DATADIR" ] || mkdir -p "$DATADIR";

        $BINARY
}

stop() {
        kill $(cat "$PIDFILE") 2>/dev/null
}

restart() {
        start
}

For what it's worth, on my system collectd was failing to create any rrd databases with some message about rrd_create failing.  Hence /tmp/HOSTNAME/blahs were all empty and no graphs were displayed.
I finally figured out that the reason was that the system clock was not set correctly, and rrd apparently doesn't like the year 1969.

jow wrote:

Hi.

This command is executed by LuCI to generate the image for wireless signal quality:

rrdtool graph '/tmp/rrdimg/uplink/wireless-wl0/2.3600.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 '-t' 'uplink: Wireless - Signal Quality' '-v' n 'DEF:1signal_quality_avg=/tmp/uplink/wireless-wl0/signal_quality.rrd:value:AVERAGE' 'CDEF:1signal_quality_nnl=1signal_quality_avg,UN,0,1signal_quality_avg,IF' 'CDEF:1signal_quality_stk=1signal_quality_nnl' 'LINE1:1signal_quality_stk#0000ff:Signal Quality' 'GPRINT:1signal_quality_avg:AVERAGE:%6.1lf Avg' 'GPRINT:1signal_quality_avg:LAST:%6.1lf Last\l'

Can you execute this on the shell and tell me what happens?

Edit:
Make sure to replace "uplink" with your hostname.

~ JoW

I am wondering if this is still relevant for Backfire 10.03.1 ?
My understanding is that you don't need to generate PNG file, if there is an SVG available.  And your browser can render SVG files.

I was not installing rrdtool, and I see moving chart (plotted line) on Realtime Network Traffic page.

Is rrdtool really required? Than it should be required package.
And installer in LuCI web interface should install it automatically as dependency.

P.S. what command line or script generates Realtime Network Traffic chart?

Hope rrdtool is not needed to display statistics.
As it would not fit into router with 4MB of flash.

# opkg install collectd-mod-rrdtool
Installing collectd-mod-rrdtool (4.9.1-3) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc3/ar71xx/packages/collectd-mod-rrdtool_4.9.1-3_ar71xx.ipk.
Installing librrd1 (1.0.50-1) to root...
Collected errors:
 * verify_pkg_installable: Only have 120kb available on filesystem /overlay, pkg librrd1 needs 587
 * opkg_install_cmd: Cannot install package collectd-mod-rrdtool.

DD-Wrt and Tomato are able to display statistics on any router with 4MB flash.
In particular my Linksys WRT54GL was capable to display all stats.

It does fit quite well - if included in squashfs.
Yes rrdtool is needed to plot .rrd data gathered by collectd.

jow wrote:

It does fit quite well - if included in squashfs.
Yes rrdtool is needed to plot .rrd data gathered by collectd.

I was installing from /backfire/10.03.1-rc3/ar71xx/, flashed TL-WN841ND router with openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin

Do I need to re-flash it now with squashfs-sysupgrade image?
I am conffident that I don't have rrdtool installed.  And I was not deleting any single package after flashing and reboot.

What I was meaning is, that when you build a custom image or pack it with the imagebuilder, all those additional packages will fit quite well while still leaving usable space.
Thats also the reason why DD-Wrt and Tomato can cramp so much stuff into the image. If you install packages with opkg they will take more space.

ok, thank you for explanation.

Can you pls advise what packages I can safely delete now from existing install, to free up some space?
I do not plan to use this test router (AP+WDS deployment) for WAN connectivity, so probably can uninstall:
  ppp               2.4.4-9
  ppp-mod-pppoe  2.4.4-9

Firewall has been disabled. So I also don't need it
  luci-app-firewall    0.9+svn6240-1
  firewall                1-12
Can those packages be safely deleted?
How much space would it provide to me?

(Last edited by vplessky on 24 Oct 2010, 21:34)

They are safe to remove, however uninstalling packages that are part of the squashfs (rom) won't free any space, it will even take more space as the deletion info gets stored in jffs2.

This doesn't sound good...

Can you built squashfs image for WR841ND v5, with statistics Wi-Fi, Network, CPU, etc.) modules enabled?
Modules which may be disabled: firewall, ppp, ppp-mod-pppoe, luci-app-firewall  (in case statistics modules do not fit into flashable image)
May be some other modules as well - TP-Link WR841ND doesn't have USB port, so modules for USB port are also useless.
Such setup can be called "AP" or "AP/WDS". Just wondering why there is no such firmware built by default :-)

Another piece of info I could not find is: Connected Wireless Clients.
Similar to this screen in Gargoyle router firmware.
As Gargoyle is based on OpenWrt, I guess such info should be available too.
DD-Wrt also separates standard Wireless Client (STA) from WDS Nodes.  This is very useful and allows to understand if WDS actually running, and which router/AP is connected to this device.

checked code from Realtime Network Traffic page.

    function initGraphs() {
        var rpc = new GraphRPC(
            document.getElementById('live_graphs'),
            '/cgi-bin/luci/;stok=e9ca754a984891032d867910792423f7/rpc/sys', 'net.deviceinfo',
            2000,

            // Data sources
            [ "0", "incoming (kiB/s)", "8", "outgoing (kiB/s)" ],

            // Graph layout options
            { 
            shouldFill: false, 
            drawBackground: false, 
            strokeColor: null,
            title: 'traffic on %s',
            strokeWidth: 2.5, height: 140,
            padding: { left: 70, right: 10, top: 10, bottom: 20 },
            instances: [ 'br-lan', 'eth1' ],
            instanceNames: {
"eth1":"wan",
"br-lan":"lan",
                "0": ""
            }},

            // transform function
            function (cur, last) {
                return (cur - last) / 2048;
            },
            'live_graphs'
        );
    }

    MochiKit.DOM.addLoadEvent(initGraphs);

ifconfig from ssh session confirms that there is no traffic on eth1.
But there is traffic on br-lan.

root@OpenWrt:/# ifconfig
br-lan    Link encap:Ethernet  HWaddr D8:5D:4C:BF:25:B4
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22668 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12173 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4037345 (3.8 MiB)  TX bytes:4780820 (4.5 MiB)

eth0      Link encap:Ethernet  HWaddr D8:5D:4C:BF:25:B4
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2022999 (1.9 MiB)  TX bytes:4077672 (3.8 MiB)
          Interrupt:5

eth1      Link encap:Ethernet  HWaddr D8:5D:4C:BF:25:B5
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:4

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:506 (506.0 B)  TX bytes:506 (506.0 B)

mon.wlan0 Link encap:UNSPEC  HWaddr D8-5D-4C-BF-25-B4-00-00-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21094 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2233792 (2.1 MiB)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr D8:5D:4C:BF:25:B4
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:34471 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61393 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2233138 (2.1 MiB)  TX bytes:75974180 (72.4 MiB)

wlan0.sta Link encap:Ethernet  HWaddr D8:5D:4C:BF:25:B4
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:62347 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44002 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:74786454 (71.3 MiB)  TX bytes:4997560 (4.7 MiB)

How I can change            
    instances: [ 'br-lan', 'eth1' ]
to
    instances: [ 'br-lan', 'wlan0' ]
or
    instances: [ 'br-lan', 'eth1', 'wlan0' ]   ?

on working router, so that changes would be respected?
And saved for the next session.

And of course it would be much better to have configurable option - which interface to use for displaying network statistics.

(Last edited by vplessky on 9 Feb 2011, 14:04)

jow wrote:

Hi.

This command is executed by LuCI to generate the image for wireless signal quality:

rrdtool graph '/tmp/rrdimg/uplink/wireless-wl0/2.3600.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 '-t' 'uplink: Wireless - Signal Quality' '-v' n 'DEF:1signal_quality_avg=/tmp/uplink/wireless-wl0/signal_quality.rrd:value:AVERAGE' 'CDEF:1signal_quality_nnl=1signal_quality_avg,UN,0,1signal_quality_avg,IF' 'CDEF:1signal_quality_stk=1signal_quality_nnl' 'LINE1:1signal_quality_stk#0000ff:Signal Quality' 'GPRINT:1signal_quality_avg:AVERAGE:%6.1lf Avg' 'GPRINT:1signal_quality_avg:LAST:%6.1lf Last\l'

Can you execute this on the shell and tell me what happens?
...
~ JoW

JoW:
how command line should look like to generate RRD image for memory plugin?

I have installed collectd-mod-memory - 4.9.1-3
added memory plugin to /etc/collectd.conf

 LoadPlugin memory

Memory folder inside /tmp/rrdimg/<hostname> has been created:

root@OpenWrt:/tmp/rrdimg/OpenWrt# ls
cpu-0           load            wireless-wlan0
interface       memory

but it is empty.

Memory plugin for collectd is working, I get updates in folder with rrd files:

root@OpenWrt:/home/rrd/OpenWrt/memory# ls -ld *
-rw-r--r--    1 root     root         6540 Feb  9 16:00 memory-buffered.rrd
-rw-r--r--    1 root     root         6540 Feb  9 16:00 memory-cached.rrd
-rw-r--r--    1 root     root         6540 Feb  9 16:00 memory-free.rrd
-rw-r--r--    1 root     root         6540 Feb  9 15:59 memory-used.rrd

If it's not possible to get access to graphs from memory plugin via LuCI web interface - I'd like at least to have possibility to download rendered images to my computer.

Will look later

I have managed to generate image using following code:

#rrdtool graph '/tmp/rrdimg/OpenWrt/test5.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 '-t' 'Memory usage' '-v' 'Memory' 'DEF:mem1=/home/rrd/OpenWrt/memory/memory-free.rrd:value:AVERAGE' 'DEF:mem2=/home/rrd/OpenWrt/memory/memory-used.rrd:value:AVERAGE'  'LINE1:mem1#0000ff:Memory Free' 'GPRINT:mem1:AVERAGE:%6.1lf Avg' 'GPRINT:mem1:LAST:%6.1lf Last\l' 'LINE2:mem2#00ff00:Memory Used' 'GPRINT:mem2:AVERAGE:%6.1lf Avg' 'GPRINT:mem2:LAST:%6.1lf Last\l'

But image itself is empty.
It seems rrd folder for memory plugin has been created and populated with RRD initial data, but it's not updated since that time.

root@OpenWrt:/home/rrd/OpenWrt/memory# ls -ld *
-rw-r--r--    1 root     root         6540 Feb  9 19:01 memory-buffered.rrd
-rw-r--r--    1 root     root         6540 Feb  9 19:01 memory-cached.rrd
-rw-r--r--    1 root     root         6540 Feb  9 19:02 memory-free.rrd
-rw-r--r--    1 root     root         6540 Feb  9 19:01 memory-used.rrd

root@OpenWrt:/home/rrd/OpenWrt/cpu-0# ls -ld *
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-idle.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-interrupt.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-nice.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-softirq.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-steal.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-system.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-user.rrd
-rw-r--r--    1 root     root         6540 Feb 10 09:30 cpu-wait.rrd

I got rrd graphs by using these commands:

rrdtool graph '/tmp/wireless.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 '-t' 'uplink: Wireless - Signal Quality' '-v' n 'DEF:1signal_quality_avg=/var/lib/collectd/rrd/OpenWrt/wireless-wlan0/signal_quality.rrd:value:AVERAGE' 'CDEF:1signal_quality_nnl=1signal_quality_avg,UN,0,1signal_quality_avg,IF' 'CDEF:1signal_quality_stk=1signal_quality_nnl' 'LINE1:1signal_quality_stk#0000ff:Signal Quality' 'GPRINT:1signal_quality_avg:AVERAGE:%6.1lf Avg' 'GPRINT:1signal_quality_avg:LAST:%6.1lf Last\l'
rrdtool graph '/tmp/wireless-power.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 -l -10 -u 1 '-t' 'uplink: Wireless - Signal Power' '-v' n 'DEF:1signal_power_avg=/var/lib/collectd/rrd/OpenWrt/wireless-wlan0/signal_power.rrd:value:AVERAGE' 'CDEF:1signal_power_nnl=1signal_power_avg,UN,0,1signal_power_avg,IF' 'CDEF:1signal_power_stk=1signal_power_nnl' 'LINE1:1signal_power_stk#0000ff:Signal Power' 'GPRINT:1signal_power_avg:AVERAGE:%6.1lf Avg' 'GPRINT:1signal_power_avg:LAST:%6.1lf Last\l'
rrdtool graph '/tmp/memory-test.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 '-t' 'Memory usage' '-v' 'Memory' 'DEF:mem1=/var/lib/collectd/rrd/OpenWrt/memory/memory-free.rrd:value:AVERAGE' 'DEF:mem2=/var/lib/collectd/rrd/OpenWrt/memory/memory-used.rrd:value:AVERAGE'  'LINE1:mem1#0000ff:Memory Free' 'GPRINT:mem1:AVERAGE:%6.1lf Avg' 'GPRINT:mem1:LAST:%6.1lf Last\l' 'LINE2:mem2#00ff00:Memory Used' 'GPRINT:mem2:AVERAGE:%6.1lf Avg' 'GPRINT:mem2:LAST:%6.1lf Last\l'
nice -n 19 /usr/bin/rrdtool graph /tmp/load-shortterm.png -a PNG -b 1024 --start -126900 -l 0 -u 1 -t "Load" --vertical-label "Current load" -w 600 -h 300 --color BACK#1e1816 --color FONT#ffffff --color CANVAS#1e1816 --color GRID#4E403C --color MGRID#4e403c --color FRAME#EEEEEE --color ARROW#4E403C --x-grid HOUR:8:DAY:1:DAY:1:43200:%A DEF:g1=/var/lib/collectd/rrd/OpenWrt/load/load.rrd:shortterm:AVERAGE LINE2:g1#ff3d00:"Load"
nice -n 19 /usr/bin/rrdtool graph /tmp/load-midterm.png -a PNG -b 1024 --start -126900 -l 0 -u 1 -t "Load" --vertical-label "Current load" -w 600 -h 300 --color BACK#1e1816 --color FONT#ffffff --color CANVAS#1e1816 --color GRID#4E403C --color MGRID#4e403c --color FRAME#EEEEEE --color ARROW#4E403C --x-grid HOUR:8:DAY:1:DAY:1:43200:%A DEF:g1=/var/lib/collectd/rrd/OpenWrt/load/load.rrd:midterm:AVERAGE LINE2:g1#ff3d00:"Load"
nice -n 19 /usr/bin/rrdtool graph /tmp/load-longterm.png -a PNG -b 1024 --start -126900 -l 0 -u 1 -t "Load" --vertical-label "Current load" -w 600 -h 300 --color BACK#1e1816 --color FONT#ffffff --color CANVAS#1e1816 --color GRID#4E403C --color MGRID#4e403c --color FRAME#EEEEEE --color ARROW#4E403C --x-grid HOUR:8:DAY:1:DAY:1:43200:%A DEF:g1=/var/lib/collectd/rrd/OpenWrt/load/load.rrd:longterm:AVERAGE LINE2:g1#ff3d00:"Load"
rrdtool graph '/tmp/cpu.png' '-a' PNG '-s' 'NOW-3600' '-w' 600 '-t' 'host/cpu-0/cpu' \
    'DEF:idle_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-system.rrd:value:MIN' \
    'DEF:idle_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-system.rrd:value:AVERAGE' \
    'DEF:idle_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-system.rrd:value:MAX' \
    'CDEF:idle_nnl=idle_avg,UN,0,idle_avg,IF' \
    'DEF:wait_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-wait.rrd:value:MIN' \
    'DEF:wait_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-wait.rrd:value:AVERAGE' \
    'DEF:wait_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-wait.rrd:value:MAX' \
    'CDEF:wait_nnl=wait_avg,UN,0,wait_avg,IF' \
    'DEF:nice_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-nice.rrd:value:MIN' \
    'DEF:nice_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-nice.rrd:value:AVERAGE' \
    'DEF:nice_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-nice.rrd:value:MAX' \
    'CDEF:nice_nnl=nice_avg,UN,0,nice_avg,IF' \
    'DEF:user_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-user.rrd:value:MIN' \
    'DEF:user_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-user.rrd:value:AVERAGE' \
    'DEF:user_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-user.rrd:value:MAX' \
    'CDEF:user_nnl=user_avg,UN,0,user_avg,IF' \
    'DEF:system_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-system.rrd:value:MIN' \
    'DEF:system_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-system.rrd:value:AVERAGE' \
    'DEF:system_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-system.rrd:value:MAX' \
    'CDEF:system_nnl=system_avg,UN,0,system_avg,IF' \
    'DEF:softirq_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-softirq.rrd:value:MIN' \
    'DEF:softirq_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-softirq.rrd:value:AVERAGE' \
    'DEF:softirq_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-softirq.rrd:value:MAX' \
    'CDEF:softirq_nnl=softirq_avg,UN,0,softirq_avg,IF' \
    'DEF:interrupt_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-interrupt.rrd:value:MIN' \
    'DEF:interrupt_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-interrupt.rrd:value:AVERAGE' \
    'DEF:interrupt_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-interrupt.rrd:value:MAX' \
    'CDEF:interrupt_nnl=interrupt_avg,UN,0,interrupt_avg,IF' \
    'DEF:steal_min=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-steal.rrd:value:MIN' \
    'DEF:steal_avg=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-steal.rrd:value:AVERAGE' \
    'DEF:steal_max=/var/lib/collectd/rrd/OpenWrt/cpu-0/cpu-steal.rrd:value:MAX' \
    'CDEF:steal_nnl=steal_avg,UN,0,steal_avg,IF' \
    'CDEF:steal_stk=steal_nnl' \
    'CDEF:interrupt_stk=interrupt_nnl,steal_stk,+' \
    'CDEF:softirq_stk=softirq_nnl,interrupt_stk,+' \
    'CDEF:system_stk=system_nnl,softirq_stk,+' \
    'CDEF:user_stk=user_nnl,system_stk,+' \
    'CDEF:nice_stk=nice_nnl,user_stk,+' \
    'CDEF:wait_stk=wait_nnl,nice_stk,+' \
    'CDEF:idle_stk=idle_nnl,wait_stk,+' \
    'AREA:idle_stk#ffffff' \
    'LINE1:idle_stk#ffffff:idle     ' \
    'AREA:wait_stk#ffebbf' \
    'LINE1:wait_stk#ffb000:wait     ' \
    'AREA:nice_stk#bff7bf' \
    'LINE1:nice_stk#00e000:nice     ' \
    'AREA:user_stk#bfbfff' \
    'LINE1:user_stk#0000ff:user     ' \
    'AREA:system_stk#ffbfbf' \
    'LINE1:system_stk#ff0000:system   ' \
    'AREA:softirq_stk#ffbfff' \
    'LINE1:softirq_stk#ff00ff:softirq  ' \
    'AREA:interrupt_stk#e7bfe7' \
    'LINE1:interrupt_stk#a000a0:interrupt' \
    'AREA:steal_stk#bfbfbf' \
    'LINE1:steal_stk#000000:steal    '

(Last edited by valentt on 3 Jan 2012, 23:37)

I am using collectd in a custom image on trunk r30795. Just 2 items.

a) memory is loaded, shows tab under statistics - collectd - system plugins but no checkbox to enable the module. if I manually edit collectd.conf and insert LoadPlugin memory it starts to work. This problem was fixed but has come back.

b) ping, can I suggest that we use the same colour for the same host in all 3 graphs being Round Trip, Drop Rate and Standard Deviation. This will make it a lot easier to follow the stats/trend for a specific host.

The discussion might have continued from here.