3

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

{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

有没有办法通过 url 设置过滤器?我看到已经有一些参数(refreshIntervaltime..),但我找不到合适的文档。有任何想法吗?

使用 Kibana6.2.2和 ElasticSearch6.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")))
4

1 回答 1

5

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


变量设置为应用程序状态的 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 将覆盖您的所有其他全局状态设置(时间范围等)。

这就是我所在的地方。我希望过滤器保持固定,但如果我也设置了时间过滤器,不幸的是单击此链接将默认为timepicker:timeDefaultsKibana 中的设置。


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

于 2020-12-31T00:12:16.857 回答