如何通过Bitnami Helm Charts配置K8s集群中Prometheus与Grafana的数据留存策略
Grafana 与 Prometheus 数据留存机制及配置说明
1. 数据留存实现逻辑
1.1 Prometheus 留存机制
Prometheus 本身是时序数据库,通过本地TSDB引擎存储时序样本,留存策略基于两个维度触发,先满足的规则优先执行:
- 时间维度:通过启动参数
--storage.tsdb.retention.time控制数据最长保留时长,默认值为15天 - 容量维度:通过启动参数
--storage.tsdb.retention.size控制TSDB存储块的最大占用空间,默认不开启
当任意规则触发时,Prometheus会自动淘汰最早的冷数据块,释放存储空间。
1.2 Grafana 留存机制
Grafana本身不存储业务时序数据,仅存储面板配置、用户权限、告警规则、查询日志等元数据,默认使用SQLite存储,生产环境可切换为PostgreSQL/MySQL。这类元数据的增量极低,通常不需要专门配置留存策略,仅在启用了Grafana自带的日志存储、快照备份等额外功能时,才需要针对对应功能配置数据留存规则。
2. Bitnami Helm Chart 留存策略配置支持
两款工具的Bitnami Helm Chart均原生支持自定义留存策略,可通过修改values.yaml配置实现:
2.1 Prometheus 配置示例
在values.yaml的server段添加启动参数即可,同时建议匹配PV容量设置合理的留存阈值:
server: # 配置持久化存储容量,按需调整 persistence: enabled: true size: 100Gi # 配置留存策略,示例为最长保留30天,最大占用80Gi空间 extraArgs: storage.tsdb.retention.time: 30d storage.tsdb.retention.size: 80GB
修改后执行helm upgrade命令更新生效即可。
2.2 Grafana 配置说明
常规使用场景下无需配置留存策略,若需要调整元数据存储容量,可修改values.yaml的persistence段:
persistence: enabled: true size: 10Gi
若启用了特殊插件产生大量增量数据,可在grafana.ini段添加对应插件的留存规则即可。
3. 未配置留存策略的风险
- Prometheus侧:默认仅启用15天时间留存规则,若集群指标基数大、上报频率高,很可能在15天期限到达前就占满PV存储空间,导致Prometheus写入失败、进程崩溃,最终数据丢失,监控服务不可用。
- Grafana侧:常规使用场景下几乎不会出现存储耗尽问题,仅在未开启持久化、或者启用了高增量插件且未配置留存时,才会出现存储占满、元数据丢失的问题。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

