因为我只用 grafana,但是并不给他写查询,所以我对他的原理完全不懂。
大体上来说,我们直接针对数据库(vertica)写查询,然后把查询发给 grafana team,然后他们把 vertica 查询转换成 grafana 的格式,最后给我们展示监控图表。
比方说我需要查看毛利,需要刷新时间设定为每五分钟:
SELECT SUM(GrossRevenue) FROM Fact_Revenue WHERE GrossRevenue > 0;
然后 Grafana 就能每五分钟刷新图表。
但是我一直有一个疑问,就是我们其实用 grafana 做很多展示,可能同时有二三十个查询需要每五分钟运行一次,那是如何保证没有把数据仓库搞跨掉?不好意思我也不知道我问的这个问题是否问得恰当。
我现在想要自己练手用 Python 写个类似的系统,实现如下的简单功能:也就是说用户可以在 UI 中输入他想要聚合的列、需要刷新的频率,然后我就每 X 分钟更新一次图表。问题是我如何解决以下问题:
WHERE EventTime BETWEEN {LastRun} AND {LastRun + 300}
,总之就是做累加查询。但是我觉得我的想法似乎也不成熟。。。不知道诸位朋友有没有写过类似的简单系统?
1
ToBeHacker 2020-08-20 03:35:30 +08:00 via Android 1
定时任务提前跑完写缓存,部分任务可以用增量替代全量
|
2
kidlj 2020-08-20 07:43:25 +08:00 via iPhone 1
Prometheus 是时序数据库。
|
3
thet 2020-08-20 08:35:50 +08:00 via iPhone 1
grafana 就是个展示的,后面一般是搭配 prometheus,你需要写个 exporter 让 prometheus 抓取数据
|
4
junbaor 2020-08-20 08:54:39 +08:00 1
可以写程序定时跑一下 sql 再把结果存到数据库,grafana 也可以连接 mysql , 非常的灵活。
|