首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Grafana变量创建规则表达式。流入2.0DB

如何从Grafana变量创建规则表达式。流入2.0DB
EN

Stack Overflow用户
提问于 2022-04-25 11:58:09
回答 1查看 265关注 0票数 -1

我有一个查询,它从GIT中提取分支信息。我希望能够通过变量"epic“过滤数据。在Grafana中,我从数据库中提取了epic数据,可以从下拉列表女巫复选框中选择每个epic (多重选择)。

代码语言:javascript
复制
from(bucket: "my_bucket")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "my_measure")
  |> filter(fn: (r) => r["_field"] == "Score")
    |> filter(fn: (r) => r["epic"] == "${epic_db}")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

但当我在名单上选择多部史诗时,我得到了这样的答案:

代码语言:javascript
复制
    |> filter(fn: (r) => r["epic"] == "{epic-1,epic-2}")

它不像SQL语句那样工作(其中epic IN (epic1、epic2等)。对我起作用的是像这样构建正则表达式

代码语言:javascript
复制
filter(fn: (r) => r["epic"] =~ /epic1|epic2|epic3/

但我不知道,如何构建这样一个正则表达式,通过使用这个下拉检查列表中的变量在Grafana。我试过这样的东西:

代码语言:javascript
复制
 "/${epic_db}/"

但不起作用。有什么想法吗?如何将InfluxDB2.0与Flux一起使用?

EN

回答 1

Stack Overflow用户

发布于 2022-05-20 07:46:54

查看变量格式选项文档这里

基本上,grafana允许您选择如何在查询中格式化变量。在您的情况下,您可以这样做:

代码语言:javascript
复制
from(bucket: "my_bucket")
 |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
 |> filter(fn: (r) => r["_measurement"] == "my_measure")
 |> filter(fn: (r) => r["_field"] == "Score")
 |> filter(fn: (r) => r["epic"] =~ /${epic_db:regex}/)
 |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
 |> yield(name: "mean")

通过这种方式,您可以使用通量查询语言的regex功能构建。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71999186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档