Reference
lib_alert_tree
Library for creating and manipulating hierarchies of Prometheus alerts.
- lib_alert_tree.__version__ = '0.1.0'
The version of this project.
lib_alert_tree.models
Classes for manipulating tree-like hierarchies of alerts.
- class lib_alert_tree.models.BaseAlert
Base-class for alert models.
- abstract property alert_rule
Generate a ‘prometheus.AlertRule’ corresponding to this model.
- create_node(tree, parent=None)
Add this alert to a tree.
- classmethod critical(name, **kwargs)
Helper to generate an alert with “critical” severity.
- property pretty_str
A colored string (based on severity), if Click is available.
- property query
A PromQL query to retrieve the alert represented by this model.
- classmethod warning(name, **kwargs)
Helper to generate an alert with “warning” severity.
- class lib_alert_tree.models.DerivedAlert(name, children, relationship, group_by=None, **params)
A non-leaf node (logical) in a tree of alerts.
This is a computed alert rule, which maps a list of weighted edges towards other nodes (leaves or not) with a single alert.
In practice, one can fully build up a tree using a DerivedAlert instance as the root, using the build_tree method.
- property alert_rule
Generate a ‘prometheus.AlertRule’ corresponding to this model.
- build_rules_group(name)
Build a ‘prometheus.RulesGroup’ from all linked DerivedAlerts.
- build_tree(parent=None, tree=None)
Build a ‘treelib.Tree’ object by recursing through children.
- class lib_alert_tree.models.ExistingAlert(name, severity=None, **labels)
A leaf in a tree of logical alerts.
In essence, this represents an already existing alert rule in some Prometheus configuration, from which we will build composition rules. It only stores a name and a sufficient set of labels for querying.
- property alert_rule
Generate a ‘prometheus.AlertRule’ corresponding to this model.
- class lib_alert_tree.models.Relationship(value)
The type of relationship a parent has towards its children.
- build_query(children, group_by=None)
Build a query to derive an alert rule from its children.
- lib_alert_tree.models.severity_pair(name, summary_name=None, summary_plural=False, warning_children=None, critical_children=None, **kwargs)
Generate a pair of DerivedAlerts with ‘warning’ and ‘critical’ severity.
lib_alert_tree.prometheus
Classes for storing and serializing Prometheus alert rules.
- class lib_alert_tree.prometheus.AlertRule(name, expr=None, duration=None, annotations=None, labels=None, severity=None, summary=None)
A single alerting rule.
- property child_id
A short representation of this alert, for use in annotations.
- format_labels(**updates)
Format labels (and optional updates) as a string.
- property query
The PromQL query for selecting this alert.
- serialize()
Serialize this data container into a dict.
- class lib_alert_tree.prometheus.PrometheusRule(name, namespace, labels=None, groups=None)
A complete PrometheusRule custom resource.
- serialize()
Serialize this data container into a dict.
lib_alert_tree.kubernetes
Helpers for defining lists of alerts on usual Kubernetes objects.
- lib_alert_tree.kubernetes.daemonset_alerts(name, severity='warning', namespace='default')
Common alerts for DaemonSets.
- lib_alert_tree.kubernetes.deployment_alerts(name, severity='warning', namespace='default')
Common alerts for Deployments.
- lib_alert_tree.kubernetes.pod_alerts(name, severity='warning', namespace='default')
Common alerts for Pods.
- lib_alert_tree.kubernetes.statefulset_alerts(name, severity='warning', namespace='default')
Common alerts for StatefulSets.
lib_alert_tree.cli
Generate a Click command-line interface from alert trees.
- lib_alert_tree.cli.generate_cli(roots)
Generate a CLI from a dict of root alerts (keys are used for root selection).