Skip to content
Alexander Diemand edited this page Jul 4, 2019 · 9 revisions

This framework provides Logging, Benchmarking and Monitoring

logging

Logging is based on contravariant Traces which consume the observed values, or logged items, and connect them up in the hierarchy of traces. All traces end in the Switchboard which plays a central role in filtering logged items and, eventually, forwarding them to connected Backends for output or further processing.

benchmarking

Here, Benchmarking means micro-benchmarking that is observing counters and measurements over the duration of a function execution. This defines messages ObserveOpen before entering the function under measurement, ObserveClose after, and building the difference between the two as ObserveDiff. (see module Cardano.BM.Observer.Monadic for more details)

monitoring

Observed values can be routed to the monitoring backend which evaluates monitoring expressions defined in the Configuration, e.g. comparing the observed values against thresholds. If the threshold is surpassed, an alert message can be generated or the configured severity filter can be altered.

Clone this wiki locally