Observium_CE/includes/polling/ucd-diskio.inc.php

68 lines
1.7 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage poller
* @copyright (C) Adam Armstrong
*
*/
// FIXME - store state data in database
$table_rows = [];
$diskio_data = dbFetchRows("SELECT * FROM `ucd_diskio` WHERE `device_id` = ?", [$device['device_id']]);
if (count($diskio_data)) {
$diskio_cache = [];
$diskio_cache = snmpwalk_cache_oid($device, "diskIOEntry", $diskio_cache, "UCD-DISKIO-MIB");
//echo("Checking UCD DiskIO MIB: ");
foreach ($diskio_data as $diskio) {
$index = $diskio['diskio_index'];
$entry = $diskio_cache[$index];
//echo($diskio['diskio_descr'] . " ");
if (OBS_DEBUG > 1) {
print_vars($entry);
}
$rrd = "ucd_diskio-" . $diskio['diskio_descr'] . ".rrd";
rrdtool_create($device, $rrd, " \
DS:read:DERIVE:600:0:125000000000 \
DS:written:DERIVE:600:0:125000000000 \
DS:reads:DERIVE:600:0:125000000000 \
DS:writes:DERIVE:600:0:125000000000 ");
rrdtool_update($device, $rrd, [$entry['diskIONReadX'], $entry['diskIONWrittenX'], $entry['diskIOReads'], $entry['diskIOWrites']]);
$table_row = [];
$table_row[] = $diskio['diskio_descr'];
$table_row[] = $diskio['diskio_index'];
$table_row[] = $entry['diskIONReadX'];
$table_row[] = $entry['diskIONWrittenX'];
$table_row[] = $entry['diskIOReads'];
$table_row[] = $entry['diskIOWrites'];
$table_rows[] = $table_row;
unset($table_row);
}
//echo(PHP_EOL);
}
$headers = ['%WLabel%n', '%WIndex%n', '%WRead%n', '%WWritten%n', '%WReads%n', '%WWrites%n'];
print_cli_table($table_rows, $headers);
unset($diskio_data, $diskio_cache);
// EOF