Long-term (90-day) storage for `web_hook_logs`

Overview

The web_hook_logs table currently contains 90 days worth of logs, though only 2 days are shown through the UI. Older entries can be removed without loss of user functionality, but they are the source of details for external communication made by a GitLab instance so should be retained for the longer period of time for security and other uses.

Discussion

Creating the issue here since a long term storage location is a GitLab.com production concern, but understand that the solution may involve changes to gitlab-ce that will be usable by customers.

Potential ideas:

  • Store older entries using object storage (from original rm gitlab-com/gitlab-ce!20183)
  • requires more jobs to clean those up
  • will take some effort to bundle by day
  • Also write any entries a to log that will get picked up by existing log collection mechansims
  • Con: Will double store some amount locally on omnibus instances, but then can probably reduce the amount in the DB to days
  • Pro: Logs will be more up-to-date with db
  • Pro: Opportunity to scrub log as they are being written
  • others?

References