baglab.diagnostics¶
baglab.diagnostics
¶
Diagnostics utilities for topic rate, delay, and gap analysis.
latency_chain(timestamps_dict)
¶
Visualize pipeline latency across multiple topics.
For each topic, computes rate statistics and relative timing.
Parameters¶
timestamps_dict : dict[str, pd.Series] Mapping of topic name to timestamp series (float seconds).
Returns¶
pd.DataFrame
DataFrame with columns "topic", "mean_hz", "mean_dt",
"std_dt", "min_dt", "max_dt", sorted by topic name.
topic_delay(pub_stamp, recv_stamp)
¶
Compute publish-to-receive delay statistics.
Parameters¶
pub_stamp : pd.Series Publish timestamps as float seconds (header.stamp converted). recv_stamp : pd.Series Receive timestamps as float seconds (index converted).
Returns¶
dict[str, pd.Series | float]
Dictionary with keys "delay" (per-message pd.Series),
"mean", "max", "std", "median".
message_gaps(timestamps, expected_rate)
¶
Find gaps (missing messages) in a topic.
A gap is defined as a period longer than 1.5 * (1 / expected_rate).
Parameters¶
timestamps : pd.Series Timestamps as float seconds. expected_rate : float Expected publish rate in Hz.
Returns¶
pd.DataFrame
DataFrame with columns "start", "end", "duration",
"expected_count" for each detected gap.