You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Prometheus在Grafana中查询光伏系统近30天每日自然日发电量?

解决自然日发电量统计问题

要准确统计过去30天内**每个自然日(00:00-23:59)**的发电量,需要让查询对齐到每日的起始和结束时间,而非基于当前时刻的滑动1天窗口,具体可采用以下几种方案:

方案1:利用Grafana内置变量对齐自然日

若已将Grafana面板的时间分组设置为「每天」(比如在图表的「Axes」或「Panel options」中设置时间间隔为1d),直接使用以下查询即可:

increase(growatt_epvtotal{device=~"$device"}[$__interval])

$__interval会自动匹配Grafana设置的每日时间间隔,并对齐到自然日0点起始,确保计算的是完整一天的发电量增量。

方案2:强制对齐到自然日时间点

如果需要手动控制时间对齐逻辑,使用@操作符指定查询时间点为每日0点,通过当日与前一日0点的累计值差值得到完整日发电量:

growatt_epvtotal{device=~"$device"} @ floor(time() / 86400) * 86400
  - growatt_epvtotal{device=~"$device"} @ (floor(time() / 86400) - 1) * 86400
  • floor(time() / 86400) * 86400:将当前时间向下取整到当日0点的时间戳(86400为一天的秒数)
  • 第一个表达式取当日0点的累计发电量,第二个取前一日0点的累计值,差值即为前一日的完整发电量

方案3:按日期分组统计

若需按日期维度分组展示,可结合date函数,用increase按天统计:

increase(growatt_epvtotal{device=~"$device"}[1d]) by (date(timestamp(growatt_epvtotal)))

该查询会自动按自然日分组,计算每一天的发电量增量,结果会附带对应的日期标签。

注意事项

  • 确保growatt_epvtotal是单调递增的累计指标(符合increase/delta的使用要求);若指标每日清零,则直接用sum_over_time(growatt_epvtotal{device=~"$device"}[1d])即可
  • 在Grafana中选择时间范围时,建议将结束时间设为「今日0点」,避免包含当天未完成的发电量数据

内容的提问来源于stack exchange,提问作者Dániel Kis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:17:12