Kibana:Drilldown 中的 URL 模板
警告:此功能处于 beta 版本,可能会更改。 该设计和代码不如正式的 GA 功能成熟,并且按原样提供,不提供任何担保。 Beta 功能不受官方 GA 功能的支持 SLA 约束。此功能在 7.11 及以上版本提供。
URL 模板 输入使用 Handlebars(一种简单的模板语言)。handlebars 模板看起来像带有嵌入的 handlebars 表达式的常规文本。
https://github.com/elastic/kibana/issues?q={{event.value}}
在上面,我们可以在 {{ }} 加入空格以使得更易阅读。 Handlebars 表达式是 {{,有些内容后跟 }}。 当执行向下钻取时,这些表达式将被仪表板和交互上下文中的值替换。
URL 模板包含如下的三个部分:
- Handlebars
- Variables
- Helpers
在今天的练习中,我来展示如何使用上面的一些 variables 及 helpers 来完成在 Kibana dashboard 中的 drilldown。在今天的练习中,我将使用 Elasticsearch 7.11 来进行展示。
准备数据
我们可以从 github 下载已经准备好的数据:
git clone https://github.com/liu-xiao-guo/kibana-drilldown-dataset
在上面的仓库中,有一个叫做 ratings_small.csv 的文件。这个数据是电影院 imdb 的真实数据。如果你感兴趣的话,你可以到 kaggle.com 去下载。它的文件格式如下:
rating_small.csv
userId,movieId,rating,timestamp
1,31,2.5,1260759144
1,1029,3.0,1260759179
1,1061,3.0,1260759182
1,1129,2.0,1260759185
我们可以通过如下的方式来把数据导入到 Elasticsearch 中。
我们选择刚才已经下载的 ratings_small.csv 文件。
请注意在上面,我们需要修改 timestamp 的 type 为 date。我们点击 Import 按钮。我们接下来为 movies 索引创建一个 index pattern:
我们选择 timestamp 为 Time field。点击上面的 Create index pattern。这样我们就创建好了 movies index pattern。我们可以在 Discover 中看到导入的数据:
从上面的数据中,我们可以看到是从1970年1月11日到1970年1月18日之间的数据。
创建 Dashboard
依据上面的数据,我们来创建两个可视化化:
保存上面的可视化为 movies per day。如法炮制,我们创建了另外一个如下的可视化:
X 轴上是 movieid,在 Y 轴上显示的是 数量。
我们把上面的两个可视化放到我们的 movies Dashboard 中去:
这样我们就创建好了 Dashboard。
创建 range selection drilldown
在上面的第一个可视化中,我们想针对可视化的时间范围来进行 drilldown,也就是说我们想针对 imdb 在可视化显示的时间段里进行搜索。我们可以通过如下的方法来进行操作。
我们把如下的 URL template 放入进去:
https://www.imdb.com/search/title/?release_date={{date event.from "YYYY-MM-DD"}},{{date event.to "YYYY-MM-DD"}}
上面,我们使用 event.from 以及 event.to 拿到时间范围,并同时使用 date helper 来进行格式的转换。点击 Create drilldown 按钮:
保存当前的 Dashboard。当我们点击可视化的空白部分时,我们可以看到一个菜单:
点击 IMDB Movie Search:
从上面我们可以看到在 IMDB 的页面上能找到相应的查询结果。在地址栏中,我们可以看到显示的时间范围。
针对 X 轴或 Y 轴的查询
在很多的情况下,我们可能想要对 X 轴的内容进行 drilldown,那么我们该如何来实现呢?我们针对 Movies totals 可视化来创建一个 drilldown:
在上面的 URL template 中,我们输入如下的内容:
https://imdb.com/find?q={{event.points.[0].value}}
也许这个并不是很好的一个例子,但是这里的重点是 event.points.[0].value 拿到的是 X 轴上的值,而 Y 轴上的值是 event.points.[1].value。点击 Create drilldown,并保存当前的 Dashboard:
我们可以看到在上面的 q=356,这里的 356 来做当期点击点的 X 轴上的值。
Helper 例子
在上面的例子中,我们已经展示了如何使用 date helper 来格式化时间。在接下来的例子中,我将来展示另外几个具体的例子来展示 helper 的用法。我们首先使用创建一个 player 索引:
POST players/_bulk
{ "index" : { "_id" : "1" } }
{ "Player" : "Lebron James", "Team": "Cavaliers", "Season": "2005", "PlayerID": "2544", "AveragePTS": 30.792 }
{ "index" : { "_id" : "2" } }
{ "Player" : "Kobe Bryant", "Team": "Lakers", "Season": "2005", "PlayerID": "977", "AveragePTS": 33.737 }
我们接下来需要为这个索引创建一个索引模式,并创建一个 table 可视化。如果你还不知道如何做这个可视化的化,请参阅之前的文章 “Kibana:为 table 创建链接 drilldown - 7.11 版本”。
我们可以使用 Lens 来创建一个如上所示的 table。我们把这个 table 放进一个 Dashboard 之中去:
现在我们来创建一些 drilldown。
在上面,我们在 URL template 中填入:
http://www.nba.com/{{lowercase event.value}}
在上面,我们使用 lowercase 把点击的值变为小写,以传入 NBA 的网页中进行查询。点击 Create drilldown:
上面显示 Drilldown 已经被创建完成。保存当前的 Dashboard:
接下来,我们来查看每个运动员的情况。我们为这个 table 创建一个 table row click 的 drilldown:
在上面,我们在 URL templagte 中输入:
http://www.nba.com/player/{{ event.values.[3] }}/{{lowercase (replace event.values.[0] " " "-")}}
在上面,我们使用 replace 把名字中的空格用 - 符号来代替,之后,再使用 lowercase 把字母变成小写的。点击上面的 Create drilldown,并保存当前的 Dashboard:
从上面,我们可以看到这个运动员的信息。
Kibana:Drilldown 中的 URL 模板相关推荐
- 关于laravel模板中生成URL的几种模式总结
1.通过url辅助函数(路由)生成: ? 1 location.href = "{{url('user/index2')}}"; 或者: ? 1 location.href = & ...
- 一步步学会使用ASP.NET 4 WEB应用程序中使用URL Routing(翻译)
创建路由 路由就是将URL路径映射到具体的物理文件.若要将路由添加到网站中,请使用 RouteCollection.MapPageRoute 方法将它们添加到RouteTable类的静态Routes属 ...
- redis高并发原理_Java中的42行代码中的URL缩短服务— Java(?!)Spring Boot + Redis...
redis高并发原理 显然,编写URL缩短服务是新的"世界,您好! "在物联网/微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务-整洁的Scala,以Spray ...
- 怎么将excel中的url批量转化为图片_阿里云+Power BI,轻松实现图片可视化报告(一)...
经常有用户希望在Power BI报表中用"图片"对产品.品牌信息.工作人员--进行展示,例如,当查看某个业务员销售数据时,还想看到业务员的照片. 对应这个需求,Power BI是可 ...
- java spr_Java中的42行代码中的URL缩短器服务(Java(?!)Spring Boot + Redis
java spr 显然,编写URL缩短服务是新的" Hello,world! "在IoT /微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务 -整洁的Scala ...
- Java中的42行代码中的URL缩短服务— Java(?!)Spring Boot + Redis
显然,编写URL缩短服务是新的" Hello,world! "在IoT /微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务 -整洁的Scala,以Spray和R ...
- esxi中利用ovf模板迁虚拟机
esxi中利用ovf模板迁虚拟机 在用esxi部署虚拟机后,有时候可能需将上面部署好的虚拟机迁移到其他地方,可以利用导出ovf模板方式进行迁移. 什么是OVF-开放虚拟机格式文件 OVF 是一种虚拟机 ...
- RequestMapping的映射URL模板
映射的URL中有占位符变量,符合这个映射关系的请求都会被这个handler方法处理,下面就是一个模板例子. /template/hello/jack和/template/hello/devin等等这样 ...
- MVC中的URL路由(一)
URL路由系统通过对请求地址进行解析从而得到以目标Controller名称为核心的路由数据.Url路由系统最初是为了实现请求url与物理文件路径分离而建立的,MVC的Url Route是将Url地址与 ...
- 艾伟_转载:VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中实现URL导向》篇
本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 ...
最新文章
- 基于suse linux系统的cacti系统部署——rpm包方式
- 最基本的Socket编程 C#版
- Java数据库连接(JDBC)之二:Statement对象和PreparedStatement对象的使用
- 三元运算 三个数取最大的
- 【sqlite权威指南】笔记3 sqlite入门
- LoadRunner 12.02 安装教程及中文语言包安装
- 判断是否为自然数java_java判断输入的是否是自然数
- 实际操作之路考的这些事
- oracle 只对成绩前三名进行排序其余不变_2021年采用美术统考成绩的重点院校名单汇总...
- 斗鱼Q3财报:移动端季度平均MAU再创新高至6190万,付费用户720万
- 拳王虚拟项目公社:2020考研专业院校选择
- 的文件夹结构_小白指南:WordPress文件及目录结构解析
- 劝你们,千千千万不要当一个程序员!!!!!!
- jQuery打印插件JQPRINT
- C++11常用特性的使用经验总结-概述及目录
- 基于Vue和Spring Boot的在线视频播放系统 (模仿咪咕视频)
- ios12完美深色模式插件_苹果针对老机型推送iOS12.4.6iOS14代码泄漏iPhone12:无刘海真全面屏...
- LintCode 交叉字符串
- Android WebView实现长截图
- 《CSS权威指南》读书笔记3
热门文章
- paypal/stripe商家工具-轮询支付系统更新
- 移动端怎么让图片不失真_实用工具推荐:几款堪称神器的图片放大缩小网站,无损不失真...
- 【bzoj4173】数学
- 武大李星星团队开源的GNSS UPD估计模块(GREAT-UPD)window 下调试
- w ndows10卸载word,windows10系统下怎样卸载office 2003
- Python学习 -元组和集合
- 运放输入偏置电流方向_输入偏置电流和输入失调电流(运放参数的详细解释和分析)...
- 学3D建模需要什么基础?
- matlab生成手机app,matlab使用App designer生成可独立运行的app
- 【C语言】井字棋游戏