【问题标题】:InfluxDB count same string values for a timerangeInfluxDB 计算时间范围内的相同字符串值
【发布时间】:2016-12-14 18:06:24
【问题描述】:

我已经设置了以下称为 ratio 的 InfluxDB 度量,其中一个名为“name”的字段键

--------------------------------------------------
| time                | name                     |
--------------------------------------------------
| 1481274571179850400 | current_assets           |
--------------------------------------------------
| 1481274571179850401 | othervalue               |
--------------------------------------------------
| 1481274571179850402 | othervalue               |
--------------------------------------------------
| 1481274571179850403 | current_assets           |
--------------------------------------------------
| 1481274571179850404 | othervalue               |
--------------------------------------------------

大约有 20 个不同的名称。 根据后端调用的内容,我用给定的名称(例如 current_assets、othervalue、...)写一行用于统计。

这很好,我得到了上面的表格。

现在我想创建一个查询(在 grafana 中)

  • 时间范围单个名称的点击次数

例如

过去 24 小时内有 251 个“current_assets”条目

过去 6 小时内有 21 个“其他值”条目

我在这里尝试了不同的东西,但我做不到。

有人知道这样的查询是什么样子的吗?

非常感谢

【问题讨论】:

  • 你能包括你目前尝试过的吗? SELECT count(name) FROM ratio WHERE name = 'current_assets' and time > now() - 24h 之类的东西有用吗?
  • 是的,我已经在“where”条件下尝试过它,并且到目前为止它仍然有效。但我不喜欢为所有 20 种不同的条件创建单独的查询。
  • 除非您修改架构,否则您将需要多个查询。基本上你想要做的是GROUP BY name,只有name是一个标签。
  • @MichaelDesa 非常感谢!我已将“名称”更改为标签,并且效果很好
  • 太棒了!很高兴听到它奏效了。

标签: influxdb grafana


【解决方案1】:

我建议将name 更改为标签并使用value 字段来存储整数或布尔值。这样你就可以发出类似的查询

SELECT count(value) FROM ratio WHERE time > now() - 24h GROUP BY name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多