0

我有一个设置,我使用 Grafana 从时间流中查询内容。我在 Grafana 中设置了一个区间变量,用于时间戳分箱(将结果分成 10 秒或 15 米的块)。我从 timestream 查询的字段是该特定时间间隔内发出的 HTTP 请求总数。

我想做的是使用该间隔变量作为在该特定间隔内发出的 HTTP 请求总数的分隔符。这将允许我计算每秒请求数 (RPS)。

我在使用时间流中的间隔数据类型进行除法时遇到了困难。AWS 文档没有提供太多将区间类型转换为其他类型的方法,而且强制转换也不起作用。

我已经尝试在谷歌上搜索替代方案,并为其他查询语言提供了 extract 和 time_part,但我还没有找到任何适用于 timestream 的方法。

这是我尝试执行的查询类型的示例,Rate 是间隔:

SELECT BIN(time, ${Rate}) AS binned_timestamp, COUNT(measure_value::varchar)/CAST(${Rate} as bigint) as rps
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY BIN(time, ${Rate})
ORDER BY binned_timestamp

编辑:我有一种非常老套的方法可以将 15m 和 10s 等间隔转换为整数秒。必须有更好的方法来做到这一点,我太无能了。

CASE 
    WHEN '${Rate}' LIKE '%m' THEN CAST(replace(replace('${Rate}', 'm'), 's') as int) * 60
    WHEN '${Rate}' LIKE '%s' THEN CAST(replace('${Rate}', 's') as int)
END
4

0 回答 0