如何通过Prometheus查询计算Grafana Loki占用的存储空间
如何用Prometheus查询Grafana Loki存储空间占用
可用的专属监控指标
针对boltdb-shipper部署模式的Loki,官方暴露了以下专用指标用于存储空间统计,单位均为字节:
loki_boltdb_shipper_store_size_bytes:boltdb-shipper在本地存储的索引文件总占用大小loki_chunk_store_size_bytes:Loki本地存储的日志 chunk 块总大小loki_data_dir_size_bytes:Loki数据目录下所有文件的总占用大小,可直接反映整体磁盘占用
如果你使用PVC挂载存储给Loki,还可以用Kubernetes原生的kubelet指标查询:
kubelet_volume_stats_used_bytes:PVC的实际磁盘使用量,可通过标签筛选Loki对应的PVC资源
常用PromQL查询示例
1. 统计Loki总存储占用(索引+日志块)
sum by (pod) (loki_boltdb_shipper_store_size_bytes{namespace="monitoring"} + loki_chunk_store_size_bytes{namespace="monitoring"})
2. 直接查询Loki数据目录总大小
sum(loki_data_dir_size_bytes{namespace="monitoring"})
3. 查询Loki PVC存储使用量
sum(kubelet_volume_stats_used_bytes{namespace="monitoring", persistentvolumeclaim=~"loki.*"})
如果需要展示单位为GB,可在查询语句末尾添加/ 1024 / 1024 / 1024做单位换算即可。
常见问题说明
- 你通过Helm默认安装的单实例Loki,默认确实使用boltdb-shipper作为索引存储,上述Loki原生指标均会正常暴露
- 如果查询不到指标,需确认你的Prometheus已经开启了ServiceMonitor自动发现,默认Helm安装的Loki会自动生成ServiceMonitor资源,无需额外配置
- 如果你的Loki部署为分布式集群,可在上述查询中添加
namespace、container等标签做维度筛选,统计不同组件的存储占用
内容的提问来源于stack exchange,提问作者DmitrySemenov
相关产品推荐
相关产品推荐

