[AETHER-3122] - Make probing period configurable
Change-Id: Id425c950f421a94014cb9ae4117e153e4019982b
diff --git a/app.py b/app.py
index 3adb9dd..1b2c075 100644
--- a/app.py
+++ b/app.py
@@ -52,6 +52,17 @@
unreachable[device.imsi_id] = {'ip':device.ip, 'imsi':device.imsi, 'last_reachable':'{:%Y-%m-%d %H:%M:%S}'.format(device.last_reachable)}
return unreachable
+@app.route("/config")
+def config():
+ global args
+ period = request.args.get('period')
+ if period is not None:
+ args.period = int(period)
+ config = vars(args)
+ config.pop('token', None)
+ config.pop('user', None)
+ config.pop('password', None)
+ return config
def build_argparser():
@@ -74,6 +85,10 @@
help="Service port",
type=str,
default="3333")
+ args.add_argument("--period",
+ help="Probing period in sec",
+ type=int,
+ default=180)
return parser
def update(roc, prom, old):
@@ -97,14 +112,14 @@
log.info("{}/{}/{} - unreachable".format(device.imsi_id, device.imsi, device.ip))
def work_thread(roc, prom):
- global devices, lock
+ global devices, lock, args
while True:
new = update(roc, prom, devices)
probe(new)
with lock:
devices = new
- time.sleep(5)
+ time.sleep(args.period)
if __name__ == '__main__':
diff --git a/exporter.py b/exporter.py
index ee8ce88..7c9d7de 100644
--- a/exporter.py
+++ b/exporter.py
@@ -2,10 +2,17 @@
import os
import time
-from prometheus_client import start_http_server, Gauge
+from prometheus_client import start_http_server, Gauge, REGISTRY, PROCESS_COLLECTOR, PLATFORM_COLLECTOR
import requests
import json
+REGISTRY.unregister(PROCESS_COLLECTOR)
+REGISTRY.unregister(PLATFORM_COLLECTOR)
+# Unlike process and platform_collector gc_collector registers itself as three different collectors that have no corresponding public named variable.
+REGISTRY.unregister(REGISTRY._names_to_collectors['python_gc_objects_collected_total'])
+#REGISTRY.unregister(REGISTRY._names_to_collectors['python_gc_uncollectable_objects_sum'])
+#REGISTRY.unregister(REGISTRY._names_to_collectors['python_gc_collected_objects_sum'])
+
class Metrics:
def __init__(self, app_port=3333, polling_interval_seconds=5):
self.app_port = app_port