A Python application-level heartbeats interface.
The apphb package is published in the Python Package Index and installable with pip:
pip install apphband through Conda Forge:
conda install apphbTo install from source:
pip install .The core component is the Heartbeat class.
The user defines a window period (window_size) that specifies a sliding window length over which performance is computed.
Users may optionally specify other fields to compute sums and rates for.
For example:
total_iters=10window_size=2hbt=Heartbeat(window_size)
fortaginrange(total_iters):
start_time=time.monotonic()
application_kernel()
end_time=time.monotonic()
hbt.heartbeat(tag, (end_time-start_time,))
print(str(tag) +': Instant performance: '+str(hbt.get_instant_rate()))
print(str(tag) +': Window performance: '+str(hbt.get_window_rate()))
print('Global performance: '+str(hbt.get_global_rate()))See the examples directory for more detailed use cases, including specifying custom fields.
Find this and related project sources at the libheartbeats organization on GitHub.
This project originates at: https://github.com/libheartbeats/apphb-python
Bug reports and pull requests for bug fixes and enhancements are welcome.