Kibana:使用 Script fields 来提高数据的可观测性
脚本化字段根据 Elasticsearch 索引中的数据即时计算数据。 数据作为文档数据的一部分显示在 “Discover” 所展示的数据中,并且你可以在可视化文件中使用脚本化字段。 你可以使用 Kibana 查询语言查询脚本化字段,并可以使用过滤器栏过滤它们。 脚本字段值是在查询时计算的,因此不会被索引,也无法使用 Kibana 默认查询语言进行搜索。
在我之前的文章 “Kibana: 如何在Kibana中生成Scripted fields” 中,我已经展示了如何使用 Scripted fields 来生成一个字段并对数据统计。在今天的例子中,我们将使用另外一个例子来展示它的一个用途。比如如下的一个统计图:
在上面的显示图中,它显示了一个时序数据,同时他显示了一个叫做 tags.keyword 的不同值的一个分布情况,但是也许我们只是想知道 error 和其它所有信息的一个比较,而不是这样的每个分类的值的一个比较。这样有更加直观的一个统计图来表示 error 所占的一个比例。比如,我们可以把 error 的数量统计出来变为:
准备数据
在今天的教程中,我们将使用 Kibana 自带的索引来进行展示。打开 Kibana 界面:
点击 Add data:
这样我们的样本数据就导入进 Elasticsearch 了。通过上面的操作,我们在 Elasticsearch 中将生成一个叫做 kibana_sample_data_logs 的索引。
创建 script field
我们打开 kibana_sample_data_logs 的 index pattern 界面:
点击上面的 Stack Management:
点击 Scripted fields:
我们在上面已经看到一个叫做 hour_of_day 的 脚本化字段。上面有它的实现。我们点击 Add scripted field:
我们把如下的内容输入进去:
if (doc['tags.keyword'].value.contains("error")) { return -1; } else { return 1;}
点击上面的链接来测试我们的 script:
如果我们没发现错误,就点击 Save field。接着打开 Discover 的界面:
我们发现有一个新的叫做 error_success 的字段。它表明我们的 scripted filed 的生成是成功的。
创建可视化
我们接下来使用这个新生成的 error_success 来进行可视化的操作:
点击 Update:
我们接下来修改 Y-axis 里的 metric。该用 Sum 来统计:
点击 Update:
修改错的颜色为红色。上面就是我们最终看到的结果。
上一篇: 3D SLAM_LeGo-LOAM(2)_回环检测
下一篇: Allan方差分析