2008-10-07 Evi Vanoost <vanooste@rcbi.rochester.edu>

* include/functions_reporting.php: Handle empty and zero values in 
        get_agent_module_sla.

        * include/config_process.php: SLA Period shouldn't be 0 (which is 
        apparently default in the database). If SLA is empty (NULL, 0, false 
        or '') then it get's reset to a default value.

        * godmode/setup/setup.php: SLA Period was hidden because of a miscount

git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1133 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
guruevi 2008-10-07 16:19:15 +00:00
parent 1ff31c5a1a
commit a00b8ca0aa
4 changed files with 58 additions and 33 deletions

View File

@ -1,3 +1,14 @@
2008-10-07 Evi Vanoost <vanooste@rcbi.rochester.edu>
* include/functions_reporting.php: Handle empty and zero values in
get_agent_module_sla.
* include/config_process.php: SLA Period shouldn't be 0 (which is
apparently default in the database). If SLA is empty (NULL, 0, false
or '') then it get's reset to a default value.
* godmode/setup/setup.php: SLA Period was hidden because of a miscount
2008-10-06 Evi Vanoost <vanooste@rcbi.rochester.edu>
* godmode/agentes/configurar_agente.php: Double values in query removed

View File

@ -19,13 +19,12 @@
// Load global vars
require("include/config.php");
if (comprueba_login()) {
audit_db ($config['id_user'], $REMOTE_ADDR, "ACL Violation", "Trying to access Setup Management");
require ("general/noaccess.php");
}
check_login ();
if (! give_acl ($config['id_user'], 0, "PM") || ! dame_admin ($config['id_user'])) {
audit_db ($config['id_user'], $REMOTE_ADDR, "ACL Violation", "Trying to access Setup Management");
require ("general/noaccess.php");
exit;
}
$update_settings = (bool) get_parameter ('update_settings');
@ -90,32 +89,32 @@ $table->data[4][1] = print_input_text ('graph_color2', $config["graph_color2"],
$table->data[5][0] = __('Graph color (max)');
$table->data[5][1] = print_input_text ('graph_color3', $config["graph_color3"], '', 8, 8, true);
$table->data[6][0] = __('SLA period');
$table->data[6][1] = print_input_text ('sla_period', $config["sla_period"], '', 5, 5, true);
$table->data[6][0] = __('SLA period (seconds)');
$table->data[6][1] = print_input_text ('sla_period', $config["sla_period"], '', 8, 8, true);
$table->data[6][0] = __('Max. days before compact data');
$table->data[6][1] = print_input_text ('days_compact', $config["days_compact"], '', 5, 5, true);
$table->data[7][0] = __('Max. days before compact data');
$table->data[7][1] = print_input_text ('days_compact', $config["days_compact"], '', 5, 5, true);
$table->data[7][0] = __('Max. days before purge');
$table->data[7][1] = print_input_text ('days_purge', $config["days_purge"], '', 5, 5, true);
$table->data[8][0] = __('Max. days before purge');
$table->data[8][1] = print_input_text ('days_purge', $config["days_purge"], '', 5, 5, true);
$table->data[8][0] = __('Graphic resolution (1-low, 5-high)');
$table->data[8][1] = print_input_text ('graph_res', $config["graph_res"], '', 5, 5, true);
$table->data[9][0] = __('Graphic resolution (1-low, 5-high)');
$table->data[9][1] = print_input_text ('graph_res', $config["graph_res"], '', 5, 5, true);
$table->data[9][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
$table->data[9][1] = print_input_text ('step_compact', $config["step_compact"], '', 5, 5, true);
$table->data[10][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
$table->data[10][1] = print_input_text ('step_compact', $config["step_compact"], '', 5, 5, true);
$table->data[10][0] = __('Show unknown modules in global view');
$table->data[10][1] = print_checkbox ('show_unknown', 1, $config["show_unknown"], true);
$table->data[11][0] = __('Show unknown modules in global view');
$table->data[11][1] = print_checkbox ('show_unknown', 1, $config["show_unknown"], true);
$table->data[11][0] = __('Show last fired alerts in global view');
$table->data[11][1] = print_checkbox ('show_lastalerts', 1, $config["show_lastalerts"], true);
$table->data[12][0] = __('Show last fired alerts in global view');
$table->data[12][1] = print_checkbox ('show_lastalerts', 1, $config["show_lastalerts"], true);
$table->data[12][0] = __('Style template');
$table->data[12][1] = print_select ($file_styles, 'style', $config["style"], '', '', '', true);
$table->data[13][0] = __('Style template');
$table->data[13][1] = print_select ($file_styles, 'style', $config["style"], '', '', '', true);
$table->data[13][0] = __('Block size for pagination');
$table->data[13][1] = print_input_text ('block_size', $config["block_size"], '', 5, 5, true);
$table->data[14][0] = __('Block size for pagination');
$table->data[14][1] = print_input_text ('block_size', $config["block_size"], '', 5, 5, true);
echo '<form id="form_setup" method="POST" action="index.php?sec=gsetup&amp;sec2=godmode/setup/setup">';
print_input_hidden ('update_settings', 1);

View File

@ -34,9 +34,6 @@ $config["fontpath"] = $config["homedir"]."/reporting/FreeSans.ttf";
// Style (pandora by default)
$config["style"] = "pandora";
// Default period (in secs) for auto SLA calculation (for monitors)
$config["sla_period"] = 604800;
// Read remaining config tokens from DB
if (! mysql_connect ($config["dbhost"], $config["dbuser"], $config["dbpass"])) {
//Non-persistent connection. If you want persistent conn change it to mysql_pconnect()
@ -122,4 +119,9 @@ if (isset ($config['homeurl']) && $config['homeurl'][0] != '/') {
$config['homeurl'] = '/'.$config['homeurl'];
}
if (!isset ($config["sla_period"]) || empty ($config["sla_period"])) {
// Default period (in secs) for auto SLA calculation (for monitors)
$config["sla_period"] = 604800;
}
?>

View File

@ -29,18 +29,33 @@
* @return SLA percentage of the requested module.
*/
function get_agent_module_sla ($id_agent_module, $period, $min_value, $max_value, $date = 0) {
require("config.php");
if (! $date)
if (empty ($date))
$date = time ();
$datelimit = $date - $period; // limit date
$id_agent = get_db_value ('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module);
if (empty ($period))
return false; //We can't calculate a 0 period (division by zero)
$datelimit = $date - $period; // start date
$id_agent = get_db_value ('id_agente', 'tagente_modulo', 'id_agente_modulo', (int) $id_agent_module);
if (empty ($id_agent))
return 0;
//No agent connected to this module. Something bad in the database
/* Get all the data in the interval */
$sql = sprintf ('SELECT * FROM tagente_datos
$sql = sprintf ('SELECT datos, utimestamp FROM tagente_datos
WHERE id_agente = %d AND id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp ASC',
$id_agent, $id_agent_module, $datelimit, $date);
$datas = get_db_all_rows_sql ($sql);
if ($datas === false) {
//No data to calculate on so we return 0.
return 0;
}
$last_data = "";
$total_badtime = 0;
$interval_begin = 0;
@ -49,14 +64,12 @@ function get_agent_module_sla ($id_agent_module, $period, $min_value, $max_value
/* Get also the previous data before the selected interval. */
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data) {
/* Add data to the beginning */
array_unshift ($datas, $previous_data);
$previous_data_timestamp = $previous_data['utimestamp'];
}
if ($datas === false) {
return false;
}
foreach ($datas as $data) {
if ($data["datos"] > $max_value || $data["datos"] < $min_value) {