grafana - AWS Timestream 错误中的聚合计数导致错误
问题描述
我将遥测推送到 AWS 时间流:
测量值::varchar | 知识产权 | 时间 | 测量名称 |
---|---|---|---|
测试.html | 192.168.1.100 | 2021-05-25 14:27:45 | 命中 |
废话.html | 192.168.1.101 | 2021-05-25 14:27:45 | 命中 |
测试.html | 192.168.1.102 | 2021-05-25 14:27:46 | 命中 |
我希望在时间流中显示数据的聚合,向我显示每小时每个 uri 的点击次数。
测量值::varchar | 数数 | 时间 |
---|---|---|
测试.html | 2 | 2021-05-25 14:00 |
废话.html | 1 | 2021-05-25 14:00 |
我正在尝试使用:
SELECT measure_value::varchar as URIs, CREATE_TIME_SERIES(time, measure_value::varchar) AS served FROM $__database.$__table WHERE $__timeFilter group by measure_value::varchar
但我得到了错误:
ValidationException: Duplicate timestamps are not allowed in a timeseries.
我使用了错误的功能还是我的数据有误?
====================
尝试@berto99 的解决方案...我得到:
SELECT measure_value::varchar AS URIs, date_trunc('hour', time) AS hour, count(measure_value::varchar) as queries
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, date_trunc('hour', time)
======================
更新#2:
SELECT measure_value::varchar AS URIs, bin(time, 15m) AS hour, count(measure_value::varchar) as queries
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, bin(time, 15m) order by hour
解决方案
我知道可能有更好的方法可以做到这一点,但是像这样:
SELECT measure_value::varchar AS URIs, date_trunc('hour', time) AS time
FROM $__database.$__table
WHERE $__timeFilter
GROUP BY measure_value::varchar, date_trunc('hour', time)
ORDER BY date_trunc('hour', time)
也许您还必须调整时区,date_trunc('hour', time at time zone '-X')
其中 X 是您的时区
推荐阅读
- iis - 将 Visual Studio19 Blazor Webassembly 示例应用程序发布到 Localhost
- java - SSLSocket 的 OutputStream 是“阻塞的”
- python - Python + Postgresql - 检查添加到数据库之前的输入值是否与现有行值相等?
- r - 如果有必要使我的表格适合可用宽度,我如何告诉 R 的 flextable 在单词中添加换行符?
- c++ - C++ 中指定初始值设定项的未定义行为
- node.js - 如何设置 nginx 配置以从反应 js 与 docker 中的节点 js 通信
- java - 子类能否重载已声明为抽象的超类的方法
- c# - 为什么我在添加迁移时收到 argumentNullException
- javascript - 无法将 JavaScript 代码插入 R shiny.semantic 应用程序
- git - Git拉取Linux中多个用户的共享访问权限