Skip to content
Alexander Diemand edited this page Aug 26, 2019 · 9 revisions

This framework provides Logging, Benchmarking and Monitoring

documentation

source code documentation in PDF format. This document contains all source code and tests where types and function definitions can be followed through hyperlinks. The index at the end of the document also provide fast access to type or function definitions.

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

Micro-Benchmarking is observing counters and measurements over the duration of a function evaluation. 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)

system-benchmarking

Benchmarking a complete system and measuring the overall performance. For this task we are implementing a Transaction Generator that can sustain a certain TPS (tx-per-seconds) for a longer time period.

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.