function generateData($rrdtool_template, $itemtype, $items_id, $timezone, $time, $enddate='', $todisplay=array()) { global $DB; if ($enddate == '') { $enddate = date('U'); } // Manage timezones $converttimezone = '0'; if (strstr($timezone, '-')) { $timezone_temp = str_replace("-", "", $timezone); $converttimezone = ($timezone_temp * 3600); $timezone = str_replace("-", "+", $timezone); } else if (strstr($timezone, '+')) { $timezone_temp = str_replace("+", "", $timezone); $converttimezone = ($timezone_temp * 3600); $timezone = str_replace("+", "-", $timezone); } // ** Get in table serviceevents $mydatat = array(); $a_labels = array(); $a_ref = array(); $pmServiceevent = new PluginMonitoringServiceevent(); $pmService = new PluginMonitoringService(); $pmService->getFromDB($items_id); $_SESSION['plugin_monitoring_checkinterval'] = PluginMonitoringComponent::getTimeBetween2Checks($pmService->fields['plugin_monitoring_components_id']); $dateformat = "%Y-%m-%d %Hh"; $begin = ''; switch ($time) { case '2h': $begin = date('Y-m-d H:i:s', $enddate - (2 * 3600)); $timecomplete = 0; $dateformat = "(%d)%H:%M"; if (date('m', $enddate) != date('m', $enddate - (2 * 3600))) { $timecomplete = 2; $dateformat = "%m-%d %H:%M"; } $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = array(); if (isset($this->jsongraph_a_ref[$rrdtool_template])) { $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array($this->jsongraph_a_ref[$rrdtool_template], $this->jsongraph_a_convert[$rrdtool_template]), $timecomplete, $todisplay); } else { $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), $timecomplete, $todisplay); } if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; if (!isset($this->jsongraph_a_ref[$rrdtool_template])) { $this->jsongraph_a_ref[$rrdtool_template] = $ret[2]; $this->jsongraph_a_convert[$rrdtool_template] = $ret[3]; } } break; case '12h': $begin = date('Y-m-d H:i:s', $enddate - (12 * 3600)); $timecomplete = 0; $dateformat = "(%d)%H:%M"; if (date('m', $enddate) != date('m', $enddate - (12 * 3600))) { $timecomplete = 2; $dateformat = "%m-%d %H:%M"; } $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), $timecomplete, $todisplay); if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; } break; case '1d': $begin = date('Y-m-d H:i:s', $enddate - (24 * 3600)); $timecomplete = 0; $dateformat = "(%d)%H:%M"; if (date('m', $enddate) != date('m', $enddate - (24 * 3600))) { $timecomplete = 2; $dateformat = "%m-%d %H:%M"; } $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), $timecomplete, $todisplay); if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; } break; case '1w': $begin = date('Y-m-d H:i:s', $enddate - (7 * 24 * 3600)); $dateformat = "%Y-%m-%d %H:%M"; $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), TRUE, $todisplay); if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; $nb_val = count($a_labels); // May have 22 points in the graph $nb_val_period = $nb_val / 75; $mydatatNew = array(); foreach ($mydatat as $name=>$data) { $nb = 1; $val = 0; foreach ($data as $value) { $val += $value; $nb++; if ($nb > $nb_val_period) { $mydatatNew[$name][] = round($val / ($nb - 1), 2); $nb = 1; $val = 0; } } if ($nb > 1 && $nb <= $nb_val_period) { $mydatatNew[$name][] = round($val / ($nb - 1), 2); } } $mydatat = $mydatatNew; $a_labelsNew = array(); $nb = 1; $val = 0; foreach ($a_labels as $value) { if ($nb == 1) { $a_labelsNew[] = $value; } $nb++; if ($nb > $nb_val_period) { $nb = 1; } } $a_labels = $a_labelsNew; } break; case '1m': $begin = date('Y-m-d H:i:s', $enddate - (30 * 24 * 3600)); $dateformat = "%Y-%m-%d %H:%M"; $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), TRUE, $todisplay); if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; $nb_val = count($a_labels); // May have 22 points in the graph $nb_val_period = $nb_val / 75; $mydatatNew = array(); foreach ($mydatat as $name=>$data) { $nb = 1; $val = 0; foreach ($data as $value) { $val += $value; $nb++; if ($nb > $nb_val_period) { $mydatatNew[$name][] = ceil($val / ($nb - 1)); $nb = 1; $val = 0; } } if ($nb > 1 && $nb <= $nb_val_period) { $mydatatNew[$name][] = ceil($val / ($nb - 1)); } } $mydatat = $mydatatNew; $a_labelsNew = array(); $nb = 1; $val = 0; foreach ($a_labels as $value) { if ($nb == 1) { $a_labelsNew[] = $value; } $nb++; if ($nb > $nb_val_period) { $nb = 1; } } $a_labels = $a_labelsNew; } break; case '0y6m': $begin = date('Y-m-d H:i:s', date('U') - ((364 / 2) * 24 * 3600)); $dateformat = "%Y-%m-%d %H:%M"; $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), TRUE, $todisplay); if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; $nb_val = count($a_labels); // May have 22 points in the graph $nb_val_period = $nb_val / 75; $mydatatNew = array(); foreach ($mydatat as $name=>$data) { $nb = 1; $val = 0; foreach ($data as $value) { $val += $value; $nb++; if ($nb > $nb_val_period) { $mydatatNew[$name][] = ceil($val / ($nb - 1)); $nb = 1; $val = 0; } } if ($nb > 1 && $nb <= $nb_val_period) { $mydatatNew[$name][] = ceil($val / ($nb - 1)); } } $mydatat = $mydatatNew; $a_labelsNew = array(); $nb = 1; $val = 0; foreach ($a_labels as $value) { if ($nb == 1) { $a_labelsNew[] = $value; } $nb++; if ($nb > $nb_val_period) { $nb = 1; } } $a_labels = $a_labelsNew; } break; case '1y': $begin = date('Y-m-d H:i:s', date('U') - (365 * 24 * 3600)); $dateformat = "%Y-%m-%d %H:%M"; $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$items_id."' AND `date` > '".$begin."' AND `date` <= '".date('Y-m-d H:i:s', $enddate)."' ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData( $result, $rrdtool_template, $begin, date('Y-m-d H:i:s', $enddate), array(), TRUE, $todisplay); if (is_array($ret)) { $mydatat = $ret[0]; $a_labels = $ret[1]; $a_ref = $ret[2]; $nb_val = count($a_labels); // May have 22 points in the graph $nb_val_period = $nb_val / 75; $mydatatNew = array(); foreach ($mydatat as $name=>$data) { $nb = 1; $val = 0; foreach ($data as $value) { $val += $value; $nb++; if ($nb > $nb_val_period) { $mydatatNew[$name][] = ceil($val / ($nb - 1)); $nb = 1; $val = 0; } } if ($nb > 1 && $nb <= $nb_val_period) { $mydatatNew[$name][] = ceil($val / ($nb - 1)); } } $mydatat = $mydatatNew; $a_labelsNew = array(); $nb = 1; $val = 0; foreach ($a_labels as $value) { if ($nb == 1) { $a_labelsNew[] = $value; } $nb++; if ($nb > $nb_val_period) { $nb = 1; } } $a_labels = $a_labelsNew; } break; } return array($mydatat, $a_labels, $dateformat); }
function getSpecificData($perfdatas_id, $items_id, $which = 'last', $state = "AND `state` = 'OK'") { global $DB; // ** Get in table serviceevents $mydatat = array(); $a_labels = array(); $a_ref = array(); $pmService = new PluginMonitoringService(); $pmService->getFromDB($items_id); $_SESSION['plugin_monitoring_checkinterval'] = PluginMonitoringComponent::getTimeBetween2Checks($pmService->fields['plugin_monitoring_components_id']); $enddate = date('U'); $counters = array(); switch ($which) { case 'first': $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `perf_data` != ''\n " . $state . "\n ORDER BY `date` ASC\n LIMIT 1"; break; case 'last': $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `perf_data` != ''\n " . $state . "\n ORDER BY `date` DESC\n LIMIT 1"; break; default: return $counters; break; } $resultevent = $DB->query($query); $dataevent = $DB->fetch_assoc($resultevent); $result = $DB->query($query); $ret = $this->getData($result, $perfdatas_id, $dataevent['date'], $dataevent['date']); /* if (is_array($ret)) { foreach ($ret[0] as $name=>$data) { $counters[$name] = $data[0]; } } */ if (is_array($ret) && is_array($ret[0]) && is_array($ret[4])) { foreach ($ret[4] as $name => $data) { // Toolbox::logInFile("pm", "$name -> $data = ".$ret[0][$data][0]."\n"); $counter = array(); $counter['id'] = preg_replace("/[^A-Za-z0-9\\-_]/", "", $name); $counter['name'] = $data; $counter['value'] = $ret[0][$data][0]; $counters[] = $counter; } } return $counters; }
function type_other($type = 'average') { global $DB; $pmService = new PluginMonitoringService(); $pmServiceevent = new PluginMonitoringServiceevent(); $pmComponent = new PluginMonitoringComponent(); $pmPerfdataDetail = new PluginMonitoringPerfdataDetail(); $a_date = PluginMonitoringCustomitem_Common::getTimeRange($this->fields); $val = 0; $a_val = array(); $nb_val = 0; $a_tocheck = array('warn' => 0, 'crit' => 0, 'limit' => 0); $a_types = array('warn', 'crit', 'limit'); for ($i = 0; $i < count($a_types); $i++) { if (is_numeric($this->fields['aggregate_' . $a_types[$i]])) { $a_ret[$a_types[$i]] = $this->fields['aggregate_' . $a_types[$i]]; } else { $a_ret[$a_types[$i]] = 0; $a_tocheck[$a_types[$i]] = 1; } } $items = importArrayFromDB($this->fields['aggregate_items']); foreach ($items as $itemtype => $data) { switch ($itemtype) { case 'PluginMonitoringService': foreach ($data as $items_id => $data2) { $pmService->getFromDB($items_id); $_SESSION['plugin_monitoring_checkinterval'] = PluginMonitoringComponent::getTimeBetween2Checks($pmService->fields['plugin_monitoring_components_id']); $pmComponent->getFromDB($pmService->fields['plugin_monitoring_components_id']); $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `date` >= '" . $a_date['begin'] . "'\n ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData($result, $pmComponent->fields['graph_template'], $a_date['begin'], $a_date['end']); foreach ($data2 as $a_perfdatadetails) { $pmPerfdataDetail->getFromDB($a_perfdatadetails['perfdatadetails_id']); $nb_val += count($ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); $val += array_sum($ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); $a_val = array_merge($a_val, $ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); } // for manage warn, crit and limit foreach ($a_tocheck as $other_type => $num_type) { if ($num_type == 1) { $other_items = importArrayFromDB($this->fields['aggregate_' . $other_type]); foreach ($other_items[$itemtype][$items_id] as $a_perfdatadetails) { $pmPerfdataDetail->getFromDB($a_perfdatadetails['perfdatadetails_id']); $a_ret[$other_type] += array_sum($ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); } } } } break; case 'PluginMonitoringComponentscatalog': $pmComponentscatalog = new PluginMonitoringComponentscatalog(); foreach ($data as $items_id => $data2) { $ret = $pmComponentscatalog->getInfoOfCatalog(str_replace('id', '', $items_id)); $a_hosts = $ret[6]; foreach ($data2['PluginMonitoringComponent'] as $items_id_components => $data4) { $query = "SELECT * FROM `glpi_plugin_monitoring_services`\n WHERE `plugin_monitoring_components_id`='" . str_replace('id', '', $items_id_components) . "'\n AND `plugin_monitoring_componentscatalogs_hosts_id` IN\n ('" . implode("','", $a_hosts) . "')\n AND `entities_id` IN (" . $_SESSION['glpiactiveentities_string'] . ")"; $result = $DB->query($query); while ($dataq = $DB->fetch_array($result)) { $pmService->getFromDB($dataq['id']); $_SESSION['plugin_monitoring_checkinterval'] = PluginMonitoringComponent::getTimeBetween2Checks($pmService->fields['plugin_monitoring_components_id']); $pmComponent->getFromDB($dataq['plugin_monitoring_components_id']); $query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $dataq['id'] . "'\n AND `date` >= '" . $a_date['begin'] . "'\n ORDER BY `date`"; $result = $DB->query($query); $ret = $pmServiceevent->getData($result, $pmComponent->fields['graph_template'], $a_date['begin'], $a_date['end']); foreach ($data4 as $a_perfdatadetails) { $pmPerfdataDetail->getFromDB($a_perfdatadetails['perfdatadetails_id']); $nb_val += count($ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); $val += array_sum($ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); $a_val = array_merge($a_val, $ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); } // for manage warn, crit and limit foreach ($a_tocheck as $other_type => $num_type) { if ($num_type == 1) { $other_items = importArrayFromDB($this->fields['aggregate_' . $other_type]); foreach ($other_items[$itemtype][$items_id]['PluginMonitoringComponent'][$items_id_components] as $a_perfdatadetails) { $pmPerfdataDetail->getFromDB($a_perfdatadetails['perfdatadetails_id']); $a_ret[$other_type] += array_sum($ret[0][$pmPerfdataDetail->fields['dsname' . $a_perfdatadetails['perfdatadetails_dsname']]]); } } } } } } break; } } if ($nb_val != 0) { if ($type == 'average') { $val = $val / $nb_val; } else { if ($type == 'median') { sort($a_val); $count = count($a_val); //total numbers in array $middleval = floor(($count - 1) / 2); // find the middle value, or the lowest middle value if ($count % 2) { // odd number, middle is the median $median = $a_val[$middleval]; } else { // even number, calculate avg of 2 medians $low = $arr[$middleval]; $high = $arr[$middleval + 1]; $median = ($low + $high) / 2; } $val = $median; } } } foreach ($a_tocheck as $other_type => $num_type) { if ($num_type == 1) { $a_ret[$other_type] = $a_ret[$other_type] / $nb_val; } } $a_ret['val'] = $val; return $a_ret; }
function generateSyntheseReport($array, $pdf=TRUE) { global $DB; if (count($array) == 0) { return; } $end_date = $array['synthesedate_end']; $end_date_timestamp = strtotime($end_date); $number = $array['synthesenumber']; $period = $array['syntheseperiod']; $componentscatalogs_id = $array['componentscatalogs_id']; $pmComponent = new PluginMonitoringComponent(); $pmUnavailability = new PluginMonitoringUnavailability(); $pmServiceevent = new PluginMonitoringServiceevent(); if ($pdf) { PluginMonitoringReport::beginCapture(); } echo "<table class='tab_cadrehov'>"; foreach ($array['components_id'] as $components_id) { $pmComponent->getFromDB($components_id); array_unshift($array['perfname'][$components_id], 'avaibility'); array_unshift($array['perfname_val'][$components_id], 1); echo '<tr class="tab_bg_1" height="90">'; echo '<th colspan="'.(3 + ($number * 2)).'">'; echo $pmComponent->getName(); echo '</th>'; echo '</tr>'; foreach ($array['perfname'][$components_id] as $num=>$groupname) { echo '<tr class="tab_bg_1">'; echo '<th colspan="'.(3 + ($number * 2)).'">'; if ($groupname == 'avaibility') { echo __('Avaibility', 'monitoring'); } else { echo $groupname; } echo '</th>'; echo '</tr>'; echo '<tr class="tab_bg_1">'; echo '<th rowspan="2">'; echo __('Name'); echo '</th>'; echo '<th rowspan="2">'; echo __('Entity'); echo '</th>'; echo '<th rowspan="2">'; echo __('Itemtype'); echo '</th>'; $a_year = array(); for ($i = $number; $i >= 1;$i--) { $year = date('Y', strtotime("-".$i." ".$period, $end_date_timestamp)); if (!isset($a_year[$year])) { $a_year[$year] = 2; } else { $a_year[$year] += 2; } } foreach ($a_year as $year=>$colspan) { echo '<th colspan="'.$colspan.'">'; echo $year; echo '</th>'; } echo '</tr>'; echo '<tr class="tab_bg_1">'; for ($i = $number; $i >= 1;$i--) { echo '<th colspan="2">'; echo Html::convDate(date('m-d', strtotime("-".$i." ".$period, $end_date_timestamp))); echo "<br/>"; echo Html::convDate(date('m-d', strtotime("-".($i-1)." ".$period, $end_date_timestamp))); echo '</th>'; } echo '</tr>'; $query = "SELECT `glpi_plugin_monitoring_componentscatalogs_hosts`.*, `glpi_plugin_monitoring_services`.`id` as sid FROM `glpi_plugin_monitoring_componentscatalogs_hosts` LEFT JOIN `glpi_plugin_monitoring_services` ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`=`plugin_monitoring_componentscatalogs_hosts_id` WHERE `plugin_monitoring_componentscalalog_id`='".$componentscatalogs_id."' AND `plugin_monitoring_components_id`='".$components_id."'"; $result = $DB->query($query); $rownb = true; while ($data=$DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); if ($groupname == 'avaibility') { $a_times = $pmUnavailability->parseEvents($data['id'], '', date('Y-m-d', strtotime("-".($number + 1)." ".$period, $end_date_timestamp)), date('Y-m-d', strtotime("-".$number." ".$period, $end_date_timestamp))); $previous_value = round(((($a_times[1] - $a_times[0]) / $a_times[1]) * 100), 3); } else { $previous_value = 0; } echo '<tr class="tab_bg'.(($rownb = !$rownb)?'_4':'_1').'">'; echo '<td>'; echo $item->getLink(); echo '</td>'; echo '<td>'; echo Dropdown::getDropdownName("glpi_entities", $item->fields['entities_id']); echo '</td>'; echo '<td>'; echo $item->getTypeName(); echo '</td>'; for ($i = $number; $i >= 1;$i--) { $startdatet = date('Y-m-d', strtotime("-".$i." ".$period, $end_date_timestamp)); $enddatet = date('Y-m-d', strtotime("-".($i-1)." ".$period, $end_date_timestamp)); if ($groupname == 'avaibility') { $a_times = $pmUnavailability->parseEvents($data['id'], '', $startdatet, $enddatet); $value = round(((($a_times[1] - $a_times[0]) / $a_times[1]) * 100), 2); } else { $queryevents = "SELECT * FROM `glpi_plugin_monitoring_serviceevents` WHERE `plugin_monitoring_services_id`='".$data['sid']."' AND `date` >= '".$startdatet."' AND `date` <= '".$enddatet."' ORDER BY `date`"; $resultevents = $DB->query($queryevents); $_SESSION['plugin_monitoring_checkinterval'] = PluginMonitoringComponent::getTimeBetween2Checks($pmComponent->fields['id']); $ret = $pmServiceevent->getData($resultevents, $pmComponent->fields['graph_template'], $startdatet, $enddatet); if (!isset($ret[0][$groupname])) { $value = 0; } else { $value = round(array_sum($ret[0][$groupname]) / count($ret[0][$groupname]), 2); } } $bgcolor = ''; if ($array['perfname_val'][$components_id][$num] == 1) { if ($previous_value < $value) { $bgcolor = 'style="background-color:#d1ffc3"'; } else if ($previous_value > $value) { $bgcolor = 'style="background-color:#ffd1d3"'; } } else { if ($previous_value < $value) { $bgcolor = 'style="background-color:#ffd1d3"'; } else if ($previous_value > $value) { $bgcolor = 'style="background-color:#d1ffc3"'; } } echo '<td '.$bgcolor.'>'; if ($groupname == 'avaibility') { echo $value."%"; } else { if ($value > 3000000000) { echo round($value/1000000000, 2).'T'; } else if ($value > 3000000) { echo round($value/1000000, 2).'M'; } else if ($value > 3000) { echo round($value/1000, 2).'K'; } else { echo $value; } } echo '</td>'; echo '<td '.$bgcolor.'>'; if ($array['perfname_val'][$components_id][$num] == 1) { if ($previous_value < $value) { echo '<img src="../pics/arrow-up-right.png" width="16" />'; } else if ($previous_value == $value) { echo '<img src="../pics/arrow-right.png" width="16" />'; } else if ($previous_value > $value) { echo '<img src="../pics/arrow-down-right.png" width="16" />'; } } else { if ($previous_value < $value) { echo '<img src="../pics/arrow-up-right_inv.png" width="16" />'; } else if ($previous_value == $value) { echo '<img src="../pics/arrow-right.png" width="16" />'; } else if ($previous_value > $value) { echo '<img src="../pics/arrow-down-right_inv.png" width="16" />'; } } $previous_value = $value; echo '</td>'; } echo "</tr>"; } } echo '<tr class="tab_bg_1" height="50">'; echo '<td colspan="'.(3 + ($number * 2)).'">'; echo '</td>'; echo '</tr>'; } echo "</table>"; if ($pdf) { $content = PluginMonitoringReport::endCapture(); PluginMonitoringReport::generatePDF($content, 'L'); } }