InfluxDb 1.8检索时间作为主查询的子查询

问题描述

我正在尝试创建一个查询,该查询使用从第二个表中检索的开始时间来检索一个表中的所有数据。

  1. 获取我的最新开始时间

从InitializedApplicationEvent中选择last(“ timeAsstring”)

返回: “ 2020-08-26T20:41:01.762Z”

  1. 在此时间之后检索ID即可

从“ Ids”中选择“ idAsField”,其中时间> ='2020-08-26T20:41:01.762Z'

  1. 但是我想要的是一个查询获取时间

从“ ids”中选择“ idAsField”,其中时间> =(从“ InitializedApplicationEvent”中选择last(“ timeAsstring”)

是否可以使用InfluxDB 1.8做到这一点?

解决方法

找到了一种在最近的应用程序启动时间之后以及仅将那些将“ inActiveConfiguration”标志设置为true的ID进行查询的方法。

  1. “从...显示标签值”将不起作用,因为标签值与InfluxDB中的时间戳不相关。

  2. 必须将id值同时放在标签和字段中。这使您可以通过以下查询创建以下Grafana变量:

ApplicationStartTime:

从InitializedApplicationEvent中选择last(“ timeAsString”)

编号:

从(SELECT last(“ IdAsField”),“ inActiveConfiguration”从“ Ids”中选择“ last”,“ inActiveConfiguration”,其中时间> = $ {ApplicationStartTime:sqlstring}按ID分组),其中“ inActiveConfiguration” ='true'

一个警告是,这些变量仅在“仪表板加载”时才刷新。 Grafana变量的限制。