Changeset 40840 for trunk/ippMonitor/czartool/czarpoll.pl
- Timestamp:
- Jul 23, 2019, 2:24:01 PM (7 years ago)
- File:
-
- 1 edited
-
trunk/ippMonitor/czartool/czarpoll.pl (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippMonitor/czartool/czarpoll.pl
r40834 r40840 102 102 foreach $server (@servers) { 103 103 104 my @dates = @{$pantasks->getDates($server )};104 my @dates = @{$pantasks->getDates($server,'gpc1')}; 105 105 if (@dates) { 106 107 $czarDb->updateServerDates($server, \@dates); 106 $czarDb->updateServerDates($server, \@dates,'gpc1'); 108 107 } 109 108 else { 110 111 print "WARNING: No dates to update for '$server'\n"; 109 print "WARNING: No dates to update for '$server' in gpc1\n"; 110 } 111 112 my @dates2 = @{$pantasks->getDates($server,'gpc2')}; 113 if (@dates2) { 114 $czarDb->updateServerDates($server, \@dates2,'gpc2'); 115 } 116 else { 117 print "WARNING: No dates to update for '$server' in gpc2\n"; 112 118 } 113 119 } … … 126 132 127 133 print "* Updating labels\n"; 128 # my @servers = ("stdscience", "distribution", "publishing", "update");129 134 my @servers = ("stdscience", "distribution"); 130 135 131 136 my @allLabels = (); 132 137 my @allLabels2 = (); 138 my @fields = (); 139 140 #first grab the labels fom the relevant pantasks 133 141 my $server = undef; 134 142 foreach $server (@servers) { 135 my @labels = @{$pantasks->getLabels($server )};143 my @labels = @{$pantasks->getLabels($server,'gpc1')}; 136 144 push (@allLabels, @labels); 137 } 145 146 my @labels2 = @{$pantasks->getLabels($server,'gpc2')}; 147 push (@allLabels2, @labels2); 148 } 149 150 ## adding extra labels from external file 151 my $filename = 'extra_labels.dat'; 152 if (open(my $fh, '<:encoding(UTF-8)', $filename)) { 153 my $header = <$fh>; 154 $header = <$fh>; 155 while (my $row = <$fh>) { 156 chomp $row; 157 @fields = split(' ', $row); 158 if ($fields[1] eq 'gpc1') { 159 push (@allLabels, $fields[0]); 160 } 161 if ($fields[1] eq 'gpc2') { 162 push (@allLabels2, $fields[0]); 163 } 164 } 165 } else { 166 warn "No extra labels found in '$filename' $!"; 167 } 168 169 # Now, grab the priorities for each label 170 my @priorities = (); 171 my $row = undef; 172 my $label = undef; 173 my $priority = undef; 174 foreach $label ( @allLabels ) { 175 $priority = $gpc1Db->getPriority($label); 176 push(@priorities, $priority); 177 } 178 179 #also grab gpc2 priorities from the gpc2 Label table 180 my @priorities2 = (); 181 my $priority2 = undef; 182 foreach $label ( @allLabels2 ) { 183 $priority2 = $gpc2Db->getPriority($label); 184 push(@priorities2, $priority2); 185 } 186 187 #sort labels by priority 188 my @idx = sort {$priorities[$a] <=> $priorities[$b]} 0 ..$#priorities; 189 @allLabels = @allLabels[@idx]; 190 @priorities = @priorities[@idx]; 191 192 my @idx2 = sort {$priorities2[$a] <=> $priorities2[$b]} 0 ..$#priorities2; 193 @allLabels2 = @allLabels2[@idx2]; 194 @priorities2 = @priorities2[@idx2]; 138 195 139 196 # store them all in stdscience: 140 197 $server = "stdscience"; 141 198 if (@allLabels) { 142 $czarDb->updateCurrentLabels($server, \@allLabels );199 $czarDb->updateCurrentLabels($server, \@allLabels,'gpc1', \@priorities); 143 200 } else { 144 print "WARNING: No labels to update for '$server'\n"; 145 } 201 print "WARNING: No labels to update for gpc1 for '$server'\n"; 202 } 203 204 if (@allLabels2) { 205 $czarDb->updateCurrentLabels($server, \@allLabels2,'gpc2', \@priorities2); 206 } else { 207 print "WARNING: No labels to update for gpc2 for '$server'\n"; 208 } 209 return(\@allLabels,\@allLabels2); 146 210 } 147 211 … … 160 224 my $running = undef; 161 225 foreach $server (@{$servers}) { 162 163 $pantasks->getServerStatus($server, \$alive, \$running); 164 $czarDb->updateServerStatus($server, $alive, $running); 165 } 226 $pantasks->getServerStatus($server,'gpc1', \$alive, \$running); 227 $czarDb->updateServerStatus($server,'gpc1', $alive, $running); 228 $pantasks->getServerStatus($server,'gpc2', \$alive, \$running); 229 $czarDb->updateServerStatus($server,'gpc2', $alive, $running); 230 } 166 231 } 167 232 … … 182 247 my $str = undef; 183 248 my $labels = undef; 249 my $labels2 = undef; 184 250 my $updateLabels = undef; 185 251 my $row = undef; … … 187 253 my $end = undef; 188 254 my $priority = undef; 255 my $priority2 = undef; 189 256 my $newState = undef; 190 257 my $nsStatus = undef; … … 227 294 228 295 # now cleanup tables from yesterday and optimize 229 print "* Performing database cleanup\n"; 230 $czarDb->cleanupDateRange($yesterday, $yesterday, $config->getCzarCleanupInterval()); 231 print "* Optimizing the database\n"; 232 $czarDb->optimize(); 296 #TdB20190703: The ipp113 and ipp117 instances of czarpoll use the same stage DBs in czarDB. 297 #Therefore, it makes no sense to run the cleanup+optimising twice 298 #print "* Performing database cleanup\n"; 299 #$czarDb->cleanupDateRange($yesterday, $yesterday, $config->getCzarCleanupInterval()); 300 #print "* Optimizing the database\n"; 301 #$czarDb->optimize(); 233 302 $lastDayDailyTasks = $yesterday; 234 303 } … … 237 306 # check nightly science status 238 307 print "* Checking nightly science status\n"; 239 if (!$pantasks->getNightlyScienceStatus(\$nsStatus)) {$nsStatus = "Unknown";} 240 $czarDb->updateNightlyScience($nsStatus); 308 if (!$pantasks->getNightlyScienceStatus(\$nsStatus,'gpc1')) {$nsStatus = "Unknown";} 309 $czarDb->updateNightlyScience($nsStatus,'gpc1'); 310 if (!$pantasks->getNightlyScienceStatus(\$nsStatus,'gpc2')) {$nsStatus = "Unknown";} 311 $czarDb->updateNightlyScience($nsStatus,'gpc2'); 241 312 242 313 # check nebulous … … 252 323 253 324 # check labels 254 updateLabels(); 325 my ($labels, $labels2) = updateLabels(); 326 my @labels = @$labels; 327 my @labels2 = @$labels2; 255 328 256 329 # servers to check … … 265 338 266 339 # deal with stdscience labels 267 if (!$czarDb->getCurrentLabels($thisServer, \$labels)) {next;}268 340 my $size = @{$labels}; 269 341 if($size > 0) { 270 271 # get priority 272 foreach $row ( @{$labels} ) { 273 my ($label) = @{$row}; 274 # for now use priorities from gpc1 database 275 $priority = $gpc1Db->getPriority($label); 276 $czarDb->setLabelPriority($label, $priority); 277 } 278 279 updateAllStages($thisServer, $newState, $labels, $begin, $end); 342 updateAllStages($thisServer, $newState, $labels,$labels2, $begin, $end); 280 343 if ($thisServer eq "stdscience") { 281 344 createPlots($thisServer, $plotter1, $labels, $begin, $end); 282 createPlots($thisServer, $plotter2, $labels , $begin, $end);345 createPlots($thisServer, $plotter2, $labels2, $begin, $end); 283 346 } 284 347 } … … 376 439 # # $plotter->createTimeSeries($label, undef, $begin, $end, 1, 1, 1); 377 440 378 # #TdB 20190411: Make the all stages plots for the nightlyscience labels only379 441 # if ($label =~ m/nightlyscience/) { 380 442 # $plotter->createTimeSeries($label, undef, $begin, $end, 1, 0, 1); … … 382 444 #} 383 445 384 $allServerLabels = "all_".$server."_labels"; 385 386 $plotter->createTimeSeries($allServerLabels, undef, $begin, $end, 1, 0, 1); 387 388 #TdB 20190411: We are turning off these plots for the time being. They take up a lot of time and are rarely looked at. If need be, can be generated on the fly using czartool. 446 $allServerLabels = $server."_labels"; 447 448 $plotter->createTimeSeries($allServerLabels, undef, $begin, $end, 1, 1, 1); 449 389 450 foreach $stage (@stages) { 390 $plotter->createTimeSeries($allServerLabels, $stage, $begin, $end, 1, 0, 1); # TODO must be a neater way...451 $plotter->createTimeSeries($allServerLabels, $stage, $begin, $end, 1, 0, 0); # TODO must be a neater way... 391 452 } 392 453 } … … 398 459 ########################################################################### 399 460 sub updateAllStages { 400 my ($labelServer, $newState, $rows, $ begin, $end) = @_;461 my ($labelServer, $newState, $rows, $rows2, $begin, $end) = @_; 401 462 402 463 print "* Updating stage data\n"; … … 419 480 foreach $stage (@stages) { 420 481 $server = $pantasks->getServerForThisStage($stage); 421 $pantasks->getRevertStatus($stage, \$reverting); 422 $czarDb->updateRevertStatus($stage, $reverting); 482 $pantasks->getRevertStatus($stage,'gpc1', \$reverting); 483 $czarDb->updateRevertStatus($stage,'gpc1', $reverting); 484 485 $pantasks->getRevertStatus($stage,'gpc2', \$reverting); 486 $czarDb->updateRevertStatus($stage,'gpc2', $reverting); 423 487 424 488 print "* Checking labels for $stage stage\n"; … … 427 491 if (($stage eq 'summitExp')||($stage eq 'downloadExp')||($stage eq 'newExp')||($stage eq 'rawExp')) { 428 492 ($new,$full,$faults) = $gpc1Db->countRawExposures($today,$stage); 429 $czarDb->insertNewTimeData($stage, "all_".$labelServer."_labels", 'gpc1', $new, $full, $faults);493 $czarDb->insertNewTimeData($stage, $labelServer."_labels", 'gpc1', $new, $full, $faults); 430 494 431 495 ($new,$full,$faults) = $gpc2Db->countRawExposures($today,$stage); 432 $czarDb->insertNewTimeData($stage, "all_".$labelServer."_labels", 'gpc2', $new, $full, $faults);496 $czarDb->insertNewTimeData($stage, $labelServer."_labels", 'gpc2', $new, $full, $faults); 433 497 434 498 next; 435 499 } 436 500 437 501 #count the number of exposures under each label, and their faults 438 502 $totalNew1=$totalFaults1=$totalFull1=0; 439 $totalNew2=$totalFaults2=$totalFull2=0;440 503 foreach $row ( @{$rows} ) { 441 my ($label) = @{$row};504 my ($label) = $row; 442 505 443 506 chomp($label); … … 447 510 $full = $gpc1Db->countExposures($label, $stage, "full"); 448 511 $faults = $gpc1Db->countFaults($label, $stage, $newState); 449 #printf("%s %s, %s, %d, %d\n", $labelServer, $label, $stage, $new, $faults);450 512 $totalNew1 += $new; 451 513 $totalFull1 += $full; … … 453 515 454 516 $czarDb->insertNewTimeData($stage, $label, 'gpc1', $new, $full, $faults); 455 517 } 518 519 $totalNew2=$totalFaults2=$totalFull2=0; 520 foreach $row ( @{$rows2} ) { 521 my ($label) = $row; 522 523 chomp($label); 524 525 # Move this to a function and pass in the database 456 526 $new = $gpc2Db->countExposures($label, $stage, $newState); 457 527 $full = $gpc2Db->countExposures($label, $stage, "full"); 458 528 $faults = $gpc2Db->countFaults($label, $stage, $newState); 459 #printf("%s %s, %s, %d, %d\n", $labelServer, $label, $stage, $new, $faults);460 529 $totalNew2 += $new; 461 530 $totalFull2 += $full; … … 465 534 } 466 535 467 $czarDb->insertNewTimeData($stage, "all_".$labelServer."_labels", 'gpc1', $totalNew1, $totalFull1, $totalFaults1);468 $czarDb->insertNewTimeData($stage, "all_".$labelServer."_labels", 'gpc2', $totalNew2, $totalFull2, $totalFaults2);469 } 470 } 471 536 $czarDb->insertNewTimeData($stage, $labelServer."_labels", 'gpc1', $totalNew1, $totalFull1, $totalFaults1); 537 $czarDb->insertNewTimeData($stage, $labelServer."_labels", 'gpc2', $totalNew2, $totalFull2, $totalFaults2); 538 } 539 } 540
Note:
See TracChangeset
for help on using the changeset viewer.
