alertmanager¶
Alertmanager module.
- exception spicerack.alertmanager.AlertmanagerError(message: str, response: Optional[requests.models.Response] = None)[source]¶
Bases:
spicerack.exceptions.SpicerackError
Custom exception class for errors of this module.
Initializes an AlertmanagerError instance with the API response instance.
- Parameters
message (str) -- the actual exception message.
response (requests.Response, optional) -- the requests response object, if present.
- class spicerack.alertmanager.AlertmanagerHosts(target_hosts: spicerack.typing.TypeHosts, *, verbatim_hosts: bool = False, dry_run: bool = True)[source]¶
Bases:
object
Operate on Alertmanager via its APIs.
Initialize the instance.
- Parameters
target_hosts (spicerack.typing.TypeHosts) -- the target hosts either as a NodeSet instance or a sequence of strings.
verbatim_hosts (bool, optional) -- if
True
use the hosts passed verbatim as is, if insteadFalse
, the default, consider the given target hosts as FQDNs and extract their hostnames to be used in Alertmanager.dry_run (bool, optional) -- set to False to cause writes to Alertmanager occur.
When using Alertmanager in high availability (cluster) make sure to pass all hosts in your cluster as alertmanager_urls.
- downtime(reason: spicerack.administrative.Reason, *, duration: datetime.timedelta = datetime.timedelta(seconds=14400)) str [source]¶
Issue a new downtime.
- Parameters
reason (Reason) -- the downtime reason.
duration (datetime.timedelta) -- how long to downtime for.
- Returns
the downtime ID.
- Return type
- Raises
AlertmanagerError -- if none of the alertmanager_urls API returned a success.
- downtimed(reason: spicerack.administrative.Reason, *, duration: datetime.timedelta = datetime.timedelta(seconds=14400), remove_on_error: bool = False) Iterator[None] [source]¶
Context manager to perform actions while the hosts are downtimed on Alertmanager.
- Parameters
reason (spicerack.administrative.Reason) -- the reason to set for the downtime on Alertmanager.
duration (datetime.timedelta, optional) -- the length of the downtime period.
remove_on_error -- should the downtime be removed even if an exception was raised.
- Yields
None -- it just yields control to the caller once Alertmanager has received the downtime and deletes the downtime once getting back the control.