Files
librenms-librenms/includes/polling/netstats/netstats-tcp.inc.php
Neil Lathwood fad5aca1b7 feature: Allow customisation of rrd step/heartbeat when creating new rrd files (#5947)
* feature: Allow customisation of rrd step/heartbeat when creating new rrd files

* revert defaults

* added docs + webui config option

* Move RrdDefinition to an Object to make them easier to create and remove the possibility of typos.

* Fix style/lint issues and missing use statements

* 3 more missing use statements

* updated doc + moved schema file
2017-02-23 22:45:50 +00:00

56 lines
1.4 KiB
PHP

<?php
use LibreNMS\RRD\RrdDefinition;
if (!starts_with($device['os'], array('Snom', 'asa'))) {
echo ' TCP';
$oids = array(
'tcpActiveOpens',
'tcpPassiveOpens',
'tcpAttemptFails',
'tcpEstabResets',
'tcpCurrEstab',
'tcpInSegs',
'tcpOutSegs',
'tcpRetransSegs',
'tcpInErrs',
'tcpOutRsts',
);
$rrd_def = new RrdDefinition();
$snmpstring = '';
foreach ($oids as $oid) {
$rrd_def->addDataset($oid, 'COUNTER', null, 10000000);
$snmpstring .= ' TCP-MIB::'.$oid.'.0';
}
$snmpstring .= ' tcpHCInSegs.0';
$snmpstring .= ' tcpHCOutSegs.0';
$data = snmp_get_multi($device, $snmpstring, '-OQUs', 'TCP-MIB');
$data = $data[0];
if (isset($data['tcpInSegs']) && isset($data['tcpOutSegs'])) {
$fields = array();
foreach ($oids as $oid) {
$fields[$oid] = isset($data[$oid]) ? $data[$oid] : 'U';
}
// use HC Segs if we have them.
if (isset($data['tcpHCInSegs'])) {
if (!empty($data['tcpHCInSegs'])) {
$fields['tcpInSegs'] = $data['tcpHCInSegs'];
$fields['tcpOutSegs'] = $data['tcpHCOutSegs'];
}
}
$tags = compact('rrd_def');
data_update($device, 'netstats-tcp', $tags, $fields);
$graphs['netstat_tcp'] = true;
}
unset($oids, $data, $fields, $oid, $snmpstring);
}//end if