我无法向 Grafana 显示它应该使用哪个时间字段来构建图表
I can't show to Grafana what time field it should use for chart building
我有一个 Postgresql 数据源 table:
有点像日志。我只想在图表上显示我每小时有多少成功记录(http_status
== 200)。听起来很简单,对吧?我写了这个查询:
SELECT
count(http_status) AS "suuccess_total_count_per_hour",
date_trunc('hour', created_at) "log_date"
FROM logs
WHERE
http_status = 200
GROUP BY log_date
ORDER BY log_date
它给了我以下结果:
我觉得不错。我继续尝试将其放入 Grafana:
好的,我知道了,我得帮Grafana弄明白时间统计的字段在哪里。
我转到查询生成器,我发现它完全中断了我的查询。从那一刻起,我完全迷路了。这是查询生成器屏幕:
如何向Grafana解释我想要什么?我只想要一个简单的图表,例如:
抱歉,图片粗略,但我想你已经明白了。感谢您的帮助。
- 您的时间栏(例如
created_at
)应该是TIMESTAMP WITH TIME ZONE
类型*
- 使用时间条件,Grafana有宏所以很容易,例如
WHERE $__timeFilter(created_at)
- 你想按小时分组,所以你需要为此写 select。 Grafana 再次具有宏:
$__timeGroupAlias(created_at,1h,0)
最后的 Grafana SQL 查询(未测试,因此可能需要一些小的调整):
SELECT
$__timeGroupAlias(created_at,1h,0),
count(*) AS value,
'succcess_total_count_per_hour' as metric
FROM logs
WHERE
$__timeFilter(created_at)
AND http_status = 200
GROUP BY 1
ORDER BY 1
*参见 Grafana 文档:https://grafana.com/docs/grafana/latest/datasources/postgres/
有记录的宏。当您的时间列是 UNIX 时间戳时,也有针对这种情况的宏。
我有一个 Postgresql 数据源 table:
有点像日志。我只想在图表上显示我每小时有多少成功记录(http_status
== 200)。听起来很简单,对吧?我写了这个查询:
SELECT
count(http_status) AS "suuccess_total_count_per_hour",
date_trunc('hour', created_at) "log_date"
FROM logs
WHERE
http_status = 200
GROUP BY log_date
ORDER BY log_date
它给了我以下结果:
我觉得不错。我继续尝试将其放入 Grafana:
好的,我知道了,我得帮Grafana弄明白时间统计的字段在哪里。 我转到查询生成器,我发现它完全中断了我的查询。从那一刻起,我完全迷路了。这是查询生成器屏幕:
如何向Grafana解释我想要什么?我只想要一个简单的图表,例如:
抱歉,图片粗略,但我想你已经明白了。感谢您的帮助。
- 您的时间栏(例如
created_at
)应该是TIMESTAMP WITH TIME ZONE
类型* - 使用时间条件,Grafana有宏所以很容易,例如
WHERE $__timeFilter(created_at)
- 你想按小时分组,所以你需要为此写 select。 Grafana 再次具有宏:
$__timeGroupAlias(created_at,1h,0)
最后的 Grafana SQL 查询(未测试,因此可能需要一些小的调整):
SELECT
$__timeGroupAlias(created_at,1h,0),
count(*) AS value,
'succcess_total_count_per_hour' as metric
FROM logs
WHERE
$__timeFilter(created_at)
AND http_status = 200
GROUP BY 1
ORDER BY 1
*参见 Grafana 文档:https://grafana.com/docs/grafana/latest/datasources/postgres/ 有记录的宏。当您的时间列是 UNIX 时间戳时,也有针对这种情况的宏。