1<?php
2#
3# PNP4Nagios template for check_openmanage
4# Author: 	Trond Hasle Amundsen
5# Contact: 	t.h.amundsen@usit.uio.no
6# Website:      http://folk.uio.no/trondham/software/check_openmanage.html
7# Date: 	2011-06-01
8#
9# $Id: check_openmanage.php 20353 2011-06-06 13:10:52Z trondham $
10#
11# Copyright (C) 2008-2011 Trond H. Amundsen
12#
13# This program is free software: you can redistribute it and/or modify
14# it under the terms of the GNU General Public License as published by
15# the Free Software Foundation, either version 3 of the License, or
16# (at your option) any later version.
17#
18# This program is distributed in the hope that it will be useful, but
19# WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21# General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26# Array with different colors
27$colors = array("0022ff", "22ff22", "ff0000", "00aaaa", "ff00ff",
28		"ffa500", "cc0000", "0000cc", "0080C0", "8080C0",
29		"FF0080", "800080", "688e23", "408080", "808000",
30		"000000", "00FF00", "0080FF", "FF8000", "800000",
31		"FB31FB");
32
33# Counters
34$f = 0;      # fan probe counter
35$t = 0;      # temp probe counter
36$a = 0;      # amp probe counter
37$v = 0;      # volt probe counter
38$e = 0;      # enclosure counter
39
40# Flags
41$visited_amp  = 0;
42
43# IDs
44$id_temp1 = 1;
45$id_temp2 = 2;
46$id_watt  = 3;
47$id_amp   = 4;
48$id_volt  = 5;
49$id_fan   = 6;
50$id_enc   = 7;
51
52# Enclosure id
53$enclosure_id = '';
54
55# Default title
56$def_title = 'Dell OpenManage';
57
58# Temperature unit
59if (!defined('tempunit_defined')) {
60    define('tempunit_defined', 1);
61
62    function tempunit($arg)
63    {
64	$unit   = 'unknown';
65	$vlabel = 'unknown';
66
67	switch ($arg) {
68	default:
69	    $vlabel = "Celsius";
70	    $unit = "°C";
71	    break;
72	case "F":
73	    $vlabel = "Fahrenheit";
74	    $unit = "°F";
75	    break;
76	case "K":
77	    $vlabel = "Kelvin";
78	    $unit = "K";
79	    break;
80	case "R":
81	    $vlabel = "Rankine";
82	    $unit = "°R";
83	    break;
84	}
85	return array($unit, $vlabel);
86    }
87}
88
89
90# Determine if we're running in legacy mode
91$legacy = "no";
92foreach ($this->DS as $KEY=>$VAL) {
93    if (preg_match('/^(pwr_mon_|fan_|temp_|enclosure_|p\d+|f\d+|t\d+|e.+?t\d+)/', $VAL['LABEL'])) {
94	$legacy = "yes";
95	break;
96    }
97}
98
99#------------------------------------------------------
100#  MAIN LOOP
101#------------------------------------------------------
102if ($legacy == "yes") {  # --legacy--
103
104    $count = 0;  # general counter
105    $PWRcolor = "66FF00";
106
107    # Flags
108    $visited_fan  = 0;
109    $visited_temp = 0;
110    $visited_pwr  = 0;
111
112    # Loop through the performance data
113    foreach ($this->DS as $KEY=>$VAL) {
114
115	# AMPERAGE PROBE
116	if(preg_match('/^pwr_mon_/', $VAL['NAME']) || preg_match('/^p\d+[aw]$/', $VAL['NAME'])) {
117
118	    # Watt
119	    if (preg_match('/system/', $VAL['NAME']) || preg_match('/^p\d+w$/', $VAL['NAME'])) {
120
121		# Long label
122		$VAL['NAME'] = preg_replace('/^pwr_mon_\d+_/', '', $VAL['NAME']);
123		$VAL['NAME'] = preg_replace('/_/', ' ', $VAL['NAME']);
124
125		# Short label
126		$VAL['NAME'] = preg_replace('/^p(\d+)w$/', 'Power Probe $1', $VAL['NAME']);
127
128		++$count;
129		$ds_name[$count] = "Power Consumption";
130		$vlabel = "Watt";
131
132		$title = $ds_name[$count];
133
134		$opt[$count] = "--slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
135
136		if(isset($def[$count])){
137		    $def[$count] .= rrd::def("var".$KEY, $VAL['RRDFILE'], $VAL['DS'], "AVERAGE");
138		}
139		else {
140		    $def[$count] = rrd::def("var".$KEY, $VAL['RRDFILE'], $VAL['DS'], "AVERAGE");
141		}
142		$def[$count] .= rrd::area("var$KEY", "#".$PWRcolor, $VAL['NAME']);
143		$def[$count] .= rrd::line1("var$KEY","#000000");
144		$def[$count] .= rrd::gprint("var$KEY",array("LAST", "MAX", "AVERAGE"), "%6.0lf W");
145	    }
146	    # Ampere
147	    elseif (preg_match('/current/', $VAL['NAME']) || preg_match('/^p\d+a$/', $VAL['NAME'])) {
148
149		# Long label
150		$VAL['NAME'] = preg_replace('/^pwr_mon_\d+_/', '', $VAL['NAME']);
151		$VAL['NAME'] = preg_replace('/_/', ' ', $VAL['NAME']);
152		$VAL['NAME'] = preg_replace('/ current \d+$/', '', $VAL['NAME']);
153		$VAL['NAME'] = preg_replace('/ps/', 'PowerSupply', $VAL['NAME']);
154
155		# Short label
156		$VAL['NAME'] = preg_replace('/^p(\d+)a$/', 'Amperage Probe $1', $VAL['NAME']);
157
158		if ($visited_pwr == 0) {
159		    ++$count;
160		    $visited_pwr = 1;
161		}
162		$ds_name[$count] = "Amperage Probes";
163		$vlabel = "Ampere";
164
165		$title = $ds_name[$count];
166
167		$opt[$count] = "-X0 --lower-limit 0 --slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
168		if(isset($def[$count])){
169		    $def[$count] .= rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
170		}
171		else {
172		    $def[$count] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
173		}
174		$def[$count] .= rrd::line1("var$KEY", "#".$colors[$a], $VAL['NAME']) ;
175		$def[$count] .= rrd::area("var$KEY","#".$colors[$a++]."20") ;
176		$def[$count] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%4.2lf A") ;
177	    }
178	}
179
180	# FANS (RPMs)
181	if(preg_match('/^fan_/', $VAL['NAME']) || preg_match('/^f\d+$/', $VAL['NAME'])){
182	    if ($visited_fan == 0) {
183		++$count;
184		$visited_fan = 1;
185	    }
186
187	    # Long label
188	    $VAL['NAME'] = preg_replace('/^fan_\d+_/', '', $VAL['NAME']);
189	    $VAL['NAME'] = preg_replace('/_rpm$/', '', $VAL['NAME']);
190	    $VAL['NAME'] = preg_replace('/_/', ' ', $VAL['NAME']);
191
192	    # Short label
193	    $VAL['NAME'] = preg_replace('/^f(\d+)$/', 'Fan Probe $1', $VAL['NAME']);
194
195	    $ds_name[$count] = "Fan Speed";
196
197	    $opt[$count] = "-X0 --slope-mode --vertical-label \"RPMs\" --title \"$def_title: Fan Speeds\" ";
198	    if(isset($def[$count])){
199		$def[$count] .= rrd::def("var$KEY", $VAL['RRDFILE'], $VAL['DS'], "AVERAGE") ;
200	    }
201	    else {
202		$def[$count] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE");
203	    }
204	    $def[$count] .= rrd::line1("var$KEY", "#".$colors[$f++],$VAL['NAME']);
205	    $def[$count] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%6.0lf RPM");
206	}
207
208	# TEMPERATURES (Celsius)
209	if(preg_match('/^temp_/', $VAL['NAME']) || preg_match('/^t\d+$/', $VAL['NAME'])){
210	    if ($visited_temp == 0) {
211		++$count;
212		$visited_temp = 1;
213	    }
214
215	    # Long label
216	    $VAL['NAME'] = preg_replace('/^temp_\d+_/', '', $VAL['NAME']);
217	    $VAL['NAME'] = preg_replace('/_/', ' ', $VAL['NAME']);
218
219	    # Short label
220	    $VAL['NAME'] = preg_replace('/^t(\d+)$/', 'Temperature Probe $1', $VAL['NAME']);
221
222	    $ds_name[$count] = "Chassis Temperatures";
223
224	    $warnThresh = "INF";
225	    $critThresh = "INF";
226
227	    if ($VAL['WARN'] != "") {
228		$warnThresh = $VAL['WARN'];
229	    }
230	    if ($VAL['CRIT'] != "") {
231		$critThresh = $VAL['CRIT'];
232	    }
233
234	    $opt[$count] = "--slope-mode --vertical-label \"Celsius\" --title \"$def_title: Chassis Temperatures\" ";
235	    if(isset($def[$count])){
236		$def[$count] .= rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
237	    }
238	    else {
239		$def[$count] = rrd::def("var$KEY", $VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
240	    }
241	    $def[$count] .= rrd::line1("var$KEY", "#".$colors[$t++], $VAL['NAME']);
242	    $def[$count] .= rrd::gprint("var$KEY",array("LAST", "MAX", "AVERAGE"),"%6.0lf C");
243	}
244
245	# ENCLOSURE TEMPERATURES (Celsius)
246	if(preg_match('/^enclosure_(?P<id>.+?)_temp_\d+$/', $VAL['NAME'], $matches)
247	   || preg_match('/^e(?P<id>.+?)t\d+$/', $VAL['NAME'], $matches)) {
248	    $this_id = $matches['id'];
249
250	    if ($enclosure_id != $this_id) {
251		$e = 0;
252		++$count;
253		$enclosure_id = $this_id;
254	    }
255
256	    # Long label
257	    $VAL['NAME'] = preg_replace('/^enclosure_.+?_temp_(\d+)$/', 'Probe $1', $VAL['NAME']);
258
259	    # Short label
260	    $VAL['NAME'] = preg_replace('/^e.+?t(\d+)$/', 'Probe $1', $VAL['NAME']);
261
262	    $ds_name[$count] = "Enclosure $enclosure_id Temperatures";
263
264	    $warnThresh = "INF";
265	    $critThresh = "INF";
266
267	    if ($VAL['WARN'] != "") {
268		$warnThresh = $VAL['WARN'];
269	    }
270	    if ($VAL['CRIT'] != "") {
271		$critThresh = $VAL['CRIT'];
272	    }
273
274	    $opt[$count] = "--slope-mode --vertical-label \"Celsius\" --title \"$def_title: Enclosure $enclosure_id Temperatures\" ";
275
276	    if(isset($def[$count])){
277		$def[$count] .= rrd::def("var$KEY", $VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
278	    }
279	    else {
280		$def[$count] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
281	    }
282	    $def[$count] .= rrd::line1("var$KEY","#".$colors[$e++],$VAL['NAME']) ;
283	    $def[$count] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%6.0lf C");
284	}
285    }
286}
287else {  # --new--
288
289    # Loop through the performance data
290    foreach ($this->DS as $KEY=>$VAL) {
291
292	$label = $VAL['LABEL'];
293
294	# TEMPERATURES (AMBIENT)
295	if (preg_match('/^T/', $label) && preg_match('/Ambient/', $label)) {
296
297	    # Temperature unit and vertical label
298	    list ($unit, $vlabel) = tempunit($VAL['UNIT']);
299
300	    # Long label
301	    $label = preg_replace('/^T(\d+)_(.+)/', '$2', $label);
302	    $label = preg_replace('/_/', ' ', $label);
303
304	    # Short label
305	    $label = preg_replace('/^T(\d+)$/', 'Probe $1', $label);
306
307	    $ds_name[$id_temp1] = "Temperatures";
308
309	    $opt[$id_temp1] = "--slope-mode --vertical-label \"$vlabel\" --title \"$def_title: Ambient Temperature\" ";
310	    if(isset($def[$id_temp1])){
311		$def[$id_temp1] .= rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
312	    }
313	    else {
314		$def[$id_temp1] = rrd::def("var$KEY", $VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
315	    }
316
317	    # fancy graphing
318	    $def[$id_temp1] .= rrd::gradient("var$KEY","#114480", "#1144dc", $label, 10, "50%");
319	    $def[$id_temp1] .= rrd::gprint("var$KEY",array("LAST", "MAX", "AVERAGE"),"%5.1lf $unit");
320
321	    # insert extra vertical space if we have thresholds
322	    if ($VAL['WARN'] != "" || $VAL['CRIT'] != "") {
323		$def[$id_temp1] .= "COMMENT:\\s ";
324	    }
325
326	    # warning threshold
327	    if ($VAL['WARN'] != "") {
328		$warnThresh = $VAL['WARN'];
329		$def[$id_temp1] .= rrd::cdef("warn$KEY", "var$KEY,$warnThresh,GT,var$KEY,UNKN,IF");
330		$def[$id_temp1] .= rrd::gradient("warn$KEY","#c4c400", "#ffff00","Above Upper Warning Threshold\: $warnThresh $unit\\l", 10, "50%");
331	    }
332
333	    # critical threshold
334	    if ($VAL['CRIT'] != "") {
335		$critThresh = $VAL['CRIT'];
336		$def[$id_temp1] .= rrd::cdef("crit$KEY", "var$KEY,$critThresh,GT,var$KEY,UNKN,IF");
337		$def[$id_temp1] .= rrd::gradient("crit$KEY","#800000", "#dc0000","Above Upper Critical Threshold\: $critThresh $unit\\l", 10, "50%");
338	    }
339	}
340
341	# TEMPERATURES
342	if (preg_match('/^T/', $label) && !preg_match('/Ambient/', $label)) {
343
344	    # Temperature unit and vertical label
345	    list ($unit, $vlabel) = tempunit($VAL['UNIT']);
346
347	    # Long label
348	    $label = preg_replace('/^T(\d+)_(.+)/', '$2', $label);
349	    $label = preg_replace('/_/', ' ', $label);
350
351	    # Short label
352	    $label = preg_replace('/^T(\d+)$/', 'Probe $1', $label);
353
354	    $ds_name[$id_temp2] = "Temperatures";
355
356	    $opt[$id_temp2] = "--slope-mode --vertical-label \"$vlabel\" --title \"$def_title: Chassis Temperatures\" ";
357	    if (isset($def[$id_temp2])) {
358		$def[$id_temp2] .= rrd::def("var$KEY", $VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
359	    }
360	    else {
361		$def[$id_temp2] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
362	    }
363	    $def[$id_temp2] .= rrd::line1("var$KEY", "#".$colors[$t++], rrd::cut($label,20) );
364	    $def[$id_temp2] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"), "%4.1lf $unit");
365	}
366
367	# WATTAGE PROBE
368	if (preg_match('/^W/', $label)) {
369
370	    # Long label
371	    $label = preg_replace('/^W(\d+)_(.+)/', '$2', $label);
372	    $label = preg_replace('/_/', ' ', $label);
373
374	    # Short label
375	    $label = preg_replace('/^W(\d+)$/', 'Probe $1', $label);
376
377	    $ds_name[$id_watt] = "Power Consumption";
378	    $vlabel = "Watt";
379
380	    $title = $ds_name[$id_watt];
381
382	    $opt[$id_watt] = "--slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
383
384	    if(isset($def[$id_watt])){
385		$def[$id_watt] .= rrd::def("var$KEY",$VAL['RRDFILE'], $VAL['DS'], "AVERAGE") ;
386	    }
387	    else {
388		$def[$id_watt] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE") ;
389	    }
390
391	    # calculate kWh and BTU
392            $def[$id_watt] .= "VDEF:tot$KEY=var$KEY,TOTAL ";
393	    # rrd:vdef is broken in pnp4nagios 0.6.13 # $def[$id_watt] .= rrd::vdef("tot$KEY","var$KEY,TOTAL");
394	    $def[$id_watt] .= rrd::cdef("kwh$KEY","var$KEY,POP,tot$KEY,1000,/,60,/,60,/");
395	    $def[$id_watt] .= rrd::cdef("btu$KEY","kwh$KEY,3412.3,*");
396
397	    # fancy graphing
398	    $def[$id_watt] .= rrd::gradient("var$KEY","#800000","#dc0000","$label", 10, "50%");
399
400	    # print avg, max and min
401	    $def[$id_watt] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%6.0lf W");
402
403	    # print kWh and BTU for time period
404	    $def[$id_watt] .= rrd::comment("\\s");
405	    $def[$id_watt] .= rrd::comment("    Total power used in time period\:");
406	    $def[$id_watt] .= rrd::gprint("kwh$KEY","AVERAGE","%10.2lf kWh\l");
407	    $def[$id_watt] .= rrd::comment("                                    ");
408	    $def[$id_watt] .= rrd::gprint("btu$KEY","AVERAGE","%10.2lf BTU\l");
409	}
410
411	# AMPERAGE PROBE
412	if (preg_match('/^A/', $label)) {
413
414	    $first = 0;
415	    if ($visited_amp == 0) {
416		$first = 1;
417		$visited_amp = 1;
418	    }
419
420	    # Long label
421	    $label = preg_replace('/^A(\d+)_(.+)/', '$2', $label);
422	    $label = preg_replace('/_/', ' ', $label);
423
424	    # Short label
425	    $label = preg_replace('/^A(\d+)$/', 'Probe $1', $label);
426
427	    $ds_name[$id_amp] = "Amperage Probes";
428	    $vlabel = "Ampere";
429
430	    $title = $ds_name[$id_amp];
431
432	    $opt[$id_amp] = "-X0 --lower-limit 0 --slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
433	    if(isset($def[$id_amp])){
434		$def[$id_amp] .= rrd::def("var$KEY",$VAL['RRDFILE'], $VAL['DS'], "AVERAGE");
435	    }
436	    else {
437		$def[$id_amp]  = rrd::def("var$KEY",$VAL['RRDFILE'], $VAL['DS'], "AVERAGE");
438	    }
439
440	    $space = strlen($label) < 16 ? str_repeat(' ', 16 - strlen($label)) : ' ';
441
442	    $def[$id_amp] .= rrd::cdef("tier$KEY", "var$KEY,10,/");
443	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."b7::STACK ";
444	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."bf::STACK ";
445	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."c7::STACK ";
446	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."cf::STACK ";
447	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."d7::STACK ";
448	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."df::STACK ";
449	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."e7::STACK ";
450	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."ef::STACK ";
451	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."f7::STACK ";
452	    $def[$id_amp] .= "AREA:tier$KEY#".$colors[$a]."ff:\"$label$space\":STACK ";
453	    $a++;
454
455	    if ($first) {
456		$def[$id_amp] .= rrd::cdef("sum$KEY", "var$KEY,0,+");
457	    }
458	    else {
459		$def[$id_amp] .= rrd::cdef("sum$KEY", "sum".($KEY-1).",var$KEY,+");
460	    }
461	    $def[$id_amp] .= rrd::line1("sum$KEY", "#555555");
462	    $def[$id_amp] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%6.1lf A last") ;
463	}
464
465	# VOLTAGE PROBE
466	if (preg_match('/^V/', $label)) {
467
468	    # Long label
469	    $label = preg_replace('/^V(\d+)_(.+)/', '$2', $label);
470	    $label = preg_replace('/_/', ' ', $label);
471
472	    # Short label
473	    $label = preg_replace('/^V(\d+)$/', 'Probe $1', $label);
474
475	    $ds_name[$id_volt] = "Voltage Probes";
476	    $vlabel = "Volts";
477
478	    $title = $ds_name[$id_volt];
479
480	    $opt[$id_volt] = "--slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
481	    if(isset($def[$id_volt])){
482		$def[$id_volt] .= rrd::def("var$KEY", $VAL['RRDFILE'], $VAL['DS'],"AVERAGE");
483	    }
484	    else {
485		$def[$id_volt] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'],"AVERAGE");
486	    }
487	    $def[$id_volt] .= rrd::line1("var$KEY", "#".$colors[$v++], rrd::cut($label,18) ) ;
488	    $def[$id_volt] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%8.2lf A");
489	}
490
491	# FANS (RPMs)
492	if (preg_match('/^F/', $label)) {
493
494	    # Long label
495	    $label = preg_replace('/^F(\d+)_(.+)/', '$2', $label);
496	    $label = preg_replace('/_/', ' ', $label);
497
498	    # Short label
499	    $label = preg_replace('/^F(\d+)$/', 'Probe $1', $label);
500
501	    $ds_name[$id_fan] = "Fan Probes";
502
503	    $opt[$id_fan] = "-X0 --slope-mode --vertical-label \"RPMs\" --title \"$def_title: Fan Speeds\" ";
504	    if(isset($def[$id_fan])){
505		$def[$id_fan] .= rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'], "AVERAGE") ;
506	    }
507	    else {
508		$def[$id_fan] = rrd::def("var$KEY",$VAL['RRDFILE'],$VAL['DS'], "AVERAGE") ;
509	    }
510	    $def[$id_fan] .= rrd::line1("var$KEY", "#".$colors[$f++], rrd::cut($label,18) ) ;
511	    $def[$id_fan] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"), "%6.0lf RPM");
512	}
513
514	# ENCLOSURE TEMPERATURES (Celsius)
515	if (preg_match('/^E(?P<encl>.+?)_t(emp_)?(?P<probe>\d+)/', $label, $matches)) {
516
517	    $this_id     = $matches['encl'];
518	    $probe_index = $matches['probe'];
519
520	    if ($enclosure_id != $this_id) {
521		$e = 0;
522		$id_enc++;
523		$enclosure_id = $this_id;
524	    }
525
526	    # Label
527	    $label = "Probe $probe_index";
528
529	    $ds_name[$id_enc] = "Enclosure $enclosure_id Temperatures";
530
531	    $opt[$id_enc] = "--slope-mode --vertical-label \"Celsius\" --title \"$def_title: Enclosure $enclosure_id Temperatures\" ";
532
533	    if(isset($def[$id_enc])){
534		$def[$id_enc] .= rrd::def("var$KEY", $VAL['RRDFILE'],$VAL['DS'], "AVERAGE") ;
535	    }
536	    else {
537		$def[$id_enc] = rrd::def("var$KEY", $VAL['RRDFILE'],$VAL['DS'], "AVERAGE") ;
538	    }
539	    $def[$id_enc] .= rrd::line1("var$KEY", "#".$colors[$e++], rrd::cut($label, 14) );
540	    $def[$id_enc] .= rrd::gprint("var$KEY", array("LAST", "MAX", "AVERAGE"),"%6.1lf C");
541	}
542    }
543}
544
545?>
546