InfluxDB2 通量语言使用 schema.measurementTagValues 函数提供了一种获取特定存储桶/测量组合的所有标签值的便捷方法。
问题是文档没有提到如何过滤此列表以仅保留符合特定条件的标签值。
示例:
通过以下查询,我可以获得所有交易标签值:
import "influxdata/influxdb/schema"
schema.measurementTagValues(
bucket: "jmeter",
measurement: "jmeter",
tag: "transaction",
)
架构包含另一个名为“application”的标签。我想获取特定应用程序的所有交易,而不是所有交易。
我们如何使用助焊剂实现这一目标?
InfluxQL 中的相同请求将非常简单:
使用 KEY = "transaction"WHERE "application"= $application 从 "jmeter"显示标签值
最佳答案
如果您使用 schema.tagValues()
而不是 schema.measurementTagValues()
,您可以定义一个谓词函数来过滤您的结果。在你的例子中:
import "influxdata/influxdb/schema"
schema.tagValues(
bucket: "jmeter",
tag: "transaction",
predicate: (r) => r._measurement == "jmeter" and r.application == ${application:doublequote},
start: -3000d
)
如您所见,您需要为此函数定义一个时间范围。如果合适,您可以在此处使用 grafana 仪表板的时间范围变量(v.timeRangeStart
和 v.timeRangeStop
)。
关于grafana - InfluxDB2/格拉法纳 : how can we filter a list of tag values with flux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72684205/