<?php

# Define some colors

$red        = '#FF0000';
$magenta    = '#FF00FF';
$navy       = '#000080';
$green      = '#008000';
$yellow     = '#FFFF00';
$orangered  = '#FF4500';
$darkred    = '#8B0000';
$blue       = '#0000FF';
$darkblue   = '#000099';
$darkorange = '#FF8C00';

$line[1]     = $darkblue;
$line[2]     = $magenta;
$line[3]     = $darkorange;
$line[4]     = $green;

# Define some initial variables

$counter1  = 1;
$counter2  = 1;
$port_number = 0;
$line_no = 1;
$graph_complete = 0;

# Replace underscores in services descriptions

$servicedesc = str_replace("_", " ", $servicedesc);

# Main logic

foreach ($DS as $i)
        {
        if ($counter2 == 5)
           {
           $counter1++;
           $counter2  = 1;
           $line_no = 1;
           }
      
        if ($counter2 == 1)
           {
           $graph_complete = 1;
           $old_port_number = $port_number;
           $opt[$counter1] = '--vertical-label " Degrees Celsius" --height 250 --lower-limit 40 --upper-limit 75 --title "' . $hostname . ' / ' . $servicedesc . '"';
           $def[$counter1]  = "DEF:port_$port_number=$RRDFILE[$i]:$DS[$i]:AVERAGE ";
           }
        else
           {
           $ds_name[$counter1] = "Port-$old_port_number - Port-$port_number";
           $def[$counter1] .= "DEF:port_$port_number=$RRDFILE[$i]:$DS[$i]:AVERAGE ";
           }

        $def[$counter1] .= "LINE1:port_$port_number$line[$line_no]:\"$NAME[$i]\" ";
        $def[$counter1] .= "GPRINT:port_$port_number:LAST:\"%3.2lf $UNIT[$i] LAST \" ";
        $def[$counter1] .= "GPRINT:port_$port_number:MAX:\"%3.2lf $UNIT[$i] MAX \" ";
        $def[$counter1] .= "GPRINT:port_$port_number:AVERAGE:\"%3.2lf $UNIT[$i] AVERAGE \\n\" ";

        if ($counter2 == 4)
           {
           $def[$counter1] .= "HRULE:$WARN[1]$yellow:\"Warning \: $WARN[1] Degrees Celsius \\n\" " ;
           $def[$counter1] .= "HRULE:$CRIT[1]$red:\"Critical\: $CRIT[1] Degrees Celsius \" " ;
           $graph_complete = 0;
           }

        $port_number++;
        $counter2++;
        $line_no++;
        }

if ($graph_complete == 1)
   {
   if ($port_number == 1)
      {
      # In case you have only one(!) CPU the loop will not work and therefore
      # $ds_name has to be added here. 
      $ds_name[$counter1] = "CPU-0";
      }
   $def[$counter1] .= "HRULE:$WARN[1]$yellow:\"Warning \: $WARN[1] Degrees Celsius \\n\" " ;
   $def[$counter1] .= "HRULE:$CRIT[1]$red:\"Critical\: $CRIT[1] Degrees Celsius \" " ;
   }
?>
