mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	hopefully doesn't break anything Mostly issues with snmp oids and options containing spaces. Try to remove all of those. DO NOT DELETE THIS TEXT #### Please note > Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting. - [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/) #### Testers If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926` After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
		
			
				
	
	
		
			679 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			679 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
use LibreNMS\RRD\RrdDefinition;
 | 
						|
 | 
						|
$name = 'bind';
 | 
						|
$app_id = $app['app_id'];
 | 
						|
 | 
						|
echo " $name";
 | 
						|
 | 
						|
if (!empty($agent_data['app'][$name])) {
 | 
						|
    $bind = $agent_data['app'][$name];
 | 
						|
} else {
 | 
						|
    $options = '-Oqv';
 | 
						|
    $mib     = 'NET-SNMP-EXTEND-MIB';
 | 
						|
    $oid     = 'nsExtendOutputFull.4.98.105.110.100';
 | 
						|
    $bind    = snmp_get($device, $oid, $options, $mib);
 | 
						|
}
 | 
						|
 | 
						|
list ($incoming, $outgoing, $server, $resolver, $cache, $rrsets, $adb, $sockets) = explode("\n", $bind);
 | 
						|
 | 
						|
//
 | 
						|
// INCOMING PROCESSING
 | 
						|
//
 | 
						|
list ($a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
 | 
						|
    $loc, $mx, $naptr, $ns, $nsec, $nsec3, $nsec3param, $ptr, $rrsig, $rp, $sig, $soa, $srv, $sshfp, $ta, $tkey, $tlsa,
 | 
						|
    $tsig, $txt, $uri, $dname, $any, $axfr, $ixfr, $opt, $spf) = explode(',', $incoming);
 | 
						|
 | 
						|
$metrics = array();
 | 
						|
$rrd_name = array('app', $name, $app_id);
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('any', 'DERIVE', 0)
 | 
						|
    ->addDataset('a', 'DERIVE', 0)
 | 
						|
    ->addDataset('aaaa', 'DERIVE', 0)
 | 
						|
    ->addDataset('cname', 'DERIVE', 0)
 | 
						|
    ->addDataset('mx', 'DERIVE', 0)
 | 
						|
    ->addDataset('ns', 'DERIVE', 0)
 | 
						|
    ->addDataset('ptr', 'DERIVE', 0)
 | 
						|
    ->addDataset('soa', 'DERIVE', 0)
 | 
						|
    ->addDataset('srv', 'DERIVE', 0)
 | 
						|
    ->addDataset('spf', 'DERIVE', 0);
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'any'   => $any,
 | 
						|
    'a'     => $a,
 | 
						|
    'aaaa'  => $aaaa,
 | 
						|
    'cname' => $cname,
 | 
						|
    'mx'    => $mx,
 | 
						|
    'ns'    => $ns,
 | 
						|
    'ptr'   => $ptr,
 | 
						|
    'soa'   => $soa,
 | 
						|
    'srv'   => $srv,
 | 
						|
    'spf'   => $spf,
 | 
						|
);
 | 
						|
$metrics['queries'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'incoming');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('afsdb', 'DERIVE', 0)
 | 
						|
    ->addDataset('apl', 'DERIVE', 0)
 | 
						|
    ->addDataset('caa', 'DERIVE', 0)
 | 
						|
    ->addDataset('cdnskey', 'DERIVE', 0)
 | 
						|
    ->addDataset('cds', 'DERIVE', 0)
 | 
						|
    ->addDataset('cert', 'DERIVE', 0)
 | 
						|
    ->addDataset('dhcid', 'DERIVE', 0)
 | 
						|
    ->addDataset('dlv', 'DERIVE', 0)
 | 
						|
    ->addDataset('dnskey', 'DERIVE', 0)
 | 
						|
    ->addDataset('ds', 'DERIVE', 0)
 | 
						|
    ->addDataset('ipseckey', 'DERIVE', 0)
 | 
						|
    ->addDataset('key', 'DERIVE', 0)
 | 
						|
    ->addDataset('kx', 'DERIVE', 0)
 | 
						|
    ->addDataset('loc', 'DERIVE', 0)
 | 
						|
    ->addDataset('naptr', 'DERIVE', 0)
 | 
						|
    ->addDataset('nsec', 'DERIVE', 0)
 | 
						|
    ->addDataset('nsec3', 'DERIVE', 0)
 | 
						|
    ->addDataset('nsec3param', 'DERIVE', 0)
 | 
						|
    ->addDataset('rrsig', 'DERIVE', 0)
 | 
						|
    ->addDataset('rp', 'DERIVE', 0)
 | 
						|
    ->addDataset('sig', 'DERIVE', 0)
 | 
						|
    ->addDataset('sshfp', 'DERIVE', 0)
 | 
						|
    ->addDataset('ta', 'DERIVE', 0)
 | 
						|
    ->addDataset('tkey', 'DERIVE', 0)
 | 
						|
    ->addDataset('tlsa', 'DERIVE', 0)
 | 
						|
    ->addDataset('tsig', 'DERIVE', 0)
 | 
						|
    ->addDataset('txt', 'DERIVE', 0)
 | 
						|
    ->addDataset('uri', 'DERIVE', 0)
 | 
						|
    ->addDataset('dname', 'DERIVE', 0)
 | 
						|
    ->addDataset('axfr', 'DERIVE', 0)
 | 
						|
    ->addDataset('ixfr', 'DERIVE', 0)
 | 
						|
    ->addDataset('opt', 'DERIVE', 0);
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'afsdb' => $afsdb,
 | 
						|
    'apl' => $apl,
 | 
						|
    'caa' => $caa,
 | 
						|
    'cdnskey' => $cdnskey,
 | 
						|
    'cds' => $cds,
 | 
						|
    'cert' => $cert,
 | 
						|
    'dhcid' => $dhcid,
 | 
						|
    'dlv' => $dlv,
 | 
						|
    'dnskey' => $dnskey,
 | 
						|
    'ds' => $ds,
 | 
						|
    'ipseckey' => $ipseckey,
 | 
						|
    'key' => $key,
 | 
						|
    'kx' => $kx,
 | 
						|
    'loc' => $loc,
 | 
						|
    'naptr' => $naptr,
 | 
						|
    'nsec' => $nsec,
 | 
						|
    'nsec3' => $nsec3,
 | 
						|
    'nsec3param' => $nsec3param,
 | 
						|
    'rrsig' => $rrsig,
 | 
						|
    'rp' => $rp,
 | 
						|
    'sig' => $sig,
 | 
						|
    'sshfp' => $sshfp,
 | 
						|
    'ta' => $ta,
 | 
						|
    'tkey' => $tkey,
 | 
						|
    'tlsa' => $tlsa,
 | 
						|
    'tsig' => $tsig,
 | 
						|
    'txt' => $txt,
 | 
						|
    'uri' => $uri,
 | 
						|
    'dname' => $dname,
 | 
						|
    'axfr' => $axfr,
 | 
						|
    'ixfr' => $ixfr,
 | 
						|
    'opt' => $opt,
 | 
						|
);
 | 
						|
$metrics['incoming'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// OUTGOING PROCESSING
 | 
						|
//
 | 
						|
list ($a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
 | 
						|
    $loc, $mx, $naptr, $ns, $nsec, $nsec3, $nsec3param, $ptr, $rrsig, $rp, $sig, $soa, $srv, $sshfp, $ta, $tkey, $tlsa,
 | 
						|
    $tsig, $txt, $uri, $dname, $any, $axfr, $ixfr, $opt, $spf) = explode(',', $outgoing);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'outgoing');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('any', 'DERIVE', 0)
 | 
						|
    ->addDataset('a', 'DERIVE', 0)
 | 
						|
    ->addDataset('aaaa', 'DERIVE', 0)
 | 
						|
    ->addDataset('cname', 'DERIVE', 0)
 | 
						|
    ->addDataset('mx', 'DERIVE', 0)
 | 
						|
    ->addDataset('ns', 'DERIVE', 0)
 | 
						|
    ->addDataset('ptr', 'DERIVE', 0)
 | 
						|
    ->addDataset('soa', 'DERIVE', 0)
 | 
						|
    ->addDataset('srv', 'DERIVE', 0)
 | 
						|
    ->addDataset('spf', 'DERIVE', 0)
 | 
						|
    ->addDataset('afsdb', 'DERIVE', 0)
 | 
						|
    ->addDataset('apl', 'DERIVE', 0)
 | 
						|
    ->addDataset('caa', 'DERIVE', 0)
 | 
						|
    ->addDataset('cdnskey', 'DERIVE', 0)
 | 
						|
    ->addDataset('cds', 'DERIVE', 0)
 | 
						|
    ->addDataset('cert', 'DERIVE', 0)
 | 
						|
    ->addDataset('dhcid', 'DERIVE', 0)
 | 
						|
    ->addDataset('dlv', 'DERIVE', 0)
 | 
						|
    ->addDataset('dnskey', 'DERIVE', 0)
 | 
						|
    ->addDataset('ds', 'DERIVE', 0)
 | 
						|
    ->addDataset('ipseckey', 'DERIVE', 0)
 | 
						|
    ->addDataset('key', 'DERIVE', 0)
 | 
						|
    ->addDataset('kx', 'DERIVE', 0)
 | 
						|
    ->addDataset('loc', 'DERIVE', 0)
 | 
						|
    ->addDataset('naptr', 'DERIVE', 0)
 | 
						|
    ->addDataset('nsec', 'DERIVE', 0)
 | 
						|
    ->addDataset('nsec3', 'DERIVE', 0)
 | 
						|
    ->addDataset('nsec3param', 'DERIVE', 0)
 | 
						|
    ->addDataset('rrsig', 'DERIVE', 0)
 | 
						|
    ->addDataset('rp', 'DERIVE', 0)
 | 
						|
    ->addDataset('sig', 'DERIVE', 0)
 | 
						|
    ->addDataset('sshfp', 'DERIVE', 0)
 | 
						|
    ->addDataset('ta', 'DERIVE', 0)
 | 
						|
    ->addDataset('tkey', 'DERIVE', 0)
 | 
						|
    ->addDataset('tlsa', 'DERIVE', 0)
 | 
						|
    ->addDataset('tsig', 'DERIVE', 0)
 | 
						|
    ->addDataset('txt', 'DERIVE', 0)
 | 
						|
    ->addDataset('uri', 'DERIVE', 0)
 | 
						|
    ->addDataset('dname', 'DERIVE', 0)
 | 
						|
    ->addDataset('axfr', 'DERIVE', 0)
 | 
						|
    ->addDataset('ixfr', 'DERIVE', 0)
 | 
						|
    ->addDataset('opt', 'DERIVE', 0);
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'any'   => $any,
 | 
						|
    'a'     => $a,
 | 
						|
    'aaaa'  => $aaaa,
 | 
						|
    'cname' => $cname,
 | 
						|
    'mx'    => $mx,
 | 
						|
    'ns'    => $ns,
 | 
						|
    'ptr'   => $ptr,
 | 
						|
    'soa'   => $soa,
 | 
						|
    'srv'   => $srv,
 | 
						|
    'spf'   => $spf,
 | 
						|
    'afsdb' => $afsdb,
 | 
						|
    'apl' => $apl,
 | 
						|
    'caa' => $caa,
 | 
						|
    'cdnskey' => $cdnskey,
 | 
						|
    'cds' => $cds,
 | 
						|
    'cert' => $cert,
 | 
						|
    'dhcid' => $dhcid,
 | 
						|
    'dlv' => $dlv,
 | 
						|
    'dnskey' => $dnskey,
 | 
						|
    'ds' => $ds,
 | 
						|
    'ipseckey' => $ipseckey,
 | 
						|
    'key' => $key,
 | 
						|
    'kx' => $kx,
 | 
						|
    'loc' => $loc,
 | 
						|
    'naptr' => $naptr,
 | 
						|
    'nsec' => $nsec,
 | 
						|
    'nsec3' => $nsec3,
 | 
						|
    'nsec3param' => $nsec3param,
 | 
						|
    'rrsig' => $rrsig,
 | 
						|
    'rp' => $rp,
 | 
						|
    'sig' => $sig,
 | 
						|
    'sshfp' => $sshfp,
 | 
						|
    'ta' => $ta,
 | 
						|
    'tkey' => $tkey,
 | 
						|
    'tlsa' => $tlsa,
 | 
						|
    'tsig' => $tsig,
 | 
						|
    'txt' => $txt,
 | 
						|
    'uri' => $uri,
 | 
						|
    'dname' => $dname,
 | 
						|
    'axfr' => $axfr,
 | 
						|
    'ixfr' => $ixfr,
 | 
						|
    'opt' => $opt,
 | 
						|
);
 | 
						|
$metrics['outgoing'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// SERVER PROCESSING
 | 
						|
//
 | 
						|
list ($i4rr, $i6rr, $rwer, $trr, $aqr, $rqr, $rs, $trs, $rwes, $qrisa, $qriaa, $qrinaa, $qrin, $qris, $qrind,
 | 
						|
    $qcr, $dqr, $oqf, $uqr, $tqr, $oeor, $qd) = explode(',', $server);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'server');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('i4rr', 'DERIVE', 0)
 | 
						|
    ->addDataset('i6rr', 'DERIVE', 0)
 | 
						|
    ->addDataset('rwer', 'DERIVE', 0)
 | 
						|
    ->addDataset('trr', 'DERIVE', 0)
 | 
						|
    ->addDataset('aqr', 'DERIVE', 0)
 | 
						|
    ->addDataset('rqr', 'DERIVE', 0)
 | 
						|
    ->addDataset('rs', 'DERIVE', 0)
 | 
						|
    ->addDataset('trs', 'DERIVE', 0)
 | 
						|
    ->addDataset('rwes', 'DERIVE', 0)
 | 
						|
    ->addDataset('qrisa', 'DERIVE', 0)
 | 
						|
    ->addDataset('qriaa', 'DERIVE', 0)
 | 
						|
    ->addDataset('qrinaa', 'DERIVE', 0)
 | 
						|
    ->addDataset('qrin', 'DERIVE', 0)
 | 
						|
    ->addDataset('qris', 'DERIVE', 0)
 | 
						|
    ->addDataset('qrind', 'DERIVE', 0)
 | 
						|
    ->addDataset('qcr', 'DERIVE', 0)
 | 
						|
    ->addDataset('dqr', 'DERIVE', 0)
 | 
						|
    ->addDataset('oqf', 'DERIVE', 0)
 | 
						|
    ->addDataset('uqr', 'DERIVE', 0)
 | 
						|
    ->addDataset('tqr', 'DERIVE', 0)
 | 
						|
    ->addDataset('oeor', 'DERIVE', 0)
 | 
						|
    ->addDataset('qd', 'DERIVE', 0);
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'i4rr' => $i4rr,
 | 
						|
    'i6rr' => $i6rr,
 | 
						|
    'rwer' => $rwer,
 | 
						|
    'trr' => $trr,
 | 
						|
    'aqr' => $aqr,
 | 
						|
    'rqr' => $rqr,
 | 
						|
    'rs' => $rs,
 | 
						|
    'trs' => $trs,
 | 
						|
    'rwes' => $rwes,
 | 
						|
    'qrisa' => $qrisa,
 | 
						|
    'qriaa' => $qriaa,
 | 
						|
    'qrinaa' => $qrinaa,
 | 
						|
    'qrin' => $qrin,
 | 
						|
    'qris' => $qris,
 | 
						|
    'qrind' => $qrind,
 | 
						|
    'qcr' => $qcr,
 | 
						|
    'dqr' => $dqr,
 | 
						|
    'oqf' => $oqf,
 | 
						|
    'uqr' => $uqr,
 | 
						|
    'tqr' => $tqr,
 | 
						|
    'oeor' => $oeor,
 | 
						|
    'qd' => $qd,
 | 
						|
);
 | 
						|
$metrics['server'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// RESOLVER PROCESSING
 | 
						|
//
 | 
						|
list ($i4qs, $i6qs, $i4rr, $i6rr, $nr, $sr, $fr, $eqf, $trr, $ldr, $qr, $qt, $i4naf, $i6naf,
 | 
						|
    $i4naff, $i6naff, $rttl10, $rtt10t100, $rtt100t500, $rtt500t800, $rtt800t1600, $rttg1600,
 | 
						|
    $bs, $rr) = explode(',', $resolver);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'resolver');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('i4qs', 'DERIVE', 0)
 | 
						|
    ->addDataset('i6qs', 'DERIVE', 0)
 | 
						|
    ->addDataset('i4rr', 'DERIVE', 0)
 | 
						|
    ->addDataset('i6rr', 'DERIVE', 0)
 | 
						|
    ->addDataset('nr', 'DERIVE', 0)
 | 
						|
    ->addDataset('sr', 'DERIVE', 0)
 | 
						|
    ->addDataset('fr', 'DERIVE', 0)
 | 
						|
    ->addDataset('eqf', 'DERIVE', 0)
 | 
						|
    ->addDataset('trr', 'DERIVE', 0)
 | 
						|
    ->addDataset('ldr', 'DERIVE', 0)
 | 
						|
    ->addDataset('qr', 'DERIVE', 0)
 | 
						|
    ->addDataset('qt', 'DERIVE', 0)
 | 
						|
    ->addDataset('i4naf', 'DERIVE', 0)
 | 
						|
    ->addDataset('i6naf', 'DERIVE', 0)
 | 
						|
    ->addDataset('i4naff', 'DERIVE', 0)
 | 
						|
    ->addDataset('i6naff', 'DERIVE', 0)
 | 
						|
    ->addDataset('rttl10', 'DERIVE', 0)
 | 
						|
    ->addDataset('rtt10t100', 'DERIVE', 0)
 | 
						|
    ->addDataset('rtt100t500', 'DERIVE', 0)
 | 
						|
    ->addDataset('rtt500t800', 'DERIVE', 0)
 | 
						|
    ->addDataset('rtt800t1600', 'DERIVE', 0)
 | 
						|
    ->addDataset('rttg1600', 'DERIVE', 0)
 | 
						|
    ->addDataset('bs', 'GAUGE', 0)
 | 
						|
    ->addDataset('rr', 'DERIVE', 0);
 | 
						|
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'i4qs' => $i4qs,
 | 
						|
    'i6qs' => $i6qs,
 | 
						|
    'i4rr' => $i4rr,
 | 
						|
    'i6rr' => $i6rr,
 | 
						|
    'nr' => $nr,
 | 
						|
    'sr' => $sr,
 | 
						|
    'fr' => $fr,
 | 
						|
    'eqf' => $eqf,
 | 
						|
    'trr' => $trr,
 | 
						|
    'ldr' => $ldr,
 | 
						|
    'qr' => $qr,
 | 
						|
    'qt' => $qt,
 | 
						|
    'i4naf' => $i4naf,
 | 
						|
    'i6naf' => $i6naf,
 | 
						|
    'i4naff' => $i4naff,
 | 
						|
    'i6naff' => $i6naff,
 | 
						|
    'rttl10' => $rttl10,
 | 
						|
    'rtt10t100' => $rtt10t100,
 | 
						|
    'rtt100t500' => $rtt100t500,
 | 
						|
    'rtt500t800' => $rtt500t800,
 | 
						|
    'rtt800t1600' => $rtt800t1600,
 | 
						|
    'rttg1600' => $rttg1600,
 | 
						|
    'bs' => $bs,
 | 
						|
    'rr' => $rr,
 | 
						|
);
 | 
						|
$metrics['resolver'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// CACHE PROCESSING
 | 
						|
//
 | 
						|
list ($ch, $cm, $chfq, $cmfq, $crddtme, $crddtte, $cdn, $cdhb, $ctmt, $ctmiu, $cthmiu,
 | 
						|
    $chmt, $chmiu, $chhmiu) = explode(',', $cache);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'cache');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('ch', 'DERIVE', 0)
 | 
						|
    ->addDataset('cm', 'DERIVE', 0)
 | 
						|
    ->addDataset('chfq', 'DERIVE', 0)
 | 
						|
    ->addDataset('cmfq', 'DERIVE', 0)
 | 
						|
    ->addDataset('crddtme', 'DERIVE', 0)
 | 
						|
    ->addDataset('crddtte', 'DERIVE', 0)
 | 
						|
    ->addDataset('cdn', 'GAUGE', 0)
 | 
						|
    ->addDataset('cdhb', 'GAUGE', 0)
 | 
						|
    ->addDataset('ctmt', 'GAUGE', 0)
 | 
						|
    ->addDataset('ctmiu', 'GAUGE', 0)
 | 
						|
    ->addDataset('cthmiu', 'GAUGE', 0)
 | 
						|
    ->addDataset('chmt', 'GAUGE', 0)
 | 
						|
    ->addDataset('chmiu', 'GAUGE', 0)
 | 
						|
    ->addDataset('chhmiu', 'GAUGE', 0);
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'ch' => $ch,
 | 
						|
    'cm' => $cm,
 | 
						|
    'chfq' => $chfq,
 | 
						|
    'cmfq' => $cmfq,
 | 
						|
    'crddtme' => $crddtme,
 | 
						|
    'crddtte' => $crddtte,
 | 
						|
    'cdn' => $cdn,
 | 
						|
    'cdhb' => $cdhb,
 | 
						|
    'ctmt' => $ctmt,
 | 
						|
    'ctmiu' => $ctmiu,
 | 
						|
    'cthmiu' => $cthmiu,
 | 
						|
    'chmt' => $chmt,
 | 
						|
    'chmiu' => $chmiu,
 | 
						|
    'chhmiu' => $chhmiu,
 | 
						|
);
 | 
						|
$metrics['cache'] = $fields;
 | 
						|
 | 
						|
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// ADB PROCESSING
 | 
						|
//
 | 
						|
list ($ahts, $aiht, $nhts, $niht) = explode(',', $adb);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'adb');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('ahts', 'GAUGE', 0)
 | 
						|
    ->addDataset('aiht', 'GAUGE', 0)
 | 
						|
    ->addDataset('nhts', 'GAUGE', 0)
 | 
						|
    ->addDataset('niht', 'GAUGE', 0);
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'ahts' => $ahts,
 | 
						|
    'aiht' => $aiht,
 | 
						|
    'nhts' => $nhts,
 | 
						|
    'niht' => $niht
 | 
						|
);
 | 
						|
$metrics['adb'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// SOCKETS PROCESSING
 | 
						|
//
 | 
						|
list ($ui4so, $ui6so, $ti4so, $ti6so, $rso, $ui4sc, $ui6sc, $ti4sc, $ti6sc, $ui4sbf, $ti4sbf, $ui6sbf, $ti6sbf,
 | 
						|
    $ui4scf, $ti4scf, $ui6scf, $ti6scf, $ui4ce, $ti4ce, $ui6ce, $ti6ce, $ti4ca, $ti6ca, $ui4se, $ti4se, $ui6se,
 | 
						|
    $ti6se, $ui4re, $ti4re, $ui6re, $ti6re, $ui4sa, $ui6sa, $ti4sa, $ti6sa, $rsa) = explode(',', $sockets);
 | 
						|
 | 
						|
$rrd_name = array('app', $name, $app_id, 'sockets');
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('ui4so', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6so', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4so', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6so', 'DERIVE', 0)
 | 
						|
    ->addDataset('rso', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4sc', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6sc', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4sc', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6sc', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4sbf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4sbf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6sbf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6sbf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4scf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4scf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6scf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6scf', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4ce', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4ce', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6ce', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6ce', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4ca', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6ca', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4se', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4se', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6se', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6se', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4re', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti4re', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui6re', 'DERIVE', 0)
 | 
						|
    ->addDataset('ti6re', 'DERIVE', 0)
 | 
						|
    ->addDataset('ui4sa', 'GAUGE', 0)
 | 
						|
    ->addDataset('ui6sa', 'GAUGE', 0)
 | 
						|
    ->addDataset('ti4sa', 'GAUGE', 0)
 | 
						|
    ->addDataset('ti6sa', 'GAUGE', 0)
 | 
						|
    ->addDataset('rsa', 'GAUGE', 0);
 | 
						|
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'ui4so' => $ui4so,
 | 
						|
    'ui6so' => $ui6so,
 | 
						|
    'ti4so' => $ti4so,
 | 
						|
    'ti6so' => $ti6so,
 | 
						|
    'rso' => $rso,
 | 
						|
    'ui4sc' => $ui4sc,
 | 
						|
    'ui6sc' => $ui6sc,
 | 
						|
    'ti4sc' => $ti4sc,
 | 
						|
    'ti6sc' => $ti6sc,
 | 
						|
    'ui4sbf' => $ui4sbf,
 | 
						|
    'ti4sbf' => $ti4sbf,
 | 
						|
    'ui6sbf' => $ui6sbf,
 | 
						|
    'ti6sbf' => $ti6sbf,
 | 
						|
    'ui4scf' => $ui4scf,
 | 
						|
    'ti4scf' => $ti4scf,
 | 
						|
    'ui6scf' => $ui6scf,
 | 
						|
    'ti6scf' => $ti6scf,
 | 
						|
    'ui4ce' => $ui4ce,
 | 
						|
    'ti4ce' => $ti4ce,
 | 
						|
    'ui6ce' => $ui6ce,
 | 
						|
    'ti6ce' => $ti6ce,
 | 
						|
    'ti4ca' => $ti4ca,
 | 
						|
    'ti6ca' => $ti6ca,
 | 
						|
    'ui4se' => $ui4se,
 | 
						|
    'ti4se' => $ti4se,
 | 
						|
    'ui6se' => $ui6se,
 | 
						|
    'ti6se' => $ti6se,
 | 
						|
    'ui4re' => $ui4re,
 | 
						|
    'ti4re' => $ti4re,
 | 
						|
    'ui6re' => $ui6re,
 | 
						|
    'ti6re' => $ti6re,
 | 
						|
    'ui4sa' => $ui4sa,
 | 
						|
    'ui6sa' => $ui6sa,
 | 
						|
    'ti4sa' => $ti4sa,
 | 
						|
    'ti6sa' => $ti6sa,
 | 
						|
    'rsa' => $ti6sa,
 | 
						|
);
 | 
						|
$metrics['sockets'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
//
 | 
						|
// RR SETS PROCESSING
 | 
						|
//
 | 
						|
list ($a, $aaaa, $afsdb, $apl, $caa, $cdnskey, $cds, $cert, $cname, $dhcid, $dlv, $dnskey, $ds, $ipseckey, $key, $kx,
 | 
						|
    $loc, $mx, $naptr, $ns, $nsec, $nsec3, $nsec3param, $ptr, $rrsig, $rp, $sig, $soa, $srv, $sshfp, $ta, $tkey, $tlsa,
 | 
						|
    $tsig, $txt, $uri, $dname, $nxdomain, $any, $axfr, $ixfr, $opt, $spf, $nota, $notaaaa, $notafsdb, $notapl, $notcaa, $notcdnskey,
 | 
						|
    $notcds, $notcert, $notcname, $notdhcid, $notdlv, $notdnskey, $notds, $notipseckey, $notkey, $notkx, $notloc, $notmx,
 | 
						|
    $notnaptr, $notns, $notnsec, $notnsec3, $notnsec3param, $notptr, $notrrsig, $notrp, $notsig, $notsoa, $notsrv,
 | 
						|
    $notsshfp, $notta, $nottkey, $nottlsa, $nottsig, $nottxt, $noturi, $notdname, $notnxdomain, $notany, $notaxfr, $notixfr, $notopt,
 | 
						|
    $notspf) = explode(',', $rrsets);
 | 
						|
 | 
						|
$rrd_def = RrdDefinition::make()
 | 
						|
    ->addDataset('any', 'GAUGE', 0)
 | 
						|
    ->addDataset('a', 'GAUGE', 0)
 | 
						|
    ->addDataset('aaaa', 'GAUGE', 0)
 | 
						|
    ->addDataset('cname', 'GAUGE', 0)
 | 
						|
    ->addDataset('mx', 'GAUGE', 0)
 | 
						|
    ->addDataset('ns', 'GAUGE', 0)
 | 
						|
    ->addDataset('ptr', 'GAUGE', 0)
 | 
						|
    ->addDataset('soa', 'GAUGE', 0)
 | 
						|
    ->addDataset('srv', 'GAUGE', 0)
 | 
						|
    ->addDataset('spf', 'GAUGE', 0)
 | 
						|
    ->addDataset('afsdb', 'GAUGE', 0)
 | 
						|
    ->addDataset('apl', 'GAUGE', 0)
 | 
						|
    ->addDataset('caa', 'GAUGE', 0)
 | 
						|
    ->addDataset('cdnskey', 'GAUGE', 0)
 | 
						|
    ->addDataset('cds', 'GAUGE', 0)
 | 
						|
    ->addDataset('cert', 'GAUGE', 0)
 | 
						|
    ->addDataset('dhcid', 'GAUGE', 0)
 | 
						|
    ->addDataset('dlv', 'GAUGE', 0)
 | 
						|
    ->addDataset('dnskey', 'GAUGE', 0)
 | 
						|
    ->addDataset('ds', 'GAUGE', 0)
 | 
						|
    ->addDataset('ipseckey', 'GAUGE', 0)
 | 
						|
    ->addDataset('key', 'GAUGE', 0)
 | 
						|
    ->addDataset('kx', 'GAUGE', 0)
 | 
						|
    ->addDataset('loc', 'GAUGE', 0)
 | 
						|
    ->addDataset('naptr', 'GAUGE', 0)
 | 
						|
    ->addDataset('nsec', 'GAUGE', 0)
 | 
						|
    ->addDataset('nsec3', 'GAUGE', 0)
 | 
						|
    ->addDataset('nsec3param', 'GAUGE', 0)
 | 
						|
    ->addDataset('rrsig', 'GAUGE', 0)
 | 
						|
    ->addDataset('rp', 'GAUGE', 0)
 | 
						|
    ->addDataset('sig', 'GAUGE', 0)
 | 
						|
    ->addDataset('sshfp', 'GAUGE', 0)
 | 
						|
    ->addDataset('ta', 'GAUGE', 0)
 | 
						|
    ->addDataset('tkey', 'GAUGE', 0)
 | 
						|
    ->addDataset('tlsa', 'GAUGE', 0)
 | 
						|
    ->addDataset('tsig', 'GAUGE', 0)
 | 
						|
    ->addDataset('txt', 'GAUGE', 0)
 | 
						|
    ->addDataset('uri', 'GAUGE', 0)
 | 
						|
    ->addDataset('dname', 'GAUGE', 0)
 | 
						|
    ->addDataset('nxdomain', 'GAUGE', 0)
 | 
						|
    ->addDataset('axfr', 'GAUGE', 0)
 | 
						|
    ->addDataset('ixfr', 'GAUGE', 0)
 | 
						|
    ->addDataset('opt', 'GAUGE', 0);
 | 
						|
 | 
						|
//first handle the positive
 | 
						|
$rrd_name = array('app', $name, $app_id, 'rrpositive');
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'any'   => $any,
 | 
						|
    'a'     => $a,
 | 
						|
    'aaaa'  => $aaaa,
 | 
						|
    'cname' => $cname,
 | 
						|
    'mx'    => $mx,
 | 
						|
    'ns'    => $ns,
 | 
						|
    'ptr'   => $ptr,
 | 
						|
    'soa'   => $soa,
 | 
						|
    'srv'   => $srv,
 | 
						|
    'spf'   => $spf,
 | 
						|
    'afsdb' => $afsdb,
 | 
						|
    'apl' => $apl,
 | 
						|
    'caa' => $caa,
 | 
						|
    'cdnskey' => $cdnskey,
 | 
						|
    'cds' => $cds,
 | 
						|
    'cert' => $cert,
 | 
						|
    'dhcid' => $dhcid,
 | 
						|
    'dlv' => $dlv,
 | 
						|
    'dnskey' => $dnskey,
 | 
						|
    'ds' => $ds,
 | 
						|
    'ipseckey' => $ipseckey,
 | 
						|
    'key' => $key,
 | 
						|
    'kx' => $kx,
 | 
						|
    'loc' => $loc,
 | 
						|
    'naptr' => $naptr,
 | 
						|
    'nsec' => $nsec,
 | 
						|
    'nsec3' => $nsec3,
 | 
						|
    'nsec3param' => $nsec3param,
 | 
						|
    'rrsig' => $rrsig,
 | 
						|
    'rp' => $rp,
 | 
						|
    'sig' => $sig,
 | 
						|
    'sshfp' => $sshfp,
 | 
						|
    'ta' => $ta,
 | 
						|
    'tkey' => $tkey,
 | 
						|
    'tlsa' => $tlsa,
 | 
						|
    'tsig' => $tsig,
 | 
						|
    'txt' => $txt,
 | 
						|
    'uri' => $uri,
 | 
						|
    'dname' => $dname,
 | 
						|
    'nxdomain' => $nxdomain,
 | 
						|
    'axfr' => $axfr,
 | 
						|
    'ixfr' => $ixfr,
 | 
						|
    'opt' => $opt,
 | 
						|
);
 | 
						|
$metrics['rrpositive'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
 | 
						|
// now handle the negative
 | 
						|
$rrd_name = array('app', $name, $app_id, 'rrnegative');
 | 
						|
 | 
						|
$fields = array(
 | 
						|
    'any'   => $notany,
 | 
						|
    'a'     => $nota,
 | 
						|
    'aaaa'  => $notaaaa,
 | 
						|
    'cname' => $notcname,
 | 
						|
    'mx'    => $notmx,
 | 
						|
    'ns'    => $notns,
 | 
						|
    'ptr'   => $notptr,
 | 
						|
    'soa'   => $notsoa,
 | 
						|
    'srv'   => $notsrv,
 | 
						|
    'spf'   => $notspf,
 | 
						|
    'afsdb' => $notafsdb,
 | 
						|
    'apl' => $notapl,
 | 
						|
    'caa' => $notcaa,
 | 
						|
    'cdnskey' => $notcdnskey,
 | 
						|
    'cds' => $notcds,
 | 
						|
    'cert' => $notcert,
 | 
						|
    'dhcid' => $notdhcid,
 | 
						|
    'dlv' => $notdlv,
 | 
						|
    'dnskey' => $notdnskey,
 | 
						|
    'ds' => $notds,
 | 
						|
    'ipseckey' => $notipseckey,
 | 
						|
    'key' => $notkey,
 | 
						|
    'kx' => $notkx,
 | 
						|
    'loc' => $notloc,
 | 
						|
    'naptr' => $notnaptr,
 | 
						|
    'nsec' => $notnsec,
 | 
						|
    'nsec3' => $notnsec3,
 | 
						|
    'nsec3param' => $notnsec3param,
 | 
						|
    'rrsig' => $notrrsig,
 | 
						|
    'rp' => $notrp,
 | 
						|
    'sig' => $notsig,
 | 
						|
    'sshfp' => $notsshfp,
 | 
						|
    'ta' => $notta,
 | 
						|
    'tkey' => $nottkey,
 | 
						|
    'tlsa' => $nottlsa,
 | 
						|
    'tsig' => $nottsig,
 | 
						|
    'txt' => $nottxt,
 | 
						|
    'uri' => $noturi,
 | 
						|
    'dname' => $notdname,
 | 
						|
    'nxdomin'=> $notnxdomain,
 | 
						|
    'axfr' => $notaxfr,
 | 
						|
    'ixfr' => $notixfr,
 | 
						|
    'opt' => $notopt,
 | 
						|
);
 | 
						|
$metrics['rrnegative'] = $fields;
 | 
						|
 | 
						|
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
 | 
						|
data_update($device, 'app', $tags, $fields);
 | 
						|
update_application($app, $bind, $metrics);
 |