class ServerService:
-
def __init__(self, config: Config):
self.common_db = CommonDbClient(config)
- def create_alarm(self,
- name: str,
- threshold: float,
- operation: str,
- severity: str,
- statistic: str,
- metric_name: str,
- tags: dict) -> Alarm:
+ def create_alarm(
+ self,
+ name: str,
+ threshold: float,
+ operation: str,
+ severity: str,
+ statistic: str,
+ metric_name: str,
+ action: str,
+ tags: dict,
+ ) -> Alarm:
log.debug("create_alarm")
- alarm = Alarm(name, severity, threshold, operation, statistic, metric_name, tags)
+ alarm = Alarm(
+ name, severity, threshold, operation, statistic, metric_name, action, tags
+ )
self.common_db.create_alarm(alarm)
log.info("Alarm %s created", alarm.name)
return alarm
- def delete_alarm(self,
- alarm_uuid: str) -> None:
+ def delete_alarm(self, alarm_uuid: str) -> None:
log.debug("delete_alarm")
self.common_db.delete_alarm(alarm_uuid)
log.info("Alarm %s is deleted", alarm_uuid)
+
+ def populate_prometheus(self):
+ # This method can be executed infinite number of times
+ # without side-effects.
+ log.info("Setting up MON Exporter in prometheus")
+ result = self.common_db.common_db.set_one(
+ "prometheus_jobs",
+ {"job_name": "mon_exporter"},
+ {"job_name": "mon_exporter", "static_configs": [{"targets": ["mon:8000"]}]},
+ fail_on_empty=False,
+ upsert=True,
+ )
+ log.info("Prometheus Jobs added > {}".format(result))