@cryptotaxi247 / netdata-1 / commits / 44f86ae1e

moved tc-all.sh to charts.d/

Costa Tsaousis (ktsaou) committed May 2, 2014 at 11:39 UTC 44f86ae1ef6bdf0c751f34ac8f8fa5c71a97b58e
2 files changed +96 -2
charts.d/tc-qos-collector.sh new
+94
@@ -0,0 +1,94 @@
1 +#!/bin/sh
2 +
3 +# let netdata know our PID
4 +# this is required to kill us when it exits
5 +echo "MYPID $$"
6 +
7 +# default sleep function
8 +loopsleepms() {
9 + sleep $1
10 +}
11 +# if found and included, this file overwrites loopsleepms()
12 +# with a high resolution timer function for precise looping.
13 +. "`dirname $0`/loopsleepms.sh.inc"
14 +
15 +# check if we have a valid number for interval
16 +t=$1
17 +sleep_time=$(( t + 1 - 1 ))
18 +if [ "$sleep_time" -eq 0 ]
19 + then
20 + sleep_time=1
21 +fi
22 +
23 +devices=
24 +fix_names=
25 +
26 +setclassname() {
27 + echo "SETCLASSNAME $3 $2"
28 +}
29 +
30 +show_tc() {
31 + local x="$1"
32 +
33 + echo "BEGIN $x"
34 +
35 + /sbin/tc -s class show dev $x
36 +
37 + # check FireQOS names for classes
38 + if [ ! -z "$fix_names" -a -f /var/run/fireqos/ifaces/$x ]
39 + then
40 + name="`cat /var/run/fireqos/ifaces/$x`"
41 + echo "SETDEVICENAME $name"
42 +
43 + interface_classes=
44 + . /var/run/fireqos/$name.conf
45 + for n in $interface_classes_monitor
46 + do
47 + setclassname `echo $n | tr '|' ' '`
48 + done
49 +
50 + echo "SETDEVICEGROUP $interface_dev"
51 + fi
52 + echo "END $x"
53 +}
54 +
55 +all_devices() {
56 + cat /proc/net/dev | grep ":" | cut -d ':' -f 1 | while read dev
57 + do
58 + l=`/sbin/tc class show dev $dev | wc -l`
59 + [ $l -ne 0 ] && echo $dev
60 + done
61 +}
62 +
63 +# update devices and class names
64 +# once every 2 minutes
65 +names_every=$((120 / sleep_time))
66 +
67 +# exit this script every hour
68 +# it will be restarted automatically
69 +exit_after=$((3600 / sleep_time))
70 +
71 +c=0
72 +gc=0
73 +while [ 1 ]
74 +do
75 + fix_names=
76 + c=$((c + 1))
77 + gc=$((gc + 1))
78 +
79 + if [ $c -le 1 -o $c -ge $names_every ]
80 + then
81 + c=1
82 + fix_names="YES"
83 + devices="`all_devices`"
84 + fi
85 +
86 + for d in $devices
87 + do
88 + show_tc $d
89 + done
90 +
91 + [ $gc -gt $exit_after ] && exit 0
92 +
93 + loopsleepms $sleep_time
94 +done
netdata.c
+2 -2
@@ -5153,7 +5153,7 @@ void *proc_main(void *ptr)
5153
5154 // ----------------------------------------------------------------------------
5155 // /sbin/tc processor
5156 -// this requires the script tc-all.sh
5156 +// this requires the script charts.d/tc-qos-collector.sh
5157
5158 #define PIPE_READ 0
5159 #define PIPE_WRITE 1
@@ -5354,7 +5354,7 @@ void *tc_main(void *ptr)
5354 struct tc_device *device = NULL;
5355 struct tc_class *class = NULL;
5356
5357 - snprintf(buffer, TC_LINE_MAX, "exec %s %d", config_get("plugin:tc", "script to run to get tc values", "./tc-all.sh"), update_every);
5357 + snprintf(buffer, TC_LINE_MAX, "exec %s %d", config_get("plugin:tc", "script to run to get tc values", "charts.d/tc-qos-collector.sh"), update_every);
5358 fp = popen(buffer, "r");
5359 if(!fp) {
5360 error("Cannot popen(\"%s\", \"r\").", buffer);