function api_data_preset_rra_item_friendly_name_get($consolidation_function, $steps, $rows) { require_once(CACTI_BASE_PATH . "/include/data_preset/data_preset_rra_constants.php"); require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_rra_info.php"); $cf_types = api_data_preset_rra_cf_type_list(); $step_types = api_data_preset_rra_step_type_list(); $row_types = api_data_preset_rra_row_type_list(); $friendly_name = $cf_types[$consolidation_function] . ": "; if (($consolidation_function == RRA_CF_TYPE_AVERAGE) || ($consolidation_function == RRA_CF_TYPE_MIN) || ($consolidation_function == RRA_CF_TYPE_MAX) || ($consolidation_function == RRA_CF_TYPE_LAST)) { $friendly_name .= "Update every " . strtolower($step_types[$steps]) . " for " . strtolower($row_types[$rows]); } return $friendly_name; }
function _data_preset_rra_item__consolidation_function($field_name_base, $field_value = "", $field_id = 0) { require_once(CACTI_BASE_PATH . "/lib/sys/html_form.php"); require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_rra_info.php"); ?> <tr class="<?php echo field_get_row_style();?>" id="row_field_consolidation_function_<?php echo $field_id;?>"> <td width="50%" class="field-row"> <span class="textEditTitle"><?php echo _("Consolidation Function");?></span><br> <?php echo _("This function will be applied to a group of data points before they are entered into the RRA.");?> </td> <td colspan="2" class="field-row"> <?php form_dropdown($field_name_base, api_data_preset_rra_cf_type_list(), "", "", $field_value, "", "86400", "", "", "update_consolidation_function(this.value, this.parentNode.parentNode.id.replace(\"row_field_consolidation_function_\", \"\"))");?> </td> </tr> <?php }
function rrdtool_function_create($data_source_id, $show_source, $rrd_struc, $syslog_facility = FACIL_POLLER) { require_once(CACTI_BASE_PATH . "/include/data_preset/data_preset_rra_constants.php"); require_once(CACTI_BASE_PATH . "/lib/data_source/data_source_info.php"); require_once(CACTI_BASE_PATH . "/lib/data_preset/data_preset_rra_info.php"); $data_source_path = api_data_source_path_get($data_source_id, true); /* make sure the RRD file does not already exist */ if (($show_source != true) && (file_exists($data_source_path) == true)) { return; } /* get the current data source */ $data_source = api_data_source_get($data_source_id); /* create the "--step" line */ $create_ds = RRD_NL . "--step ". $data_source["polling_interval"] . " " . RRD_NL; /* get a list of valid data source types (COUNTER, GAUGE, etc) */ $data_source_types = api_data_source_type_list(); /* query the data sources to be used in this .rrd file */ $data_source_items = api_data_source_item_list($data_source_id); if (is_array($data_source_items) > 0) { foreach ($data_source_items as $data_source_item) { $create_ds .= "DS:" . $data_source_item["data_source_name"] . ":" . $data_source_types{$data_source_item["data_source_type"]} . ":" . $data_source_item["rrd_heartbeat"] . ":" . $data_source_item["rrd_minimum"] . ":" . (empty($data_source_item["rrd_maximum"]) ? "U" : $data_source_item["rrd_maximum"]) . RRD_NL; } } /* get a list of valid consolidation functions (AVERAGE, MAX, etc) */ $rra_cf_types = api_data_preset_rra_cf_type_list(); /* get a list of RRA's that have been associated with this data source */ $rra_items = api_data_source_rra_item_list($data_source_id); /* if we find that this data source has no RRA associated; get out */ if ((!is_array($rra_items)) || (sizeof($rra_items) == 0)) { log_save(_("There are no RRA's assigned to data_source_id: ") . $data_source_id . ".", SEV_ERROR, FACIL_POLLER); return false; } $create_rra = ""; /* loop through each available RRA for this data source */ foreach ($rra_items as $rra_item) { /* calculate the correct number of steps based on the RRA steps and the polling interval */ $rra_steps = ceil($rra_item["steps"] / $data_source["polling_interval"]); /* calculate the correct number of rows based on the polling interval and the RRA * retention interval */ $rra_rows = ceil($rra_item["rows"] / ($data_source["polling_interval"] * $rra_steps)); if (($rra_item["consolidation_function"] == RRA_CF_TYPE_AVERAGE) || ($rra_item["consolidation_function"] == RRA_CF_TYPE_MIN) || ($rra_item["consolidation_function"] == RRA_CF_TYPE_MAX) || ($rra_item["consolidation_function"] == RRA_CF_TYPE_LAST)) { $create_rra .= "RRA:" . $rra_cf_types{$rra_item["consolidation_function"]} . ":" . $rra_item["x_files_factor"] . ":" . $rra_steps . ":" . $rra_rows . RRD_NL; }else if ($rra_item["consolidation_function"] == RRA_CF_TYPE_HWPREDICT) { $create_rra .= "RRA:" . $rra_cf_types{$rra_item["consolidation_function"]} . ":" . $rra_item["rows"] . ":" . $rra_item["hw_alpha"] . ":" . $rra_item["hw_beta"] . ":" . $rra_item["hw_seasonal_period"] . (empty($rra_item["hw_rra_num"]) ? "" : ":" . $rra_item["hw_rra_num"]) . RRD_NL; }else if (($rra_item["consolidation_function"] == RRA_CF_TYPE_SEASONAL) || ($rra_item["consolidation_function"] == RRA_CF_TYPE_DEVSEASONAL)) { $create_rra .= "RRA:" . $rra_cf_types{$rra_item["consolidation_function"]} . ":" . $rra_item["hw_seasonal_period"] . ":" . $rra_item["hw_gamma"] . ":" . $rra_item["hw_rra_num"] . RRD_NL; }else if ($rra_item["consolidation_function"] == RRA_CF_TYPE_DEVPREDICT) { $create_rra .= "RRA:" . $rra_cf_types{$rra_item["consolidation_function"]} . ":" . $rra_item["rows"] . ":" . $rra_item["hw_rra_num"] . RRD_NL; }else if ($rra_item["consolidation_function"] == RRA_CF_TYPE_FAILURES) { $create_rra .= "RRA:" . $rra_cf_types{$rra_item["consolidation_function"]} . ":" . $rra_item["rows"] . ":" . $rra_item["hw_threshold"] . ":" . $rra_item["hw_window_length"] . ":" . $rra_item["hw_rra_num"] . RRD_NL; } } if ($show_source == true) { return read_config_option("path_rrdtool") . " create" . RRD_NL . "$data_source_path$create_ds$create_rra"; }else{ rrdtool_execute("create $data_source_path $create_ds$create_rra", true, RRDTOOL_OUTPUT_STDOUT, $rrd_struc, $syslog_facility); } }