Add mon-exporter as scrape target in Prometheus

The Prometheus sidecar is expected to generate the scrape targets from
the config map and from the prometheus_jobs in MongoDB. MON is adding
mon-exporter as prometheus_job in MongoDB. There are race conditions in
the start of MON and Prometheus that prevent the sidecar to be aware
of the mon-exporter being added to prometheus_jobs collection in
MongoDB.

This change adds mon-exporter to the default scrape-targets and reconciles
the jobs in Mongo and the jobs in the configmap, prevailing the job in the
configmap if duplicated.

Change-Id: Ib6f1cb89723d7b4942eeb77fd0ea46a0d3493d58
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/docker/Prometheus/src/app.py b/docker/Prometheus/src/app.py
index eb62555..b06f448 100755
--- a/docker/Prometheus/src/app.py
+++ b/docker/Prometheus/src/app.py
@@ -70,9 +70,20 @@
     if "scrape_configs" not in config_file_yaml:
         config_file_yaml["scrape_configs"] = []
 
+    prometheus_jobs_to_be_added = []
+
     for prometheus_job in prometheus_jobs:
         cleaned_up_job = clean_up_job(prometheus_job)
-        config_file_yaml["scrape_configs"].append(cleaned_up_job)
+        job_to_be_added = True
+        for sc in config_file_yaml["scrape_configs"]:
+            if sc.get("job_name") == cleaned_up_job.get("job_name"):
+                job_to_be_added = False
+                break
+        if job_to_be_added:
+            prometheus_jobs_to_be_added.append(cleaned_up_job)
+
+    for job in prometheus_jobs_to_be_added:
+        config_file_yaml["scrape_configs"].append(job)
 
     return config_file_yaml