Functional Weave
Code in Python

monitor.alert-mute@1.0.0

vectors.json

5,012 bytes · view raw

[
  {"name": "nothing under maintenance and nothing else firing: not muted", "args": ["latency", false, [], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "under maintenance, a kind maintenance mutes is muted", "args": ["latency", true, [], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": true, "reason": "maintenance", "by": null}},
  {"name": "under maintenance, a kind maintenance does not list still alerts (a certificate expiring is not planned work)", "args": ["cert-critical", true, [], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "a kind maintenance mutes, outside maintenance, alerts", "args": ["burn-rate", false, [], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "a firing down alert inhibits the latency alert on the same component", "args": ["latency", false, ["down"], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": true, "reason": "inhibited", "by": "down"}},
  {"name": "a firing down alert does not inhibit a kind no rule names", "args": ["burn-rate", false, ["down"], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "the inhibitor must be firing: a rule alone does nothing", "args": ["latency", false, ["burn-rate"], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "maintenance wins over inhibition, and names no inhibitor", "args": ["latency", true, ["down"], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": true, "reason": "maintenance", "by": null}},
  {"name": "the first inhibition in policy order names the inhibitor, whatever order the firing kinds come in", "args": ["latency", false, ["burn-rate", "down"], {"maintenance": [], "inhibit": [{"source": "down", "target": "latency"}, {"source": "burn-rate", "target": "latency"}]}], "expect": {"muted": true, "reason": "inhibited", "by": "down"}},
  {"name": "an alert listed among the firing kinds does not inhibit itself", "args": ["latency", false, ["latency"], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "kinds match exactly: Latency is not latency", "args": ["Latency", true, ["down"], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "an empty policy never mutes, even under maintenance with everything firing", "args": ["down", true, ["latency", "burn-rate"], {"maintenance": [], "inhibit": []}], "expect": {"muted": false, "reason": null, "by": null}},
  {"name": "a kind that is both inhibited and inhibits others is still muted by its own inhibitor", "args": ["burn-rate", false, ["down", "latency"], {"maintenance": [], "inhibit": [{"source": "latency", "target": "burn-rate"}, {"source": "down", "target": "latency"}]}], "expect": {"muted": true, "reason": "inhibited", "by": "latency"}},
  {"name": "an empty kind is an error", "args": ["", false, [], {"maintenance": ["down", "latency", "burn-rate"], "inhibit": [{"source": "down", "target": "latency"}]}], "expectError": "kind must not be empty"},
  {"name": "an empty kind in the maintenance list is an error", "args": ["latency", false, [], {"maintenance": ["down", ""], "inhibit": []}], "expectError": "maintenance kinds must not be empty"},
  {"name": "an inhibition with no source is an error", "args": ["latency", false, [], {"maintenance": [], "inhibit": [{"source": "", "target": "latency"}]}], "expectError": "inhibition source must not be empty"},
  {"name": "an inhibition with no target is an error", "args": ["latency", false, [], {"maintenance": [], "inhibit": [{"source": "down", "target": ""}]}], "expectError": "inhibition target must not be empty"},
  {"name": "a kind inhibiting itself is an error", "args": ["down", false, [], {"maintenance": [], "inhibit": [{"source": "latency", "target": "latency"}]}], "expectError": "an alert kind cannot inhibit itself: latency"},
  {"name": "the policy is checked even when maintenance already mutes the alert", "args": ["latency", true, [], {"maintenance": ["latency"], "inhibit": [{"source": "down", "target": "down"}]}], "expectError": "an alert kind cannot inhibit itself: down"}
]