通过网址设置Kibana仪表板过滤器

时间:2019-04-19 07:12:30

标签: elasticsearch kibana kibana-6

我创建了一个Kibana仪表板,其中包含一些可视化内容。我可以使用提供的网址成功嵌入仪表板:

{url}/app/kibana#/dashboard/{dashboard_uuid}?embed=true&_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now))

现在,我希望我的应用程序的任何用户都可以查看此仪表板,并对其进行过滤以仅查看其数据。我需要的过滤器查询非常简单,因为所有数据都包含一个字段user_id

一个示例:对于标识为$id的用户,我想使用过滤器user_id:$id加载仪表板

有没有一种方法可以通过网址设置过滤器?我看到已经有一些参数(refreshIntervaltime ..),但是我找不到合适的文档。有什么想法吗?

使用Kibana 6.2.2和ElasticSearch 6.6.0

我尝试通过_a参数设置过滤器,如下所述:https://discuss.elastic.co/t/dashboard-search-parameter-via-url/84385没有成功。

{url}/app/kibana#/dashboard/{dashboard_uuid}?
      embed=true&
      _g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now))&
      _a=(filters:!(),query:(querystring:(query: "user_id:1")))

1 个答案:

答案 0 :(得分:3)

我在寻找一个稍微相似的问题的解决方案时偶然发现了这个问题。我想我会分享两个我已经[主要]工作的选项,但任何一个都应该做你想要的。


将变量设置为应用程序状态的 URL:

../app/dashboards#/view/{dashboard_uuid}?_a=(filters:!((query:(match_phrase:(user_id:$id)))))

使用此方法时,过滤器不会“固定”,因此如果您的登陆仪表板上有另一个链接,则单击该链接时过滤器将不会保留。但是,您的其他全局状态设置(时间范围等)会保留。


变量设置为全局状态的 URL:

../app/dashboards#/view/{dashboard_uuid}?_g=(filters:!((query:(match_phrase:(user_id:$id)))))

使用此方法,过滤器会“固定”并在其他点击期间保持不变。但是,此 URL 将覆盖您所有其他全局状态设置(时间范围等)。

<块引用>

这就是我所在的地方。我希望过滤器保持固定状态,但如果我也设置了时间过滤器,很遗憾,单击此链接将默认使用 Kibana 中的 timepicker:timeDefaults 设置。


我仍然没有找到解决我的问题的方法,但我希望这能回答最初的问题;或者也许可以帮助在这里绊倒的其他人(看到这个线程现在很老了)。