1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00

Merge pull request #27 from murrant/rrdcached

Local script to collect stats from rrdcached
This commit is contained in:
Neil Lathwood
2016-06-09 11:38:43 +01:00

45
agent-local/rrdcached Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env python
import socket
import sys
import os
# Unix socket
server_address = '/var/run/rrdcached.sock'
# TCP socket
#server_address = 'localhost:42217'
sock = None
try:
if os.path.exists(server_address):
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
else:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if ':' in server_address:
split = server_address.rsplit(':', 1)
server_address = (split[0],int(split[1]))
else:
server_address = (server_address, 42217)
sock.connect(server_address)
except socket.error as e:
sys.stderr.write(str(e) + ': ' + str(server_address) + '\n')
sys.exit(1)
buffer = ''
max = -1
try:
sock.settimeout(5)
sock.sendall('STATS\n'.encode())
while max == -1 or len(buffer.split('\n')) < max:
buffer += sock.recv(1024).decode()
if max == -1:
# the first line contains the number of following lines
max = int(buffer.split(' ')[0]) + 1
except socket.error as e:
sys.stderr.write(str(e) + '\n')
sys.exit(1)
sock.close()
print('<<<rrdcached>>>')
print(buffer.rstrip('\n'))