} ) ) container.addWidget( Widget( { "type": Widget.__WidgetTypeBarChart__, "id": "securitypackets", "title": "Security Packets Statistics", "mode": "counter", "unit": "packets", } ) ) # Add specific NetFLow Stats only for those interfaces that have them if len(interface.netflowStats(i)) > 0: container.addWidget( Widget( { "type": Widget.__WidgetTypeTable__, "id": "netflowstats", "title": "NetFlow Statistics", "mode": "counter", "unit": "bytes", } ) ) # Add specific SFlow Stats only for those interfaces that have them if len(interface.sflowStats(i)) > 0: container.addWidget( Widget(
'type': Widget.__WidgetTypePieChart__, 'id': 'protocolpackets', 'title': 'Byte Statistics', 'mode': 'counter', 'unit': 'bytes' })) container.addWidget( Widget({ 'type': Widget.__WidgetTypeBarChart__, 'id': 'securitypackets', 'title': 'Security Packets Statistics', 'mode': 'counter', 'unit': 'packets' })) # Add specific NetFLow Stats only for those interfaces that have them if (len(interface.netflowStats(i)) > 0): container.addWidget( Widget({ 'type': Widget.__WidgetTypeTable__, 'id': 'netflowstats', 'title': 'NetFlow Statistics', 'mode': 'counter', 'unit': 'bytes' })) # Add specific SFlow Stats only for those interfaces that have them if (len(interface.sflowStats(i)) > 0): container.addWidget( Widget({ 'type': Widget.__WidgetTypePieChart__, 'id': 'sflowstats', 'title': 'SFlow Statistics',
info['address'] = addr if ((len(mode) == 0) or not (mode == "list")): stats = {} stats['pktsStats'] = interface.pktsStats(i) stats['bytesStats'] = interface.bytesStats(i) stats['throughputStats'] = interface.throughputStats(i) ip = {} ip['tcp'] = interface.tcpStats(i) ip['udp'] = interface.udpStats(i) ip['icmp'] = interface.icmpStats(i) ip['ip'] = interface.ipStats(i) stats['securityPkts'] = interface.securityPkts(i) stats['netflowStats'] = interface.netflowStats(i) stats['sflowStats'] = interface.sflowStats(i) stats['cpacketStats'] = interface.cpacketStats(i) stats['ip'] = ip info['stats'] = stats rsp[interface.uniqueName(i)] = info except Exception as inst: print type(inst) # the exception instance print inst.args # arguments stored in .args print inst # __str__ allows args to printed directly ntop.sendHTTPHeader(1) # 1 = HTML ntop.sendString(json.dumps(rsp, sort_keys=True, indent=4))
securityPkts = { "metadata": { "type": "barchart", "title": "Security Packet Statistics", "unit": "packets", "mode": "counter", "total": total }, "data": rs } # Build traffic info for interface if_traffic = [ pktsStats, bytesStats, securityPkts, throughputStats ] rs = interface.netflowStats(i) if (len(rs) > 0): total = rs.pop('total', sum(rs.values())) if_traffic.append({ "metadata": { "type": "table", "title": "Netflow Statistics", "unit": "bytes", "mode": "counter", "total": total }, "data": rs }) rs = interface.sflowStats(i) if (len(rs) > 0):
info['address'] = addr if((len(mode) == 0) or not(mode == "list")): stats = {} stats['pktsStats'] = interface.pktsStats(i) stats['bytesStats'] = interface.bytesStats(i) stats['throughputStats'] = interface.throughputStats(i) ip = {} ip['tcp'] = interface.tcpStats(i) ip['udp'] = interface.udpStats(i) ip['icmp'] = interface.icmpStats(i) ip['ip'] = interface.ipStats(i) stats['securityPkts'] = interface.securityPkts(i) stats['netflowStats'] = interface.netflowStats(i) stats['sflowStats'] = interface.sflowStats(i) stats['cpacketStats'] = interface.cpacketStats(i) stats['ip'] = ip info['stats'] = stats rsp[interface.uniqueName(i)] = info except Exception as inst: print type(inst) # the exception instance print inst.args # arguments stored in .args print inst # __str__ allows args to printed directly ntop.sendHTTPHeader(1) # 1 = HTML ntop.sendString(json.dumps(rsp, sort_keys=True, indent=4))
adapter = {} adapter['actual'] = {'packets': rs.pop('actualPkts',''), 'bytes': rs.pop('actualBytes','')} adapter['peak'] = {'packets': rs.pop('peakPkts',''), 'bytes': rs.pop('peakBytes','')} adapter['last minute'] = {'packets': rs.pop('lastMinPkts',''), 'bytes': rs.pop('lastMinBytes','')} adapter['last 5 minutes'] = {'packets': rs.pop('lastFiveMinsPkts',''), 'bytes': rs.pop('lastFiveMinsBytes','')} if (len(rs) > 0): adapter['other'] = rs throughputStats = { "metadata": { "type":"groupedtable", "title":"Interface Throughput", "unit": "bps", "mode" : "gauge", "total": total }, "data" : adapter } rs = interface.securityPkts(i) total = rs.pop('total',sum(rs.values())) securityPkts = { "metadata": { "type":"barchart", "title":"Security Packet Statistics", "unit": "packets", "mode" : "counter", "total": total}, "data" : rs } # Build traffic info for interface if_traffic = [pktsStats, bytesStats, securityPkts, throughputStats] rs = interface.netflowStats(i) if(len(rs) > 0): total = rs.pop('total',sum(rs.values())) if_traffic.append({"metadata": {"type":"table", "title":"Netflow Statistics", "unit": "bytes", "mode" : "counter", "total": total}, "data":rs}) rs = interface.sflowStats(i) if(len(rs) > 0): total = rs.pop('total',sum(rs.values())) if_traffic.append({"metadata": {"type":"piechart", "title":"SFlow Statistics", "unit": "bytes", "mode" : "counter", "total": total}, "data":rs}) rs = interface.cpacketStats(i) if(len(rs) > 0): total = rs.pop('total',sum(rs.values())) if_traffic.append({"metadata": {"type":"piechart", "title":"CPackets Statistics", "unit": "bytes", "mode" : "counter", "total": total}, "data":rs}) rsp[interface.uniqueName(i)]['protocols'] = if_traffic