$ds) { if (!isset($ds['file'])) { $ds['file'] = $graph_def['file']; } elseif (isset($graph_def['index'])) { // Indexed graphs also replace %index% for specific DS $ds['file'] = array_tag_replace($tags, $ds['file']); } if (!isset($ds['draw'])) { $ds['draw'] = "LINE1.5"; } if ($graph_def['rra_min'] === FALSE || $ds['rra_min'] === FALSE) { $ds['rra_min'] = FALSE; } else { $ds['rra_min'] = TRUE; } if ($graph_def['rra_max'] === FALSE || $ds['rra_max'] === FALSE) { $ds['rra_max'] = FALSE; } else { $ds['rra_max'] = TRUE; } $ds_data = $ds_name; $ds['file'] = get_rrd_path($device, $ds['file']); $ds['file_escape'] = rrdtool_escape($ds['file']); if (isset($ds['graph']) && !$ds['graph']) // Some time required skip graphs, only CDEF { if (!empty($ds['cdef'])) { //$ds_name = $ds_name."_c"; //$ds_data = $ds_name; $cmd_cdef .= " CDEF:" . $ds_name . "=" . $ds['cdef']; //$cmd_cdef .= " CDEF:".$ds_name."_min=".$ds['cdef']; //$cmd_cdef .= " CDEF:".$ds_name."_max=".$ds['cdef']; } continue; } $cmd_def .= " DEF:" . $ds_name . "=" . $ds['file_escape'] . ":" . $ds_name . ":AVERAGE"; if ($ds['rra_min']) { $cmd_def .= " DEF:" . $ds_name . "_min=" . $ds['file_escape'] . ":" . $ds_name . ":MIN"; } else { $cmd_def .= " CDEF:" . $ds_name . "_min=" . $ds_name; } if ($ds['rra_max']) { $cmd_def .= " DEF:" . $ds_name . "_max=" . $ds['file_escape'] . ":" . $ds_name . ":MAX"; } else { $cmd_def .= " CDEF:" . $ds_name . "_max=" . $ds_name; } //$graph_return['rrds'][$ds['file']][] = $ds_name; if (!empty($ds['cdef'])) { $ds_name = $ds_name . "_c"; $ds_data = $ds_name; $cmd_cdef .= " CDEF:" . $ds_name . "=" . $ds['cdef']; $cmd_cdef .= " CDEF:" . $ds_name . "_min=" . $ds['cdef']; $cmd_cdef .= " CDEF:" . $ds_name . "_max=" . $ds['cdef']; } if (!empty($ds['invert'])) { $cmd_cdef .= " CDEF:" . $ds_name . "_i=" . $ds_name . ",-1,*"; $cmd_cdef .= " CDEF:" . $ds_name . "_min_i=" . $ds_name . "_min,-1,*"; $cmd_cdef .= " CDEF:" . $ds_name . "_max_i=" . $ds_name . "_max,-1,*"; $ds_data = $ds_name; $ds_name = $ds_name . "_i"; } //if ($ds['ds_graph'] != "yes") /// FIXME $ds['graph'] //{ if (empty($ds['colour'])) { if (!$config['graph_colours'][$graph_def['colours']][$c_i]) { $c_i = 0; } $colour = $config['graph_colours'][$graph_def['colours']][$c_i]; $c_i++; } else { $colour = $ds['colour']; } // label with tag replaces $descr = array_tag_replace($tags, $ds['label']); $descr = rrdtool_escape($descr, $descr_len); if ($ds['draw'] == "AREASTACK") { $ds['draw'] = "AREA"; $ds['stack'] = ":STACK"; } elseif (preg_match("/^LINESTACK([0-9\.]*)/", $ds['ds_draw'], $m)) /// FIXME $ds['draw'] { if ($i == 0) /// FIXME what is $i ? { $ds['draw'] = "LINE$m[1]"; } else { $ds['draw'] = "STACK"; } } $cmd_graph .= ' ' . $ds['draw'] . ':' . $ds_name . '#' . $colour . ':"' . $descr . '"' . $ds['stack']; $ds_unit = (strlen($ds['unit']) ? $ds['unit'] : ''); // Unit text per DS if (isset($ds['num_fmt'])) { $num_fmt = $ds['num_fmt']; } // Numeric format per DS if (is_array($data_show)) { if (in_array("lst", $data_show)) { $cmd_graph .= " GPRINT:" . $ds_data . ":LAST:%" . $num_fmt . "lf" . $mag_unit . $ds_unit; } if (in_array("avg", $data_show)) { $cmd_graph .= " GPRINT:" . $ds_data . ":AVERAGE:%" . $num_fmt . "lf" . $mag_unit . $ds_unit; } if (in_array("min", $data_show)) { $cmd_graph .= " GPRINT:" . $ds_data . "_min:MIN:%" . $num_fmt . "lf" . $mag_unit . $ds_unit; } if (in_array("max", $data_show)) { $cmd_graph .= " GPRINT:" . $ds_data . "_max:MAX:%" . $num_fmt . "lf" . $mag_unit . $ds_unit; } } $cmd_graph .= " COMMENT:'\\l'"; $graph_return['legend_lines']++; if ($ds['line']) { if (is_numeric($ds['line'])) { $line = 'LINE' . $ds['line']; } else { $line = 'LINE1'; } $colour_line = darken_color($colour); //$cmd_graph .= ' LINE1:'.$ds_name.'#'.$colour_line.':"'.$descr.'"'; $cmd_graph .= " $line:$ds_name#$colour_line"; $descr = ''; // Reset descr } //} } $rrd_options .= $cmd_def . $cmd_cdef . $cmd_graph; // EOF