Initial checkin.

This commit is contained in:
Ian Gulliver
2016-01-24 22:16:49 -08:00
parent 5fd0d0768e
commit 65c37d7a9a
8 changed files with 1322 additions and 0 deletions

72
tools/collector.py Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/python2.7
import argparse
import glob
import socket
import sys
import time
sys.path.append('..')
from lib import tsdblib
parser = argparse.ArgumentParser()
parser.add_argument('--project', required=True)
parser.add_argument('--base_url', required=True)
FLAGS = parser.parse_args()
class Collector(object):
def __init__(self):
self._start_time = int(time.time())
self._base_tags = self._BaseTags()
self._client = tsdblib.TSDBClient(FLAGS.base_url,
jit_callback=self._PutValues)
def _GetHostname(self):
return socket.gethostname()
def _GetMACAddresses(self):
for path in glob.iglob('/sys/class/net/*/address'):
mac_address = open(path, 'r').read().strip()
if mac_address == '00:00:00:00:00:00':
continue
yield mac_address
def _GetCollectorUptime(self):
return int(time.time()) - self._start_time
def _GetSystemUptime(self):
return int(open('/proc/uptime', 'r').read().split('.', 1)[0])
def _GetLoadAverage1m(self):
return int(float(open('/proc/loadavg', 'r').read().split(' ', 1)[0]) * 100)
def _BaseTags(self):
return [
('project', FLAGS.project),
('hostname', self._GetHostname()),
] + [
('mac_address', mac_address)
for mac_address in self._GetMACAddresses()
]
def _CycleValues(self):
return [
('collector_uptime_seconds', self._GetCollectorUptime()),
('system_uptime_seconds', self._GetSystemUptime()),
('system_load_average_1m', self._GetLoadAverage1m()),
]
def _PutValues(self):
cycle_values = self._CycleValues()
for name, value in cycle_values:
self._client.PutValue(self._base_tags + [('value', name)], value)
def Loop(self):
time.sleep(9999999999)
Collector().Loop()