时间流 + Grafana
Timestream + Grafana
今天的构建是一个 Grafana 仪表板,它从 aws 时间流中提取实时数据。
目前,它显示的是按小时细分的折线图。我们使用的查询是这样的:
WITH binned_query AS (
SELECT
BIN(time,1h) AS "point",
x_id AS "series",
max(measure_value::bigint) AS "metric"
FROM $__database.$__table
WHERE measure_name = 'x'
AND $__timeFilter
GROUP BY BIN(time,1h), x_id order by 1
)
SELECT series, CREATE_TIME_SERIES(point,metric)
FROM binned_query
GROUP BY series
根据以上情况,我们得到的数据点都相隔 1 小时。这对于某些日期范围(例如 24 小时或 2 天)来说非常有用,但是当您查看 1 小时时,最好让它每分钟或 10 分钟显示一次。
为了实现这一点,我看到了两个可能的解决方案,但我都没有成功实施:
- 调整查询以某种方式考虑日期范围并更改数据点的粒度。
- 添加控制图表粒度的下拉菜单的一些方法。这样我们就可以 select 一个日期范围(比如一个月),然后我可以调整折线图以显示 1 分钟、5 分钟、15 分钟、30 分钟、1 小时、3 小时、6 小时、12 小时, 24 小时, 48 小时
任何帮助将不胜感激,试图让它工作是一个令人沮丧的早晨:)
$__interval
变量在这里可能比 1h
更有用。
此值会根据 graph/panel 的大小和时间范围而变化。或者,如果您想将所有图表的时间间隔保持在 1 小时并根据需要进行更改,您仍然可以使用此变量并在面板设置中手动设置时间间隔。
今天的构建是一个 Grafana 仪表板,它从 aws 时间流中提取实时数据。
目前,它显示的是按小时细分的折线图。我们使用的查询是这样的:
WITH binned_query AS (
SELECT
BIN(time,1h) AS "point",
x_id AS "series",
max(measure_value::bigint) AS "metric"
FROM $__database.$__table
WHERE measure_name = 'x'
AND $__timeFilter
GROUP BY BIN(time,1h), x_id order by 1
)
SELECT series, CREATE_TIME_SERIES(point,metric)
FROM binned_query
GROUP BY series
根据以上情况,我们得到的数据点都相隔 1 小时。这对于某些日期范围(例如 24 小时或 2 天)来说非常有用,但是当您查看 1 小时时,最好让它每分钟或 10 分钟显示一次。
为了实现这一点,我看到了两个可能的解决方案,但我都没有成功实施:
- 调整查询以某种方式考虑日期范围并更改数据点的粒度。
- 添加控制图表粒度的下拉菜单的一些方法。这样我们就可以 select 一个日期范围(比如一个月),然后我可以调整折线图以显示 1 分钟、5 分钟、15 分钟、30 分钟、1 小时、3 小时、6 小时、12 小时, 24 小时, 48 小时
任何帮助将不胜感激,试图让它工作是一个令人沮丧的早晨:)
$__interval
变量在这里可能比 1h
更有用。
此值会根据 graph/panel 的大小和时间范围而变化。或者,如果您想将所有图表的时间间隔保持在 1 小时并根据需要进行更改,您仍然可以使用此变量并在面板设置中手动设置时间间隔。