Various updates; Add logAxis patch for graphite; Add namespaces to summary scripts.
[myops.git] / web / collect / server / summarize_rpms.sh
1 #!/bin/bash
2
3 if [ -z "$1" ] ; then
4     ns="raw"
5 else
6     ns="$1"
7 fi
8 if [ -z "$2" ] ; then
9         DATE=$( date --date "1 hour ago" +%Y-%m-%dT%H )
10 else
11         DATE="$2"
12 fi
13 PREFIX=/var/www/html/uploadlogs/$ns/old
14
15 # get keys
16 key_list="NodeManager
17 "
18 extra="
19 NodeUpdate
20 fprobe-ulog
21 iproute
22 iptables
23 kernel-2
24 util-vserver-pl-0
25 vserver-planetlab-f8-i386
26 vsys
27 vsys-scripts
28 "
29
30 # get count of unique values from keys
31 echo $START Hours ago == $DATE
32 c=`ls $PREFIX/$DATE/*--upload | wc -l`
33 if [[ $c -gt 2 ]] ; then
34     for rpm in $key_list ; do 
35         echo $rpm
36         c=`grep -E -h "^rpm_versions .*$rpm" $PREFIX/$DATE/*--upload | wc -l`
37                 if [[ $c -gt 2 ]] ; then
38                     grep -h -E "^rpm_versions .*$rpm" $PREFIX/$DATE/*--upload | \
39                             awk '{  for(o=1;o<=NF;o++){ if ( $o ~ /planetlab/){ print $(o) ; } } }' | \
40                                     awk -F. '{printf("%s.%s.%s\n", $1,$2,$3) }' | grep $rpm | sort | uniq -c | 
41                                 sed -e 's/\./_/g' -e 's/\//_/g' | awk 'BEGIN{total=0} { total += $1 ; print $0 } END { print total, "total"}' | \
42                                 while read value value_name ; do 
43                                         /usr/share/myops/web/collect/server/load-graphite.py --target "myops.rpms.$rpm.$value_name" --date $DATE  --value $value
44                                         sleep .2
45                                 done
46                     not_found=`grep -h -E "^rpm_versions .*" $PREFIX/$DATE/*--upload | grep -v "$rpm" | wc -l`
47                     /usr/share/myops/web/collect/server/load-graphite.py --target "myops.rpms.$rpm.notfound" --date $DATE  --value $not_found
48                 fi
49     done
50 fi
51