addDataset('type0', 'DERIVE', 0, 125000000000) ->addDataset('A', 'DERIVE', 0, 125000000000) ->addDataset('NS', 'DERIVE', 0, 125000000000) ->addDataset('CNAME', 'DERIVE', 0, 125000000000) ->addDataset('SOA', 'DERIVE', 0, 125000000000) ->addDataset('NULL', 'DERIVE', 0, 125000000000) ->addDataset('WKS', 'DERIVE', 0, 125000000000) ->addDataset('PTR', 'DERIVE', 0, 125000000000) ->addDataset('MX', 'DERIVE', 0, 125000000000) ->addDataset('TXT', 'DERIVE', 0, 125000000000) ->addDataset('AAAA', 'DERIVE', 0, 125000000000) ->addDataset('SRV', 'DERIVE', 0, 125000000000) ->addDataset('NAPTR', 'DERIVE', 0, 125000000000) ->addDataset('DS', 'DERIVE', 0, 125000000000) ->addDataset('DNSKEY', 'DERIVE', 0, 125000000000) ->addDataset('SPF', 'DERIVE', 0, 125000000000) ->addDataset('ANY', 'DERIVE', 0, 125000000000) ->addDataset('other', 'DERIVE', 0, 125000000000); $fields = array ( 'type0' => $unbound['num.query.type.TYPE0'], 'a' => $unbound['num.query.type.A'], 'ns' => $unbound['num.query.type.NS'], 'cname' => $unbound['num.query.type.CNAME'], 'soa' => $unbound['num.query.type.SOA'], 'null' => $unbound['num.query.type.NULL'], 'wks' => $unbound['num.query.type.WKS'], 'ptr' => $unbound['num.query.type.PTR'], 'mx' => $unbound['num.query.type.MX'], 'txt' => $unbound['num.query.type.TXT'], 'aaaa' => $unbound['num.query.type.AAAA'], 'srv' => $unbound['num.query.type.SRV'], 'naptr' => $unbound['num.query.type.NAPTR'], 'ds' => $unbound['num.query.type.DS'], 'dnskey' => $unbound['num.query.type.DNSKEY'], 'spf' => $unbound['num.query.type.SPF'], 'any' => $unbound['num.query.type.ANY'], 'other' => $unbound['num.query.type.other'] ); $metrics['queries'] = $fields; $tags = compact('name', 'app_id', 'rrd_name', 'rrd_def'); data_update($device, 'app', $tags, $fields); #Unbound Cache $rrd_name = array('app', $name,'cache',$app_id); $rrd_def = RrdDefinition::make() ->addDataset('queries', 'DERIVE', 0, 125000000000) ->addDataset('hits', 'DERIVE', 0, 125000000000) ->addDataset('misses', 'DERIVE', 0, 125000000000); $fields = array ( 'queries' => $unbound['total.num.queries'], 'hits' => $unbound['total.num.cachehits'], 'misses' => $unbound['total.num.cachemiss'] ); $metrics['cache'] = $fields; $tags = compact('name', 'app_id', 'rrd_name', 'rrd_def'); data_update($device, 'app', $tags, $fields); #Unbound Operations - Total opcodes and three valuable return codes $rrd_name = array('app', $name,'operations',$app_id); $rrd_def = RrdDefinition::make() ->addDataset('opcodeQuery', 'DERIVE', 0, 125000000000) ->addDataset('rcodeNOERROR', 'DERIVE', 0, 125000000000) ->addDataset('rcodeNXDOMAIN', 'DERIVE', 0, 125000000000) ->addDataset('rcodeNodata', 'DERIVE', 0, 125000000000); $fields = array ( 'opcodeQuery' => $unbound['num.query.opcode.QUERY'], 'rcodeNOERROR' => $unbound['num.answer.rcode.NOERROR'], 'rcodeNXDOMAIN' => $unbound['num.answer.rcode.NXDOMAIN'], 'rcodeNodata' => $unbound['num.answer.rcode.nodata'] ); $metrics['operations'] = $fields; $tags = compact('name', 'app_id', 'rrd_name', 'rrd_def'); data_update($device, 'app', $tags, $fields); #Unbound requestlist $rrd_name = array('app', $name,'requestlist',$app_id); $rrd_def = RrdDefinition::make() ->addDataset('max', 'DERIVE', 0, 125000000000) ->addDataset('overwritten', 'DERIVE', 0, 125000000000) ->addDataset('exceeded', 'DERIVE', 0, 125000000000); $fields = array ( 'max' => $unbound['total.requestlist.max'], 'overwritten' => $unbound['total.requestlist.overwritten'], 'exceeded' => $unbound['total.requestlist.exceeded'] ); $metrics['requestlist'] = $fields; $tags = compact('name', 'app_id', 'rrd_name', 'rrd_def'); data_update($device, 'app', $tags, $fields); #Unbound recursiontime $rrd_name = array('app', $name,'recursiontime',$app_id); $rrd_def = RrdDefinition::make() ->addDataset('avg', 'GAUGE', 0, 125000000000) ->addDataset('median', 'GAUGE', 0, 125000000000); $fields = array ( 'avg' => $unbound['total.recursion.time.avg'], 'median' => $unbound['total.recursion.time.median'] ); $metrics['recursiontime'] = $fields; $tags = compact('name', 'app_id', 'rrd_name', 'rrd_def'); data_update($device, 'app', $tags, $fields); update_application($app, $rawdata, $metrics); unset($lines, $unbound, $rrd_name, $rrd_def, $fields, $tags);