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

如何在Grafana中基于动态时间区间用MariaDB SQL计算参数uptime?

你可以直接使用Grafana内置的$__from和$__to变量计算选中时间区间的总秒数,这两个变量会返回时间选择器对应起止时间的毫秒级Unix时间戳,差值除以1000就是当前选中区间的总秒数,完全适配动态变化的时间范围。

修改后的查询语句如下:

SELECT 
   parameter_detail.system, 
   parameter_detail.parameter_label, 
   sum(parameter_uasvalue.uas) as 'Total UAS',
   ROUND((($__to - $__from)/1000 - sum(parameter_uasvalue.uas)) * 100 / (($__to - $__from)/1000), 2) as 'Uptime %'
FROM parameter_health.parameter_uasvalue 
LEFT JOIN parameter_health.parameter_detail 
   ON parameter_detail.id=parameter_uasvalue.id
WHERE $__timeFilter(parameter_uasvalue.time) 
  AND parameter_uasvalue.uas != '-1' 
  AND parameter_uasvalue.uas != '0' 
GROUP BY parameter_detail.system, parameter_detail.parameter_label

补充说明

  • 上述语句默认去掉了你原查询里uas !=' 0'的前置空格,如果你的数据里确实存在带空格的' 0'值,可以改回原来的过滤条件。
  • 语句里用了ROUND函数保留2位小数,你可以根据需要调整小数位数,或者删掉ROUND函数直接返回原始计算值。
  • 如果你只需要返回uptime字段不需要总UAS,可以删掉对应的sum(parameter_uasvalue.uas) as 'Total UAS'行。

内容的提问来源于stack exchange,提问作者Ramanan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:24:10