Skip to content

Commit 762ece2

Browse files
committed
docs: sync snapshots tutorial with new retention semantics
max_per_fault evicts oldest capture set instead of rejecting new, retain_on_clear documented and the delete-on-clear notes made conditional, auto_cleanup caveat for max_bags_per_fault != 1 mirrored from fault-manager.rst.
1 parent c2ef3c7 commit 762ece2

1 file changed

Lines changed: 21 additions & 5 deletions

File tree

docs/tutorials/snapshots.rst

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ configuration always overrides the zero-config fallback when present.
3131

3232
.. note::
3333

34-
Snapshots are automatically deleted when a fault is cleared via the
34+
By default, snapshots are deleted when a fault is cleared via the
3535
``DELETE /api/v1/faults/{code}`` endpoint or ``~/clear_fault`` service.
36+
Set ``snapshots.retain_on_clear: true`` to keep them across clears.
3637

3738
Quick Start
3839
-----------
@@ -98,8 +99,19 @@ Configure snapshot capture via fault manager parameters:
9899
Prevents snapshot storms when a fault is reported repeatedly. Set to 0 to disable.
99100
* - ``snapshots.max_per_fault``
100101
- ``10``
101-
- Maximum number of snapshots stored per fault code. When the limit is reached,
102-
new snapshots for that fault are rejected. Set to 0 for unlimited.
102+
- Maximum number of snapshot rows stored per fault code. One confirmation
103+
writes one row per configured topic, and those rows are evicted together:
104+
past the limit the OLDEST capture set is dropped whole. A capture larger
105+
than the cap is kept anyway rather than torn, since half a freeze frame
106+
is indistinguishable from topics that were silent. Set to 0 for
107+
unlimited.
108+
* - ``snapshots.retain_on_clear``
109+
- ``false``
110+
- Keep a fault's value snapshots when it is acknowledged. ``false`` is the
111+
historical behaviour: clearing a fault deletes them. Turn it on together
112+
with ``rosbag.max_bags_per_fault``, or acknowledging leaves the fault
113+
holding recordings whose matching readings are gone. Independent of
114+
``max_per_fault``, which still bounds growth either way.
103115
* - ``snapshots.capture_pool_size``
104116
- ``2``
105117
- Max concurrent capture threads under a fault storm (>= 1). This parallelizes
@@ -348,7 +360,8 @@ Troubleshooting
348360

349361
**Empty topics object in response**
350362

351-
- The fault may have been cleared (snapshots are deleted on clear)
363+
- The fault may have been cleared (snapshots are deleted on clear unless
364+
``snapshots.retain_on_clear`` is enabled)
352365
- No topics were configured for this fault code
353366
- All configured topics timed out or exceeded size limit
354367

@@ -498,7 +511,10 @@ Rosbag Configuration Options
498511
- ``true``
499512
- Automatically delete a fault's bag when it is cleared. A recording
500513
shared by a burst of faults is deleted when the last fault referencing
501-
it clears. Set to ``false`` to retain bags for manual analysis.
514+
it clears. Set to ``false`` to retain bags for manual analysis. Has no
515+
effect once ``max_bags_per_fault`` is anything other than ``1``: a
516+
history someone configured must not be what an acknowledgement takes
517+
away, so the cap governs retention there instead.
502518
* - ``snapshots.rosbag.lazy_start``
503519
- ``false``
504520
- Controls when the ring buffer starts recording. See diagram below.

0 commit comments

Comments
 (0)