grafana可视化业务指标

每个产品都需要业务指标以表明其状况,最好是可视化展现。grafana是常用的数据可视化工具,而本产品的数据存储是用的mysql,发现grafana刚好支持mysql。

先确定下目标是从mysql取出数据,然后统计每天的收入。一开始折腾了好久都没弄正确,后来才终于知道问题的所在。

首先是时间的存储格式,确定是unix timestamp还是date time。如果是unix timestamp的话就不需要通过 UNIX_TIMESTAMP 函数转了,grafana里的macro,比如 $__time $__timeFilter都是需要数据格式为date time而会经过UNIX_TIMESTAMP的。而网上的示例一般也是直接用$__time的,所以这里没搞清的话,一直没数据显示。

另一个问题是,在mysql中date_format支持的unix_timestamp只能支持到秒,但该字段存储的是支持到毫秒的,需要除以1000转成秒,不然还是会显示不正常。

SELECT
  MIN(create_time) as time_sec,
  sum(count_price) as value
FROM lw_order
WHERE create_time/1000 >= $__unixEpochFrom() and create_time/1000 <= $__unixEpochTo()
GROUP BY date_format(from_unixtime(create_time/1000), '$interval')
ORDER BY date_format(from_unixtime(create_time/1000), '$interval') asc
复制代码

上面是$interval是自定义变量,来自 community.grafana.com/t/how-to-ad…

你可能感兴趣的:(grafana可视化业务指标)