Changeset 28980 for branches/eam_branches/ipp-20100621/tools/roboczar.pl
- Timestamp:
- Aug 19, 2010, 6:50:13 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20100621/tools/roboczar.pl
r28794 r28980 10 10 use czartool::Gpc1Db; 11 11 use czartool::Pantasks; 12 use czartool::Nebulous; 12 13 use czartool::Czarplot; 13 14 14 15 15 my $period = 60; … … 24 24 my $czarDb = new czartool::CzarDb($czarDbName, "ippdb01", "ipp", "ipp", 0, $save_temps); # TODO last arg here is save_temps, should get as arg 25 25 my $gpc1Db = new czartool::Gpc1Db("gpc1", "ippdb01", "ippuser", "ippuser"); 26 my $nebulous = new czartool::Nebulous($czarDb); 26 27 my $pantasks = new czartool::Pantasks(); 27 my $czarplot = new czartool::Czarplot($czarDb, "%Y%m%d-%H%M%S", "png ", "/tmp", $save_temps);28 my $czarplot = new czartool::Czarplot($czarDb, "%Y%m%d-%H%M%S", "png font \"/usr/share/fonts/corefonts/arial.ttf\" 8", "/tmp", $save_temps); # TODO hardcoded font path 28 29 $czarDb->setDateFormat("%Y%m%d-%H%i%s"); 29 30 … … 41 42 42 43 print "* Updating labels\n"; 43 my @servers = ("stdscience", "distribution", "publishing" );44 my @servers = ("stdscience", "distribution", "publishing", "update"); 44 45 45 46 my $server = undef; … … 91 92 my $faults; 92 93 my $stage; 93 my ($totalNew,$totalFull,$totalFaults);94 94 my $query = undef; 95 95 my $str = undef; 96 my $reverting = 0; 97 my $server = undef; 98 my $rows = undef; 96 my $labels = undef; 97 my $updateLabels = undef; 99 98 my $row = undef; 100 99 my $begin = undef; 101 100 my $end = undef; 102 101 my $priority = undef; 102 my $newState = undef; 103 103 104 104 while (1) { 105 106 updateServerStatus();107 updateLabels();108 if (!$czarDb->getCurrentLabels("stdscience", \$rows)) {next;}109 110 my $size = @{$rows};111 if($size < 1) {112 113 print "* WARNING: no stdscience labels found in Db\n";114 next;115 }116 117 # get priority118 foreach $row ( @{$rows} ) {119 my ($label) = @{$row};120 $priority = $gpc1Db->getPriority($label);121 $czarDb->setLabelPriority($label, $priority);122 }123 105 124 106 # sort out times … … 131 113 } 132 114 133 foreach $stage (@stages) { 134 135 $server = $pantasks->getServerForThisStage($stage); 136 $str = `czartool_revert.pl -s $server -t $stage`; 137 if ($str =~ m/on/) {$reverting = 1;} 138 else {$reverting = 0;} 139 print "* Checking labels for $stage stage\n"; 140 141 $totalNew=$totalFaults=$totalFull=0; 142 foreach $row ( @{$rows} ) { 143 my ($label) = @{$row}; 144 145 chomp($label); 146 147 $new = $gpc1Db->countExposures($label, $stage, "new"); 148 $full = $gpc1Db->countExposures($label, $stage, "full"); 149 $faults = $gpc1Db->countFaults($label, $stage); 150 151 #printf("%ld, %s, %s, %d, %d\n", $currentTime, $label, $stage, $new, $faults); 152 $totalNew += $new; 153 $totalFull += $full; 154 $totalFaults += $faults; 155 156 $czarDb->insertNewTimeData($stage, $label, $new, $full, $faults, $reverting); 157 $czarplot->createTimeSeries($label, $stage, $begin, $end); 115 # check nebulous 116 print "* Checking Nebulous\n"; 117 $nebulous->updateClusterSpaceInfo(); 118 $czarplot->plotDiskUsageHistogram(); 119 updateServerStatus(); 120 121 # check labels 122 updateLabels(); 123 124 # servers to check 125 my @serversToCheck = ("stdscience", "update"); 126 127 my $thisServer = undef; 128 foreach $thisServer (@serversToCheck) { 129 130 if ($thisServer eq "update") {$newState = "update";} 131 else {$newState = "new";} 132 133 # deal with stdscience labels 134 if (!$czarDb->getCurrentLabels($thisServer, \$labels)) {next;} 135 my $size = @{$labels}; 136 if($size > 0) { 137 138 # get priority 139 foreach $row ( @{$labels} ) { 140 my ($label) = @{$row}; 141 $priority = $gpc1Db->getPriority($label); 142 $czarDb->setLabelPriority($label, $priority); 143 } 144 145 updateAllStages($thisServer, $newState, $labels, $begin, $end); 146 createPlots($thisServer, $labels, $begin, $end); 158 147 } 159 160 $czarDb->insertNewTimeData($stage, "all_labels", $totalNew, $totalFull, $totalFaults, $reverting); 161 } 162 163 print "* Generating plots\n"; 164 foreach $row ( @{$rows} ) { 165 my ($label) = @{$row}; 166 167 $czarplot->createTimeSeries($label, undef, $begin, $end); 168 $czarplot->createHistogram($label, $begin, $end); 169 170 #routineChecks($label, "1 HOUR"); 171 } 172 $czarplot->createTimeSeries("all_labels", undef, $begin, $end); 173 $czarplot->createHistogram("all_labels", $begin, $end); 174 foreach $stage (@stages) { 175 176 $czarplot->createTimeSeries("all_labels", $stage, $begin, $end); # TODO must be a neater way... 177 } 148 else { print "* WARNING: no $thisServer labels found in Db\n";} 149 } 150 178 151 print "--------------------------------------------------------------------------\n"; 179 152 print "* Going to sleep\n"; … … 183 156 #sendEmail("roydhenderson\@gmail.com", "roboczar\@ipp.com", "Roboczar update", "Some content"); 184 157 }; 158 } 159 160 ########################################################################### 161 # 162 # Loops through labels and creates time series and histogram plots 163 # 164 ########################################################################### 165 sub createPlots { 166 my ($server, $rows, $begin, $end) = @_; 167 168 my $stage = undef; 169 my $row = undef; 170 171 print "* Generating plots\n"; 172 173 # create plots for each label for each stage 174 foreach $stage (@stages) { 175 foreach $row ( @{$rows} ) { 176 my ($label) = @{$row}; 177 178 chomp($label); 179 $czarplot->createTimeSeries($label, $stage, $begin, $end); 180 } 181 } 182 183 # create plots for each label for all stages 184 foreach $row ( @{$rows} ) { 185 my ($label) = @{$row}; 186 187 $czarplot->createTimeSeries($label, undef, $begin, $end); 188 $czarplot->createHistogram($label, $begin, $end); 189 190 #routineChecks($label, "1 HOUR"); 191 } 192 $czarplot->createTimeSeries("all_".$server."_labels", undef, $begin, $end); 193 $czarplot->createHistogram("all_".$server."_labels", $begin, $end); 194 foreach $stage (@stages) { 195 196 $czarplot->createTimeSeries("all_".$server."_labels", $stage, $begin, $end); # TODO must be a neater way... 197 } 198 } 199 200 ########################################################################### 201 # 202 # Loops through some labels and updates processed/pending/faults in the Db 203 # 204 ########################################################################### 205 sub updateAllStages { 206 my ($labelServer, $newState, $rows, $begin, $end) = @_; 207 208 print "* Updating stage data\n"; 209 my $totalNew = undef; 210 my $totalFaults = undef; 211 my $totalFull = undef; 212 my $stage = undef; 213 my $reverting = 0; 214 my $row = undef; 215 my $new = undef; 216 my $full = undef; 217 my $faults = undef; 218 my $server = undef; 219 my $state = undef; 220 221 foreach $stage (@stages) { 222 223 $server = $pantasks->getServerForThisStage($stage); 224 $pantasks->getRevertStatus($stage, \$reverting); 225 $czarDb->updateRevertStatus($stage, $reverting); 226 227 print "* Checking labels for $stage stage\n"; 228 229 $totalNew=$totalFaults=$totalFull=0; 230 foreach $row ( @{$rows} ) { 231 my ($label) = @{$row}; 232 233 chomp($label); 234 235 $new = $gpc1Db->countExposures($label, $stage, $newState); 236 $full = $gpc1Db->countExposures($label, $stage, "full"); 237 $faults = $gpc1Db->countFaults($label, $stage, $newState); 238 239 #printf("%s %s, %s, %d, %d\n", $labelServer, $label, $stage, $new, $faults); 240 $totalNew += $new; 241 $totalFull += $full; 242 $totalFaults += $faults; 243 244 $czarDb->insertNewTimeData($stage, $label, $new, $full, $faults); 245 } 246 247 $czarDb->insertNewTimeData($stage, "all_".$labelServer."_labels", $totalNew, $totalFull, $totalFaults); 248 } 185 249 } 186 250
Note:
See TracChangeset
for help on using the changeset viewer.
