package models import "time" // DailyVolumeSnapshot 每日日志量快照(平台自己留存的历史)。 // // 为什么必须落库: // // Loki 的 retention_period 是 24 小时(运维可改,但默认就该短), // 意味着「近 7 天每日日志量」直接查 Loki 时,只有最近 1 天有数据, // 其余 6 天是空的 —— 界面上看着像坏了,实际是数据已经不在了。 // 想要 30 天 / 1 年趋势,只能在数据被删前每天抓一次存进平台库。 // // 粒度说明: // - 只按「数据源 + 命名空间」存。index/volume 系列接口只能按 selector 标签聚合, // 拿不到按 app 的拆分(Loki 3.4 不支持 aggregateBy), // 所以按 app 的历史量暂时无法落库,应用维度请看实时排行(有 20~30s 成本)。 // - 每天一条,日期用**本地时区**的 YYYY-MM-DD,避免跨时区对不上。 type DailyVolumeSnapshot struct { ID uint `json:"id"` Date string `json:"date"` // YYYY-MM-DD(本地时区) SourceID uint `json:"sourceId"` // 数据源 Namespace string `json:"namespace"` // "" 表示该数据源全量 Bytes int64 `json:"bytes"` // 日志体积 Entries int64 `json:"entries"` // 日志条数 // Partial 该日期是否为"不完整的一天"(当天抓取时还没过完)。 // 前端用它区分"真实低峰"和"只统计到一半"。 Partial bool `json:"partial"` CapturedAt time.Time `json:"capturedAt"` }