IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 19, 2010, 6:50:13 PM (16 years ago)
Author:
eugene
Message:

updates from trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20100621/tools/roboczar.pl

    r28794 r28980  
    1010use czartool::Gpc1Db;
    1111use czartool::Pantasks;
     12use czartool::Nebulous;
    1213use czartool::Czarplot;
    13 
    1414
    1515my $period = 60;
     
    2424my $czarDb = new czartool::CzarDb($czarDbName, "ippdb01", "ipp", "ipp", 0, $save_temps); # TODO last arg here is save_temps, should get as arg
    2525my $gpc1Db = new czartool::Gpc1Db("gpc1", "ippdb01", "ippuser", "ippuser");
     26my $nebulous = new czartool::Nebulous($czarDb);
    2627my $pantasks = new czartool::Pantasks();
    27 my $czarplot = new czartool::Czarplot($czarDb, "%Y%m%d-%H%M%S", "png", "/tmp", $save_temps);
     28my $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
    2829$czarDb->setDateFormat("%Y%m%d-%H%i%s");
    2930
     
    4142
    4243    print "* Updating labels\n";
    43     my @servers = ("stdscience", "distribution", "publishing");
     44    my @servers = ("stdscience", "distribution", "publishing", "update");
    4445
    4546    my $server = undef;
     
    9192    my $faults;
    9293    my $stage;
    93     my ($totalNew,$totalFull,$totalFaults);
    9494    my $query = undef;
    9595    my $str = undef;
    96     my $reverting = 0;
    97     my $server = undef;
    98     my $rows = undef;
     96    my $labels = undef;
     97    my $updateLabels = undef;
    9998    my $row = undef;
    10099    my $begin = undef;
    101100    my $end = undef;
    102101    my $priority = undef;
     102    my $newState = undef;
    103103
    104104    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 priority
    118         foreach $row ( @{$rows} ) {
    119             my ($label) = @{$row};
    120             $priority = $gpc1Db->getPriority($label);
    121             $czarDb->setLabelPriority($label, $priority);
    122         }
    123105
    124106        # sort out times
     
    131113        }
    132114
    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);
    158147            }
    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
    178151        print "--------------------------------------------------------------------------\n";
    179152        print "* Going to sleep\n";
     
    183156        #sendEmail("roydhenderson\@gmail.com", "roboczar\@ipp.com", "Roboczar update", "Some content");
    184157    };
     158}
     159
     160###########################################################################
     161#
     162# Loops through labels and creates time series and histogram plots
     163#
     164###########################################################################
     165sub 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###########################################################################
     205sub 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    }
    185249}
    186250
Note: See TracChangeset for help on using the changeset viewer.