2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Kibana:使用 Scripted fields 来提高数据的可观测性

Kibana:使用 Scripted fields 来提高数据的可观测性

时间:2021-08-06 00:14:38

相关推荐

Kibana:使用 Scripted 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 的索引。

创建 scripted 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;}

如果大家对 doc[''tags.keyword''].value 有哪些方法还不是很熟悉的话,你可以参阅我的另外一篇文章 “Painless 编程调试”。我们可以使用如下的方法来抛出异常从而找出它所包含的方法:

GET kibana_sample_data_logs/_search{"query": {"script": {"script": "Debug.explain(doc['tags.keyword'])"}}}

它会抛出如下内容的异常:

我们可以在互联网上搜索org.elasticsearch.index.fielddata.ScriptDocValues.Strings,并找到相应的方法列表。

点击上面的链接来测试我们的 script:

如果我们没发现错误,就点击 Save field。接着打开 Discover 的界面:

我们发现有一个新的叫做 error_success 的字段。它表明我们的 scripted filed 的生成是成功的。

创建可视化

我们接下来使用这个新生成的 error_success 来进行可视化的操作:

点击 Update:

我们接下来修改 Y-axis 里的 metric。该用 Sum 来统计:

点击 Update:

修改错的颜色为红色。上面就是我们最终看到的结果。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。