-
Notifications
You must be signed in to change notification settings - Fork 0
MO OB 过期删除设计
EZ4BRUCE edited this page Jul 4, 2023
·
1 revision
目前采集云平台和k8s的监控数据与日志存储在 DB(预期使用MO),主要用于日常运维监控、告警,以及线上问题定位分析,历史数据对问题定位帮助不大,并且会长时间占用空间。
需要一个删除的策略,理论上我们不应该永远都存着,可以默认不开启
清理旧数据,节省磁盘空间
启动一个线程,每隔一段时间执行SQL语句删除数据,删除30天之前的数据
- 支持小时粒度
- 支持 metric、log、trace 分别管理
- 支持关闭
retention_deletes_enabled: true
logRetentionPeriod: "336h" # 保留 14天
metricRetentionPeriod: "336h" # 保留 14天
traceRetentionPeriod: "336h" # 保留 14天
指标数据表
CREATE TABLE IF NOT EXISTS %s.%s (
series_id VARCHAR(256) NOT NULL COMMENT "abstract of json labels",
timestamp DATETIME(6) NOT NULL COMMENT "metric data collect time",
value DOUBLE DEFAULT "0.0" COMMENT "metric value",
PRIMARY KEY(series_id,timestamp)
) cluster by {timestamp,series_id};
对30天之前数据进行删除
DELETE FROM [metrics_databases].[data_table] WHERE timestamp<=[now()-30d];
CREATE TABLE IF NOT EXISTS` + "`%s`.`%s`" + `(
service_name VARCHAR(1024) NOT NULL COMMENT "service name",
app_name VARCHAR(512) NOT NULL COMMENT "app name",
collect_time DATETIME(6) NOT NULL COMMENT "log recorded timestamp",
timestamp DATETIME(6) NOT NULL COMMENT "log recorded timestamp",
logger_name VARCHAR(1024) NOT NULL COMMENT "logger name",
level VARCHAR(1024) NOT NULL COMMENT "log level, enum: debug, info, warn, error, panic, fatal",
caller VARCHAR(1024) NOT NULL COMMENT "log caller, like: package/file.go:123",
message TEXT NOT NULL COMMENT "log message content",
stack TEXT NOT NULL COMMENT "log caller stack info",
labels JSON NOT NULL COMMENT "key-value json mark labels",
INDEX(app_name,timestamp)
) cluster by {app_name,timestamp};
30天之前数据进行删除
DELETE FROM [logs_databases].[data_table] WHERE timestamp<=[now()-30d];