]> arthur.barton.de Git - netdata.git/blobdiff - plugins.d/tc-qos-helper.sh
Merge pull request #1230 from ktsaou/master
[netdata.git] / plugins.d / tc-qos-helper.sh
index bff5217d28a449e81d96ec0fb55e34a14631045d..7e1e92cf33a27c1cb7bea133970d2cdca238a4d4 100755 (executable)
@@ -1,16 +1,64 @@
 #!/usr/bin/env bash
 
+# netdata
+# real-time performance and health monitoring, done right!
+# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
+# GPL v3+
+#
+# This script is a helper to allow netdata collect tc data
+# parsing tc output has been implemented in C, inside netdata
+# This script allows setting names to dimensions.
+
 export PATH="${PATH}:/sbin:/usr/sbin:/usr/local/sbin"
+export LC_ALL=C
 
 PROGRAM_FILE="$0"
 PROGRAM_NAME="$(basename $0)"
 PROGRAM_NAME="${PROGRAM_NAME/.plugin}"
 
+# -----------------------------------------------------------------------------
+
+logdate() {
+    date "+%Y-%m-%d %H:%M:%S"
+}
+
+log() {
+    local status="${1}"
+    shift
+
+    echo >&2 "$(logdate): ${PROGRAM_NAME}: ${status}: ${*}"
+
+}
+
+warning() {
+    log WARNING "${@}"
+}
+
+error() {
+    log ERROR "${@}"
+}
+
+info() {
+    log INFO "${@}"
+}
+
+fatal() {
+    log FATAL "${@}"
+    exit 1
+}
+
+debug=0
+debug() {
+    [ $debug -eq 1 ] && log DEBUG "${@}"
+}
+
+# -----------------------------------------------------------------------------
+
 plugins_dir="${NETDATA_PLUGINS_DIR}"
 [ -z "$plugins_dir" ] && plugins_dir="$( dirname $PROGRAM_FILE )"
 
 config_dir=${NETDATA_CONFIG_DIR-/etc/netdata}
-tc="$(which tc 2>/dev/null)"
+tc="$(which tc 2>/dev/null || command -v tc 2>/dev/null)"
 fireqos_run_dir="/var/run/fireqos"
 qos_get_class_names_every=120
 qos_exit_every=3600
@@ -27,16 +75,9 @@ if [ -f "${config_dir}/tc-qos-helper.conf" ]
     source "${config_dir}/tc-qos-helper.conf"
 fi
 
-# default time function
-now_ms=
-current_time_ms() {
-    now_ms="$(date +'%s')000"
-}
-
 # default sleep function
 LOOPSLEEPMS_LASTWORK=0
 loopsleepms() {
-    [ "$1" = "tellwork" ] && shift
     sleep $1
 }
 
@@ -46,8 +87,7 @@ loopsleepms() {
 
 if [ -z "${tc}" -o ! -x "${tc}" ]
     then
-    echo >&2 "${PROGRAM_NAME}: Cannot find command 'tc' in this system."
-    exit 1
+    fatal "cannot find command 'tc' in this system."
 fi
 
 devices=