File: clickhouse_retention.lua

package info (click to toggle)
ntopng 5.2.1%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 121,832 kB
  • sloc: javascript: 143,431; cpp: 71,175; ansic: 11,108; sh: 4,687; makefile: 911; python: 587; sql: 512; pascal: 234; perl: 118; ruby: 52; exp: 4
file content (37 lines) | stat: -rw-r--r-- 1,130 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
--
-- (C) 2013-22 - ntop.org
--

local dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path

local db_utils = require "db_utils"
local data_retention_utils = require "data_retention_utils"

-- ########################################################

function cleanup_clickhouse_logs()
   local ch_dir = dirs.workingdir.."/tmp/clickhouse"
   local os_utils = require "os_utils"
   
   -- Delete discards older than 3 days
   os_utils.execWithOutput("find "..ch_dir.." -name \"*.dsc\" -type f -mtime +3 -exec rm -f {} +")

   -- Delete tmp older than 1 day
   os_utils.execWithOutput("find "..ch_dir.." -name \"*.tmp\" -type f -mtime +1 -exec rm -f {} +")
end

-- ########################################################

if(not ntop.isWindows()) then
   if ntop.isClickHouseEnabled() then
      local data_retention = data_retention_utils.getDataRetentionDays()
      local mysql_retention = os.time() - 86400 * data_retention
      
      db_utils.clickhouseDeleteOldPartitions(mysql_retention)
      
      -- Delete old discard files
      cleanup_clickhouse_logs()
   end
end