#!/usr/bin/env python import re import sys fields = ( ('sockets_used', 'sockets used'), ('tcp_inuse', 'TCP inuse'), ('tcp_orphan', 'TCP orphan'), ('tcp_tw', 'TCP tw'), ('tcp_alloc', 'TCP alloc'), ('tcp_mem', 'TCP mem'), ('udp_inuse', 'UDP inuse'), ('udplite_inuse', 'UDPLITE inuse'), ('raw_inuse', 'RAW inuse'), ('frag_inuse', 'FRAG inuse'), ('frag_memory', 'FRAG memory'), ) if len(sys.argv) > 1: arg = sys.argv[1] if arg == 'autoconfig': print('yes') sys.exit(0) if arg == 'config': print('graph_title sockstat') print('graph_category network') for name, label in fields: print('%s.label %s' % (name, label)) sys.exit(0) re_num = re.compile('(\d+)') sockstat = open('/proc/net/sockstat').read() numbers = re_num.findall(sockstat) for i, (name, label) in enumerate(fields): print('%s.value %s' % (name, numbers[i])) sys.exit(0)