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 json_path¶
A JSON Path filter to retrieve the alert represented by this model.
- 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, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
The type of relationship a parent has towards its children.
- static build_json_path(children, group_by=None)¶
Build a JSON Path to retrieve alert 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.
- property child_json_path¶
A JSONPath filter expression for selecting this alert as a child.
This expression will be combined into a full JSONPath query for retrieving all children of a derived alert, exposed in an annotation for consumption by clients (such as UIs).
- format_labels(**updates)¶
Format labels (and optional updates) as a string.
- labels_to_json_path_filters(**updates)¶
Build JSON Path filters matching the labels.
- 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.container_alerts(name='.*', pod='.*', namespace='default')¶
Common alerts for Containers.
- 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.job_alerts(name, severity='warning', namespace='default')¶
Common alerts for Jobs.
- 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.