我创建了一个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
加载仪表板
有没有一种方法可以通过网址设置过滤器?我看到已经有一些参数(refreshInterval
,time
..),但是我找不到合适的文档。有什么想法吗?
使用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")))
答案 0 :(得分:3)
我在寻找一个稍微相似的问题的解决方案时偶然发现了这个问题。我想我会分享两个我已经[主要]工作的选项,但任何一个都应该做你想要的。
../app/dashboards#/view/{dashboard_uuid}?_a=(filters:!((query:(match_phrase:(user_id:$id)))))
使用此方法时,过滤器不会“固定”,因此如果您的登陆仪表板上有另一个链接,则单击该链接时过滤器将不会保留。但是,您的其他全局状态设置(时间范围等)会保留。
../app/dashboards#/view/{dashboard_uuid}?_g=(filters:!((query:(match_phrase:(user_id:$id)))))
使用此方法,过滤器会“固定”并在其他点击期间保持不变。但是,此 URL 将覆盖您所有其他全局状态设置(时间范围等)。
<块引用>这就是我所在的地方。我希望过滤器保持固定状态,但如果我也设置了时间过滤器,很遗憾,单击此链接将默认使用 Kibana 中的 timepicker:timeDefaults
设置。
我仍然没有找到解决我的问题的方法,但我希望这能回答最初的问题;或者也许可以帮助在这里绊倒的其他人(看到这个线程现在很老了)。