ASNMTAP
view release on metacpan or search on metacpan
applications/htmlroot/cgi-bin/detailedStatisticsReportGenerationAndCompareResponsetimeTrends.pl view on Meta::CPAN
my $details = (defined $cgi->param('details')) ? $cgi->param('details') : 'off';
my $comments = (defined $cgi->param('comments')) ? $cgi->param('comments') : 'off';
my $perfdata = (defined $cgi->param('perfdata')) ? $cgi->param('perfdata') : 'off';
my $topx = (defined $cgi->param('topx')) ? $cgi->param('topx') : 'off';
my $pf = (defined $cgi->param('pf')) ? $cgi->param('pf') : 'off';
my $formatOutput = (defined $cgi->param('formatOutput')) ? $cgi->param('formatOutput') : 'html';
my $htmlToPdf = (defined $cgi->param('htmlToPdf')) ? $cgi->param('htmlToPdf') : 0;
my ($pageDir, $environment) = split (/\//, $pagedir, 2);
$environment = 'P' unless (defined $environment);
if ( defined $cgi->param('endDate') and $cgi->param('endDate') ) { $endDate = $cgi->param('endDate'); } else { $endDate = ''; }
my $htmlTitle = ( ( $selDetailed eq 'on' ) ? 'Detailed Statistics and Report Generation' : 'Compare Response Time Trends' );
# User Session and Access Control
my ($sessionID, $iconAdd, $iconDelete, $iconDetails, $iconEdit, $iconQuery, $iconTable, $errorUserAccessControl, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, $subTitle) = user_session_and_access_control (1, 'guest', $c...
# Serialize the URL Access Parameters into a string
my $urlAccessParameters = "pagedir=$pagedir&pageset=$pageset&debug=$debug&CGISESSID=$sessionID&detailed=$selDetailed&catalogID=$CcatalogID&catalogIDreload=$CcatalogIDreload&uKey1=$uKey1&uKey2=$uKey2&uKey3=$uKey3&startDate=$startDate&endDate=$endDate&...
# Debug information
print "<pre>pagedir : $pagedir<br>pageset : $pageset<br>debug : $debug<br>CGISESSID : $sessionID<br>detailed : $selDetailed<br>catalog ID : $CcatalogID<br>catalog ID reload : $CcatalogIDreload<br>uKey1 : $uKey1<br>uKey2 ...
unless ( defined $errorUserAccessControl ) {
if ( $formatOutput eq 'pdf' and ! $htmlToPdf ) {
my $url = "$HTTPSURL/cgi-bin/htmlToPdf.pl?HTMLtoPDFprg=$HTMLTOPDFPRG&HTMLtoPDFhow=$HTMLTOPDFHOW&scriptname=". $ENV{SCRIPT_NAME} ."&". encode_html_entities('U', $urlAccessParameters);
print <<EndOfHtml;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>$htmlTitle</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="refresh" content="1;url=$url">
<link rel="stylesheet" type="text/css" href="$HTTPSURL/asnmtap.css">
</head>
<BODY>
</BODY>
</HTML>
EndOfHtml
exit;
}
my ($rv, $dbh, $sth, $uKey, $sqlQuery, $sqlSelect, $sqlAverage, $sqlInfo, $sqlErrors, $sqlWhere, $sqlPeriode);
my ($printerFriendlyOutputBox, $formatOutputSelect, $catalogIDSelect, $uKeySelect1, $uKeySelect2, $uKeySelect3, $images);
my ($subtime, $endTime, $duration, $seconden, $status, $statusMessage, $title, $Title, $shortDescription, $rest, $dummy, $count);
my ($averageQ, $numbersOfTestsQ, $startDateQ, $stepQ, $endDateQ, $errorMessage, $chartOrTableChecked);
my ($checkbox, $tables, $shortDescriptionTextArea, $infoTable, $topxTable, $errorList, $errorDetailList, $commentDetailList, $perfdataDetailList, $responseTable, $goodDate);
my ($fromto, $years, $weeks, $months, $quarters, $slaWindows, $selectedYear, $selectedWeek, $selectedMonth, $selectedQuarter, $slaWindow, $i);
my @arrMonths = qw(January Februari March April May June July August September October November December);
# open connection to database and query data
$rv = 1;
$dbh = DBI->connect("dbi:mysql:$DATABASE:$SERVERNAMEREADONLY:$SERVERPORTREADONLY", "$SERVERUSERREADONLY", "$SERVERPASSREADONLY" ) or $rv = error_trap_DBI(*STDOUT, "Cannot connect to the database", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, ...
if ( $dbh and $rv ) {
$uKey1 = $uKey2 = $uKey3 = 'none' if ( $CcatalogIDreload );
$sqlQuery = "select catalogID, catalogName from $SERVERTABLCATALOG where not catalogID = '$CATALOGID' and activated = '1' order by catalogName asc";
($rv, $catalogIDSelect, undef) = create_combobox_from_DBI ($rv, $dbh, $sqlQuery, 1, '', $CcatalogID, 'catalogID', $CATALOGID, '-Parent-', '', 'onChange="javascript:submitForm();"', $pagedir, $pageset, $htmlTitle, $subTitle, $sessionID, $debug);
$sqlQuery = "select uKey, concat( LTRIM(SUBSTRING_INDEX(title, ']', -1)), ' (', $SERVERTABLENVIRONMENT.label, ')' ) as optionValueTitle from $SERVERTABLPLUGINS, $SERVERTABLENVIRONMENT where $SERVERTABLPLUGINS.catalogID = '$CcatalogID' and $SERVER...
$sth = $dbh->prepare( $sqlQuery ) or $rv = error_trap_DBI(*STDOUT, "Cannot dbh->prepare: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID);
$sth->execute() or $rv = error_trap_DBI(*STDOUT, "Cannot sth->execute: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID) if $rv;
$sth->bind_columns( \$uKey, \$title) or $rv = error_trap_DBI(*STDOUT, "Cannot sth->bind_columns: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID) if $rv;
if ( $rv ) {
$dummy = ($uKey1 eq 'none') ? " selected" : '';
$uKeySelect1 = " <option value=\"none\"$dummy>-Select-</option>\n";
$dummy = ($uKey2 eq 'none') ? " selected" : '';
$uKeySelect2 .= " <option value=\"none\"$dummy>-Select-</option>\n";
$dummy = ($uKey3 eq 'none') ? " selected" : '';
$uKeySelect3 .= " <option value=\"none\"$dummy>-Select-</option>\n";
while( $sth->fetch() ) {
if ($uKey eq $uKey1 and $selDetailed eq 'on') {
$htmlTitle = "Results for $title from $CcatalogID";
$Title = "$title from $CcatalogID";
}
$dummy = ($uKey eq $uKey1) ? " selected" : '';
$uKeySelect1 .= " <option value=\"$uKey\"$dummy>$title</option>\n";
$dummy = ($uKey eq $uKey2) ? " selected" : '';
$uKeySelect2 .= " <option value=\"$uKey\"$dummy>$title</option>\n";
$dummy = ($uKey eq $uKey3) ? " selected" : '';
$uKeySelect3 .= " <option value=\"$uKey\"$dummy>$title</option>\n";
}
$sth->finish() or $rv = error_trap_DBI(*STDOUT, "Cannot sth->finish", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID);
if ($htmlToPdf) {
print <<EndOfHtml;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>$htmlTitle</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="$HTTPSURL/asnmtap.css">
</head>
<BODY TEXT="#000000">
EndOfHtml
} else {
print_header (*STDOUT, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', 'F', "<script type=\"text/javascript\" language=\"JavaScript\" src=\"$HTTPSURL/AnchorPosition.js\"></script>\n <script type=\"text/javascript\" language=\"JavaScript...
}
# Section: FromTo
$dummy = ($inputType eq "fromto") ? ' checked' : '';
$fromto = "<input type=\"radio\" name=\"inputType\" value=\"fromto\"$dummy>From:";
# Section: Years
$dummy = ($inputType eq "year") ? ' checked' : '';
$years = "<input type=\"radio\" name=\"inputType\" value=\"year\"$dummy>Year:</td><td>\n";
$years .= " <select name=\"year\">\n";
($selectedWeek, $selectedYear) = Week_of_Year( $currentYear, $currentMonth, $currentDay );
$selectedYear = $selYear if ($selYear != 0);
my ($firstSelectedYear, undef, undef) = split (/-/, $FIRSTSTARTDATE);
for ($i = $firstSelectedYear; $i <= $currentYear; $i++) {
$dummy = ($i == $selectedYear) ? " selected" : '';
$years .= " <option value=\"". $i ."\"$dummy>". $i ."</option>\n";
}
$years .= " </select>";
# Section: Weeks
$dummy = ($inputType eq "week") ? ' checked' : '';
$weeks = "<input type=\"radio\" name=\"inputType\" value=\"week\"$dummy>Week:</td><td>";
$weeks .= " <select name=\"week\">\n";
$selectedWeek = $selWeek if ($selWeek != 0);
for ($i = 1; $i <= 53; $i++) {
$dummy = ($i == $selectedWeek) ? " selected" : '';
$weeks .= " <option value=\"". $i ."\"$dummy>". $i ."</option>\n";
}
$weeks .= " </select>\n";
# Section: Months
$dummy = ($inputType eq "month") ? ' checked' : '';
$months = "<input type=\"radio\" name=\"inputType\" value=\"month\"$dummy>Month:</td><td>\n";
$months .= " <select name=\"month\">\n";
$selectedMonth = ($selMonth == 0) ? $localMonth : $selMonth - 1;
for ($i = 0; $i < 12; $i++) {
$dummy = ($i == $selectedMonth) ? " selected" : '';
$months .= " <option value=\"". ($i+1) ."\"$dummy>". $arrMonths[$i] ."</option>\n";
}
$months .= " </select>\n";
# Section: Quarters
$dummy = ($inputType eq "quarter") ? ' checked' : '';
$quarters = "<input type=\"radio\" name=\"inputType\" value=\"quarter\"$dummy>Quarter:</td><td>\n";
$quarters .= " <select name=\"quarter\">\n";
$selectedQuarter = ($selQuarter == 0) ? (int (($localMonth + 2) / 3)) : $selQuarter;
for ($i = 1; $i <= 4; $i++) {
$dummy = ($i == $selectedQuarter) ? " selected" : '';
$quarters .= " <option value=\"". $i ."\"$dummy>". $i ."</option>\n";
}
$quarters .= " </select>\n";
# Section: SLA windows
($rv, $slaWindows, undef) = create_combobox_from_DBI ($rv, $dbh, "select SQL_NO_CACHE timeperiodID, timeperiodName from $SERVERTABLTIMEPERIODS where catalogID = '$CcatalogID' and activated = 1 order by timeperiodName", 1, '', $timeperiodID, 'ti...
$sqlPeriode = '';
if ( $timeperiodID > 1 ) {
$sqlQuery = "select SQL_NO_CACHE timeperiodName, sunday, monday, tuesday, wednesday, thursday, friday, saturday from $SERVERTABLTIMEPERIODS where catalogID = '$CcatalogID' and timeperiodID = '$timeperiodID'";
$sth = $dbh->prepare( $sqlQuery ) or $rv = error_trap_DBI(*STDOUT, "Cannot dbh->prepare: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID);
$sth->execute() or $rv = error_trap_DBI(*STDOUT, "Cannot sth->execute: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID) if $rv;
if ( $rv ) {
($slaWindow, my ($sunday, $monday, $tuesday, $wednesday, $thursday, $friday, $saturday)) = $sth->fetchrow_array() or $rv = error_trap_DBI(*STDOUT, "Cannot $sth->fetchrow_array: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, ...
$sth->finish() or $rv = error_trap_DBI(*STDOUT, "Cannot sth->finish: $sqlQuery", $debug, $pagedir, $pageset, $htmlTitle, $subTitle, 3600, '', $sessionID);
$sqlPeriode = create_sql_query_from_range_SLA_window ($sunday, $monday, $tuesday, $wednesday, $thursday, $friday, $saturday);
}
}
# Components for the selection of the charts - - - - - - - - - - - -
$checkbox = $tables = '';
$chartOrTableChecked = 0;
$errorMessage = "<br>Select application<br>\n" if ($uKey1 eq 'none');
if ( $selDetailed eq 'on') {
if ($statuspie eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
$images .= "<br><center><img src=$HTTPSURL/cgi-bin/generateChart.pl?chart=Status&".encode_html_entities('U', $urlAccessParameters)."></center>\n" if ($uKey1 ne 'none');
} else {
$dummy = '';
}
$checkbox .= " <input type=\"checkbox\" name=\"statuspie\"$dummy> Status\n";
if ($errorpie eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
$images .= "<br><center><img src=$HTTPSURL/cgi-bin/generateChart.pl?chart=ErrorDetails&".encode_html_entities('U', $urlAccessParameters)."></center>\n" if ($uKey1 ne 'none');
} else {
$dummy = '';
}
$checkbox .= " <input type=\"checkbox\" name=\"errorpie\"$dummy> Error Details\n";
if ($bar eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
$images .= "<br><center><img src=$HTTPSURL/cgi-bin/generateChart.pl?chart=Bar&".encode_html_entities('U', $urlAccessParameters)."></center>\n" if ($uKey1 ne 'none');
} else {
$dummy = '';
}
$checkbox .= " <input type=\"checkbox\" name=\"bar\"$dummy> Bar\n";
}
if ($hourlyAvg eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
$images .= "<br><center><img src=$HTTPSURL/cgi-bin/generateChart.pl?chart=HourlyAverage&".encode_html_entities('U', $urlAccessParameters)."></center>\n" if ($uKey1 ne 'none');
} else {
$dummy = '';
}
$checkbox .= " <input type=\"checkbox\" name=\"hourlyAvg\"$dummy> Hourly Average \n";
if ($dailyAvg eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
$images .= "<br><center><img src=$HTTPSURL/cgi-bin/generateChart.pl?chart=DailyAverage&".encode_html_entities('U', $urlAccessParameters)."></center>\n" if ($uKey1 ne 'none');
} else {
$dummy = '';
}
$checkbox .= " <input type=\"checkbox\" name=\"dailyAvg\"$dummy> Daily Average (long term stats)";
$dummy = ($pf eq 'on') ? ' checked' : '';
$printerFriendlyOutputBox = "<input type=\"checkbox\" name=\"pf\"$dummy> Printer friendly output\n";
my $comboboxSelectKeysAndValuesPairs = 'html=>HTML';
$comboboxSelectKeysAndValuesPairs .= '|pdf=>PDF' if ( $HTMLTOPDFPRG ne '<nihil>' and $HTMLTOPDFHOW ne '<nihil>' );
$formatOutputSelect = create_combobox_from_keys_and_values_pairs ($comboboxSelectKeysAndValuesPairs, 'V', 0, $formatOutput, 'formatOutput', '', '', '', '', $debug);
my ($numberOfDays, $sqlStartDate, $sqlEndDate, $yearFrom, $monthFrom, $dayFrom, $yearTo, $monthTo, $dayTo);
($goodDate, $sqlStartDate, $sqlEndDate, $numberOfDays) = get_sql_startDate_sqlEndDate_numberOfDays_test ($STRICTDATE, $FIRSTSTARTDATE, $inputType, $selYear, $selQuarter, $selMonth, $selWeek, $startDate, $endDate, $currentYear, $currentMonth, $c...
$errorMessage .= "<br><font color=\"Red\">Wrong Startdate and/or Enddate</font><br>" unless ( $goodDate );
if ( $selDetailed eq 'on' ) {
if ($details eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
} else {
$dummy = '';
}
$tables .= " <input type=\"checkbox\" name=\"details\"$dummy> Show Details\n";
if ($comments eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
} else {
$dummy = '';
}
$tables .= " <input type=\"checkbox\" name=\"comments\"$dummy> Show Comments\n";
if ( $PERFPARSEENABLED ) {
if ($perfdata eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
} else {
$dummy = '';
}
$tables .= " <input type=\"checkbox\" name=\"perfdata\"$dummy> Show Performance Data\n";
}
if ($topx eq 'on') {
$dummy = " checked";
$chartOrTableChecked = 1;
} else {
$dummy = '';
}
$tables .= " <input type=\"checkbox\" name=\"topx\"$dummy> Show Top 20 Slow tests<br>";
# Sql init & Query's - - - - - - - - - - - - - - - - - - - - - -
if ((($details eq 'on') or ($comments eq 'on') or ($perfdata eq 'on') or ($topx eq 'on')) and ! defined $errorMessage) {
$sqlSelect = "select SQL_NO_CACHE startDate as startDateQ, startTime, endDate as endDateQ, endTime, duration, status, statusMessage";
$sqlAverage = "select SQL_NO_CACHE avg(time_to_sec(duration)) as average";
$sqlErrors = "select SQL_NO_CACHE statusmessage, count(statusmessage) as aantal";
$sqlWhere = "WHERE catalogID='$CcatalogID' and uKey = '$uKey1'";
$sqlPeriode = "AND startDate BETWEEN '$sqlStartDate' AND '$sqlEndDate' $sqlPeriode " if (defined $sqlStartDate and defined $sqlEndDate);
}
my ($numbersOfTests, $step, $average);
my $forceIndex = "force index (key_startDate)"; $forceIndex = '';
# Short Description - - - - - - - - - - - - - - - - - - - - - - - -
if ( $uKey1 ne 'none' ) {
$sqlQuery = "select SQL_NO_CACHE shortDescription from $SERVERTABLPLUGINS WHERE catalogID = '$CcatalogID' and uKey = '$uKey1'";
$sth = $dbh->prepare( $sqlQuery ) or $rv = error_trap_DBI("", "Cannot dbh->prepare: $sqlQuery", $debug, '', "", '', "", -1, '', $sessionID);
( run in 2.021 seconds using v1.01-cache-2.11-cpan-2398b32b56e )