Repository
Munin (contrib)
Last change
2020-11-26
Graph Categories
Keywords
Language
Python (3.x)

sockstat-via-procfs

Sadly there is no documentation for this plugin.

#!/usr/bin/env python3

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(r'(\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)