diff --git a/nix/pkgs/openwrt/default.nix b/nix/pkgs/openwrt/default.nix index 540975f..e702e4a 100644 --- a/nix/pkgs/openwrt/default.nix +++ b/nix/pkgs/openwrt/default.nix @@ -92,6 +92,7 @@ in rec { "collectd" "collectd-mod-iwinfo" "collectd-mod-network" "collectd-mod-interface" "collectd-mod-load" "collectd-mod-cpu" + "collectd-mod-exec" ] ++ ( if args.variant != "tiny" then [ @@ -117,6 +118,8 @@ in rec { cat > $out/etc/uci-defaults/99-zentralwerk </etc/crontabs/root <<__CRON__ * * * * * /usr/sbin/wifi-on-link.sh + * * * * * /usr/sbin/usteer-info.sh __CRON__ cat >/usr/sbin/wifi-on-link.sh <<__SH__ #!/bin/sh @@ -413,9 +414,13 @@ in LoadPlugin interface LoadPlugin iwinfo LoadPlugin network + LoadPlugin exec Server "${config.site.net.serv.hosts6.dn42.stats}" "25826" + + Exec "nobody" "/usr/bin/usteer-stats.sh" + COLLECTD ''} diff --git a/nix/pkgs/openwrt/usteer-info.sh b/nix/pkgs/openwrt/usteer-info.sh new file mode 100755 index 000000000..c1db71f --- /dev/null +++ b/nix/pkgs/openwrt/usteer-info.sh @@ -0,0 +1,3 @@ +#! /bin/sh +[ -p /var/run/usteer-info ] || exit 0 +exec /bin/ubus call usteer local_info > /var/run/usteer-info diff --git a/nix/pkgs/openwrt/usteer-stats.sh b/nix/pkgs/openwrt/usteer-stats.sh new file mode 100755 index 000000000..27b9169 --- /dev/null +++ b/nix/pkgs/openwrt/usteer-stats.sh @@ -0,0 +1,23 @@ +#! /bin/sh + +HOSTNAME=`cat /proc/sys/kernel/hostname` +INTERVAL=60 + +[ -p /var/run/usteer-info ] || mkfifo /var/run/usteer-info + +while true; do + eval $(cat /var/run/usteer-info | jsonfilter \ + -e 'LOAD=@["hostapd.wlan2-c3d2"].load' \ + -e 'NOISE=@["hostapd.wlan2-c3d2"].noise' \ + -e 'N_ASSOC=@["hostapd.wlan2-c3d2"].n_assoc' \ + -e 'FREQ=@["hostapd.wlan2-c3d2"].freq' \ + -e 'ROAM_SOURCE=@["hostapd.wlan2-c3d2"].roam_events.source' \ + -e 'ROAM_TARGET=@["hostapd.wlan2-c3d2"].roam_events.target' + ) + echo "PUTVAL \"$HOSTNAME/exec-usteer_local_info/load\" interval=$INTERVAL N:$LOAD" + echo "PUTVAL \"$HOSTNAME/exec-usteer_local_info/noise\" interval=$INTERVAL N:$NOISE" + echo "PUTVAL \"$HOSTNAME/exec-usteer_local_info/n_assoc\" interval=$INTERVAL N:$N_ASSOC" + echo "PUTVAL \"$HOSTNAME/exec-usteer_local_info/freq\" interval=$INTERVAL N:$FREQ" + echo "PUTVAL \"$HOSTNAME/exec-usteer_local_info/roam_source\" interval=$INTERVAL N:$ROAM_SOURCE" + echo "PUTVAL \"$HOSTNAME/exec-usteer_local_info/roam_target\" interval=$INTERVAL N:$ROAM_TARGET" +done