includes/polling/applications/nfs-v3-stats.inc.php
<?php
use LibreNMS\RRD\RrdDefinition;
$name = 'nfs-v3-stats';
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.7.110.102.115.115.116.97.116';
$nfsstats = snmp_walk($device, $oid, '-Oqv', 'NET-SNMP-EXTEND-MIB');
$rrd_def = RrdDefinition::make()
->addDataset('rc_hits', 'GAUGE', 0)
->addDataset('rc_misses', 'GAUGE', 0)
->addDataset('rc_nocache', 'GAUGE', 0)
->addDataset('fh_lookup', 'GAUGE', 0)
->addDataset('fh_anon', 'GAUGE', 0)
->addDataset('fh_ncachedir', 'GAUGE', 0)
->addDataset('fh_ncachenondir', 'GAUGE', 0)
->addDataset('fh_stale', 'GAUGE', 0)
->addDataset('io_read', 'GAUGE', 0)
->addDataset('io_write', 'GAUGE', 0)
->addDataset('ra_size', 'GAUGE', 0)
->addDataset('ra_range01', 'GAUGE', 0)
->addDataset('ra_range02', 'GAUGE', 0)
->addDataset('ra_range03', 'GAUGE', 0)
->addDataset('ra_range04', 'GAUGE', 0)
->addDataset('ra_range05', 'GAUGE', 0)
->addDataset('ra_range06', 'GAUGE', 0)
->addDataset('ra_range07', 'GAUGE', 0)
->addDataset('ra_range08', 'GAUGE', 0)
->addDataset('ra_range09', 'GAUGE', 0)
->addDataset('ra_range10', 'GAUGE', 0)
->addDataset('ra_notfound', 'GAUGE', 0)
->addDataset('net_all', 'GAUGE', 0)
->addDataset('net_udp', 'GAUGE', 0)
->addDataset('net_tcp', 'GAUGE', 0)
->addDataset('net_tcpconn', 'GAUGE', 0)
->addDataset('rpc_calls', 'GAUGE', 0)
->addDataset('rpc_badcalls', 'GAUGE', 0)
->addDataset('rpc_badfmt', 'GAUGE', 0)
->addDataset('rpc_badauth', 'GAUGE', 0)
->addDataset('rpc_badclnt', 'GAUGE', 0)
->addDataset('proc3_null', 'GAUGE', 0)
->addDataset('proc3_getattr', 'GAUGE', 0)
->addDataset('proc3_setattr', 'GAUGE', 0)
->addDataset('proc3_lookup', 'GAUGE', 0)
->addDataset('proc3_access', 'GAUGE', 0)
->addDataset('proc3_readlink', 'GAUGE', 0)
->addDataset('proc3_read', 'GAUGE', 0)
->addDataset('proc3_write', 'GAUGE', 0)
->addDataset('proc3_create', 'GAUGE', 0)
->addDataset('proc3_mkdir', 'GAUGE', 0)
->addDataset('proc3_symlink', 'GAUGE', 0)
->addDataset('proc3_mknod', 'GAUGE', 0)
->addDataset('proc3_remove', 'GAUGE', 0)
->addDataset('proc3_rmdir', 'GAUGE', 0)
->addDataset('proc3_rename', 'GAUGE', 0)
->addDataset('proc3_link', 'GAUGE', 0)
->addDataset('proc3_readdir', 'GAUGE', 0)
->addDataset('proc3_readdirplus', 'GAUGE', 0)
->addDataset('proc3_fsstat', 'GAUGE', 0)
->addDataset('proc3_fsinfo', 'GAUGE', 0)
->addDataset('proc3_pathconf', 'GAUGE', 0)
->addDataset('proc3_commit', 'GAUGE', 0);
$data = explode("\n", $nfsstats);
$fields = [
'rc_hits' => $data[1],
'rc_misses' => $data[2],
'rc_nocache' => $data[3],
'fh_lookup' => $data[4],
'fh_anon' => $data[5],
'fh_ncachedir' => $data[6],
'fh_ncachenondir' => $data[7],
'fh_stale' => $data[8],
'io_read' => $data[9],
'io_write' => $data[10],
'ra_size' => $data[0],
'ra_range01' => $data[11],
'ra_range02' => $data[12],
'ra_range03' => $data[13],
'ra_range04' => $data[14],
'ra_range05' => $data[15],
'ra_range06' => $data[16],
'ra_range07' => $data[17],
'ra_range08' => $data[18],
'ra_range09' => $data[19],
'ra_range10' => $data[20],
'ra_notfound' => $data[21],
'net_all' => $data[22],
'net_udp' => $data[23],
'net_tcp' => $data[24],
'net_tcpconn' => $data[25],
'rpc_calls' => $data[26],
'rpc_badcalls' => $data[27],
'rpc_badfmt' => $data[28],
'rpc_badauth' => $data[29],
'rpc_badclnt' => $data[30],
'proc3_null' => $data[31],
'proc3_getattr' => $data[32],
'proc3_setattr' => $data[33],
'proc3_lookup' => $data[34],
'proc3_access' => $data[35],
'proc3_readlink' => $data[36],
'proc3_read' => $data[37],
'proc3_write' => $data[38],
'proc3_create' => $data[39],
'proc3_mkdir' => $data[40],
'proc3_symlink' => $data[41],
'proc3_mknod' => $data[42],
'proc3_remove' => $data[43],
'proc3_rmdir' => $data[44],
'proc3_rename' => $data[45],
'proc3_link' => $data[46],
'proc3_readdir' => $data[47],
'proc3_readdirplus' => $data[48],
'proc3_fsstat' => $data[49],
'proc3_fsinfo' => $data[50],
'proc3_pathconf' => $data[51],
'proc3_commit' => $data[52],
];
$tags = [
'name' => $name,
'app_id' => $app->app_id,
'rrd_name' => ['app', 'nfs-stats', $app->app_id],
'rrd_def' => $rrd_def,
];
data_update($device, 'app', $tags, $fields);
update_application($app, $nfsstats, $fields);
unset($nfsstats, $rrd_def, $data, $fields, $tags);