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>
if "scrape_configs" not in config_file_yaml:
config_file_yaml["scrape_configs"] = []
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)
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)
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
+ - job_name: 'mon_exporter'
+ static_configs:
+ - targets: ['mon:8000']
- job_name: pushgateway
honor_labels: true
scrape_interval: 30s
- job_name: pushgateway
honor_labels: true
scrape_interval: 30s
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
- scrape_configs: []
- # scrape_configs:
+ scrape_configs:
+ - job_name: 'mon_exporter'
+ static_configs:
+ - targets: ['mon:8000']
# Add here other external targets, e.g. a pushgateway
# - job_name: 'pushgateway'
# static_configs:
# Add here other external targets, e.g. a pushgateway
# - job_name: 'pushgateway'
# static_configs: