# PNP Helper Functions

PNP-Helper-Funktionen sind dazu gedacht, die Erstellung von Templates zu vereinfachen. Im Gegensatz zu den rrd-Helper-Funktionen rufen sie keine existierenden RRDtool-Funktionen auf.

## pnp::adjust_unit

(string,number,string,number) pnp::adjust_unit ( $value, $base=1000, $format='%.3lf' )

Der Zweck dieser Funktion ist die “Normalisierung” von großen Zahlen. Moderne Festplatten haben Größen von mehreren GB oder TB erreicht und wenn Sie auf Zahlen wie 1521073648234 schauen, dann fangen Sie an, die Ziffern zu zählen, also wäre es schön, diese Zahlen in ein “handliches” Format zu verwandeln. Das Gleiche gilt für Netzwerkverkehr.

An die Funktion werden bis zu drei Parameter übergeben und in jedem Fall ein Array mit vier Elementen zurückgeliefert.

- Der erste übergebene Parameter ist der Wert (ggf. inklusive die “UOM”)
- Der zweite Parameter ist optional (Default “1000”, z.B. für “Traffic”), bzw. “1024” (z.B. Festplattengrößen)
- Der dritte Parameter ist optional (Default '%.3lf') und gibt das Format des zurückzugebenden Wertes an

    $size = pnp::adjust_unit(1521073648234,1024,'%7.3lf');

Bitte beachten Sie, dass “$size” ein Array ist, das aus vier Feldern besteht:

     $size[0] := "  1.383 T"

enthält den formatierten Wert inkl. der Einheit

     $size[1] := "1.383"

enthält den formatierten Wert (ohne führende Leerzeichen)

     $size[2] := "T"

enthält die Einheit

     $size[3] := "1099511627776"

enthält den Divisor

Angenommen das Plugin “check_disk” liefert “MB” als UOM, dann können Sie diese Einheit ebenfalls übergeben

    $disk = pnp::adjust_unit("1524MB",1024,'%7.3lf');

liefert als Ergebnis u.a. $disk[0] := “1.448 GB”

“altes” check_disk-Template mit der %s Direktive

“neues” check_disk-Template mit pnp::adjust_unit