blakeblackshear.frigate/migrations
Nicolas Mowen b4d4adb75b
Limit recording retention to available storage (#3942)
* Add field and migration for segment size

* Store the segment size in db

* Add comment

* Add default

* Fix size parsing

* Include segment size in recordings endpoint

* Start adding storage maintainer

* Add storage maintainer and calculate average sizes

* Update comment

* Store segment and hour avg sizes per camera

* Formatting

* Keep track of total segment and hour averages

* Remove unused files

* Cleanup 2 hours of recordings at a time

* Formatting

* Fix bug

* Round segment size

* Cleanup some comments

* Handle case where segments are not deleted on initial run or is only retained segments

* Improve cleanup log

* Formatting

* Fix typo and improve logging

* Catch case where no recordings exist for camera

* Specifically define sort

* Handle edge case for cameras that only record part time

* Increase definition of part time recorder

* Remove warning about not supported storage based retention

* Add note about storage based retention to recording docs

* Add tests for storage maintenance calculation and cleanup

* Format tests

* Don't run for a camera with no recording segments

* Get size of file from cache

* Rework camera stats to be more efficient

* Remove total and other inefficencies

* Rewrite storage cleanup logic to be much more efficient

* Fix existing tests

* Fix bugs from tests

* Add another test

* Improve logging

* Formatting

* Set back correct loop time

* Update name

* Update comment

* Only include segments that have a nonzero size

* Catch case where camera has 0 nonzero segment durations

* Add test to cover zero bandwidth migration case

* Fix test

* Incorrect boolean logic

* Formatting

* Explicity re-define iterator
2022-10-09 06:28:26 -05:00
..
001_create_events_table.py
002_add_clip_snapshot.py formatting cleanup 2021-02-25 07:01:57 -06:00
003_create_recordings_table.py fix migrations 2022-02-18 21:18:26 -06:00
004_add_bbox_region_area.py
005_make_end_time_nullable.py only save recordings when an event is in progress 2022-02-18 21:18:26 -06:00
006_add_motion_active_objects.py store objects and motion counts in the db 2022-02-18 21:18:26 -06:00
007_add_retain_indefinitely.py Ability to retain specific clips / events indefinitely (#2831) 2022-02-21 22:03:01 -06:00
008_add_sub_label.py FEAT: Ability to set sub labels for specific events (#2949) 2022-03-17 07:18:43 -05:00
009_add_object_filter_ratio.py Add object filter ratio (#2952) 2022-04-10 08:25:18 -05:00
010_add_plus_image_id.py add endpoint to submit to plus 2022-04-10 09:11:16 -05:00
011_update_indexes.py optimize query performance 2022-05-12 06:29:43 -05:00
012_add_segment_size.py Limit recording retention to available storage (#3942) 2022-10-09 06:28:26 -05:00