A Pythonic implementation of the Phi-Accrual failure detector
Project description
failure-detector
A Pythonic implementation of the Phi-Accrual Failure Detector.
Phi-Accrual Failure Detectors detect system outages by statistically modeling inter-arrival times of heartbeat (ping) messages over time. The system is declared as unavailable once heartbeats are significantly delayed compared to those recently observed.
Usage
Install with pip
:
$ pip install failure-detector
Detecting network outages works roughly as follows:
from failure_detector import PhiAccrualFailureDetector
detector = PhiAccrualFailureDetector(
# suspicion threshold for which the detector declares the system unavailable
threshold=7.0,
# initial estimate of the mean heartbeat inter-arrival time (20ms)
mean_estimate=20.0,
# A lower bound on the standard-deviation of heartbeat inter-arrival
# times. The computation of the phi-value uses #max(min_stddev, sample
# stddev); this prevents the estimated distribution from collapsing when
# e.g., all sampled heartbeats are equal
mean_stddev=3.0,
# size of the sample buffer of previous heartbeat inter-arrival times
num_samples=30
)
while True:
# perform heartbeat every second
time.sleep(1)
heartbeat_ms = ... # ping some endpoint
if not detector.evaluate(heartbeat_ms):
# report system as unavailable
else:
# add to sample buffer
detector.observe(heartbeat_ms)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
failure_detector-0.1.1.tar.gz
(3.6 kB
view hashes)
Built Distribution
Close
Hashes for failure_detector-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9129d43477aae06afd0bd43bf145b9e1a17e9321ce04f4c52182b39832e7dba |
|
MD5 | 90d3ec84a0983ec689ca04cb0a127987 |
|
BLAKE2b-256 | a38a8ac5ce9b7c949ecd8c65b87385270171b4cb37858fff84ac07dd5a721d01 |