alerting
Alerting module.
- class spicerack.alerting.AlertingHosts(alertmanager_hosts: spicerack.alertmanager.AlertmanagerHosts, icinga_hosts: spicerack.icinga.IcingaHosts) None[source]
Bases:
objectOperate on Alertmanager and Icinga via their APIs.
Initialize the instance.
- Parameters:
alertmanager_hosts (
spicerack.alertmanager.AlertmanagerHosts) -- the Alertmanager hosts to talk to.icinga_hosts (
spicerack.icinga.IcingaHosts) -- the Icinga hosts to talk to.
- downtime(reason: spicerack.administrative.Reason, *, duration: datetime.timedelta = datetime.timedelta(seconds=14400)) str[source]
Issue a new downtime.
- Parameters:
reason (
spicerack.administrative.Reason) -- the downtime reason.duration (
datetime.timedelta, default:datetime.timedelta(seconds=14400)) -- how long to downtime for.
- Return type:
- Returns:
The alertmanager downtime ID.
- Raises:
spicerack.alertmanager.AlertmanagerError -- if none of the
alertmanager_urlsAPI returned a success.spicerack.icinga.IcingaError -- if there is a problem downtiming the hosts on Icinga.
- downtimed(reason: spicerack.administrative.Reason, *, duration: datetime.timedelta = datetime.timedelta(seconds=14400), remove_on_error: bool = False) collections.abc.Iterator[None][source]
Context manager to perform actions while the hosts are downtimed on Alertmanager and Icinga.
- Parameters:
reason (
spicerack.administrative.Reason) -- the reason to set for the downtime.duration (
datetime.timedelta, default:datetime.timedelta(seconds=14400)) -- the length of the downtime period.remove_on_error (
bool, default:False) -- should the downtime be removed even if an exception was raised.
- Yields:
None -- it just yields control to the caller once Alertmanager and Icinga have received the downtime and deletes the downtime once getting back the control.
- Return type: