[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