Add scripts to create myops-getqueryview:
[myops.git] / web / collect / server / summarize_rpms.sh
diff --git a/web/collect/server/summarize_rpms.sh b/web/collect/server/summarize_rpms.sh
new file mode 100755 (executable)
index 0000000..b3a13e9
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+PREFIX=/var/www/html/uploadlogs/raw/old
+
+# get keys
+key_list="NodeManager
+"
+extra="
+NodeUpdate
+fprobe-ulog
+iproute
+iptables
+kernel-2
+util-vserver-pl-0
+vserver-planetlab-f8-i386
+vsys
+vsys-scripts
+"
+
+#grep -E "^rpm_versions " * | \
+#      awk '{  for(o=1;o<=NF;o++){ if ( $o ~ /planetlab/){ print $(o) ; } } }' | \
+#      awk -F. '{printf("%s.%s.%s\n", $1,$2,$3) }' | sort | uniq -c
+
+
+DATE=$( date --date "1 hour ago" +%Y-%m-%dT%H )
+#DATE=$1
+
+# get count of unique values from keys
+echo $START Hours ago == $DATE
+c=`ls $PREFIX/$DATE/*--upload | wc -l`
+if [[ $c -gt 2 ]] ; then
+    for rpm in $key_list ; do 
+        echo $rpm
+        c=`grep -E -h "^rpm_versions .*$rpm" $PREFIX/$DATE/*--upload | wc -l`
+               if [[ $c -gt 2 ]] ; then
+                   grep -h -E "^rpm_versions .*$rpm" $PREFIX/$DATE/*--upload | \
+                           awk '{  for(o=1;o<=NF;o++){ if ( $o ~ /planetlab/){ print $(o) ; } } }' | \
+                                   awk -F. '{printf("%s.%s.%s\n", $1,$2,$3) }' | grep $rpm | sort | uniq -c | 
+                               sed -e 's/\./_/g' -e 's/\//_/g' | awk 'BEGIN{total=0} { total += $1 ; print $0 } END { print total, "total"}' | \
+                               while read value value_name ; do 
+                                       /root/load-graphite.py --target "myops.rpms.$rpm.$value_name" --date $DATE  --value $value
+                                       sleep .2
+                               done
+                   not_found=`grep -h -E "^rpm_versions .*" $PREFIX/$DATE/*--upload | grep -v "$rpm" | wc -l`
+                   /usr/share/myops/web/collect/server/load-graphite.py --target "myops.rpms.$rpm.notfound" --date $DATE  --value $not_found
+               fi
+    done
+fi
+