new sensor manage code
diff --git a/sensors/receiver.py b/sensors/receiver.py
new file mode 100644
index 0000000..369a65f
--- /dev/null
+++ b/sensors/receiver.py
@@ -0,0 +1,43 @@
+import yaml
+
+from api import start_monitoring, Empty
+from influx_exporter import connect, add_data
+
+monitor_config = yaml.load(open("config.yaml").read())
+
+uri = "udp://192.168.0.104:12001"
+infldb_url = "influxdb://perf:perf@192.168.152.42:8086/perf"
+conn = connect(infldb_url)
+
+sw_per_ip = {}
+count = 4
+expected = ['192.168.0.104', '192.168.152.41',
+ '192.168.152.39', '192.168.152.40']
+
+with start_monitoring(uri, monitor_config) as queue:
+ while True:
+ try:
+ (ip, port), data = queue.get(True, 1)
+
+ if 'sda1.sectors_written' in data:
+ val = data['sda1.sectors_written']
+ elif 'sdb.sectors_written' in data:
+ val = data['sdb.sectors_written']
+ else:
+ val = 0
+
+ sw_per_ip[ip] = sw_per_ip.get(ip, 0) + val
+ count -= 1
+
+ if 0 == count:
+ try:
+ vals = [sw_per_ip[ip] for ip in expected]
+ print ("{:>6}" * 4).format(*vals)
+ sw_per_ip = {}
+ count = 4
+ except KeyError:
+ pass
+
+ add_data(conn, ip, [data])
+ except Empty:
+ pass