From 617e1f3671d9eef578382dba170dc61ff1335581 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 12 Sep 2022 10:00:27 +0200 Subject: [eventlog] Keep sample log data a little longer --- modules-available/eventlog/hooks/cron.inc.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'modules-available/eventlog') diff --git a/modules-available/eventlog/hooks/cron.inc.php b/modules-available/eventlog/hooks/cron.inc.php index 72aa4f76..05a6921e 100644 --- a/modules-available/eventlog/hooks/cron.inc.php +++ b/modules-available/eventlog/hooks/cron.inc.php @@ -1,13 +1,15 @@ dateline"); - // Keep at least 30 events or 7 days wirth of samples (whichever is more) + // One year of event log + Database::exec("DELETE FROM eventlog WHERE (UNIX_TIMESTAMP() - 86400 * 365) > dateline"); + // Keep at least 20 events or 7 days worth of samples (whichever is more) $types = Database::simpleQuery("SELECT type, Count(*) AS num, Min(dateline) as oldest FROM `notification_sample` GROUP BY type"); $cutoff = time() - 86400 * 7; + $maxCutoff = time() - 86400 * 365; // But don't keep anything for more than a year foreach ($types as $type) { - if ($type['num'] > 30 && $type['oldest'] < $cutoff) { + if ($type['num'] > 20 && $type['oldest'] < $cutoff) { // This type has more than 30 and the oldest one is older than 7 days // find out which one takes priority $thisCutoff = $cutoff; @@ -17,13 +19,13 @@ if (mt_rand(1, 10) === 1) { LIMIT 29, 1", ['type' => $type['type']]); // The 30th entry is older than 7 days? Bump the cutoff dateline back to this date, - // so we keep at least 30 entries + // so we keep at least 20 entries if ($find !== false && $find['dateline'] < $thisCutoff) { $thisCutoff = $find['dateline']; } Database::exec("DELETE FROM notification_sample WHERE type = :type AND dateline < :dateline", - ['type' => $type['type'], 'dateline' => $thisCutoff]); + ['type' => $type['type'], 'dateline' => max($thisCutoff, $maxCutoff)]); } } } -- cgit v1.2.3-55-g7522