vigil 0.2.1

Provides a liveness checking watchdog for detecting deadlocks/livelocks/starvation etc.
Documentation
  • Coverage
  • 100%
    5 out of 5 items documented0 out of 4 items with examples
  • Size
  • Source code size: 15.61 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.34 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Metaswitch/Vigil
    11 2 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • bossmc

Vigil

Crates.io - Vigil Build Status License: MIT License: Apache-2.0

Software watchdog library for Rust services.

Documentation

https://docs.rs/vigil/

Usage

Install from crates.io by adding vigil to your Cargo.toml:

[dependencies]
vigil = "0.1"

Now you can create a Vigil instance which the watched code must notify every so often. If the watched code misses too many notification ticks, the pre-programmed callbacks will be fired to allow you to handle the situation (gather diagnostics, raise an alarm, cancel the stalled task, or even kill the whole process).

let vigil = Vigil::create(10_000,
                          Some(|| warn!("Watched code missed a watchdog check"),
                          Some(|| error!("Watched code missed multiple watchdog checks!"),
                          Some(|| { error!("Deadlock detected, exiting"); std::process::exit(101));

loop {
  do_work();
  vigil.notify();
}