CodeNameRaven.Monitor.Assertion (raven_observer_sdk v0.5.4)

Copy Markdown

A generic assertion framework for monitoring integrations. Allows operators to define configurable health check thresholds.

Summary

Functions

Evaluates a single assertion against the results map.

Evaluates all assertions against the results map, returning a combined status and a list of failure reason messages.

Parses a list of assertion maps (as received from params) into a list of Assertion structs.

Types

operator()

@type operator() ::
  :eq
  | :ne
  | :lt
  | :lte
  | :gt
  | :gte
  | :contains
  | :not_contains
  | :matches
  | :in
  | :present

outcome()

@type outcome() :: :pass | {:fail, :down | :degraded, String.t()}

t()

@type t() :: %CodeNameRaven.Monitor.Assertion{
  operator: operator(),
  severity: :down | :degraded,
  target: String.t() | nil,
  type: String.t(),
  value: term()
}

Functions

evaluate(assertion, results)

@spec evaluate(t(), map()) :: outcome()

Evaluates a single assertion against the results map.

evaluate_all(assertions, results)

@spec evaluate_all([t()], map()) :: {:up | :degraded | :down, [String.t()]}

Evaluates all assertions against the results map, returning a combined status and a list of failure reason messages.

parse(list)

@spec parse([map()]) :: [t()]

Parses a list of assertion maps (as received from params) into a list of Assertion structs.