Kibana - Timelion 时间线

Timelion,也称为时间线,是另一种可视化工具,主要用于基于时间的数据分析。要使用时间线,我们需要使用简单的表达语言,这将帮助我们连接到索引并对数据执行计算以获得我们需要的结果。

我们可以在哪里使用 Timelion?

当您想要比较与时间相关的数据时,可以使用 Timelion。例如,您有一个网站,并且每天都会获得浏览量。您想要分析数据,其中您想要将当前周数据与前一周的数据进行比较,即周一至周一、周二至周二等,查看观看次数和流量有何不同。

开始使用 Timelion

要开始使用 Timelion,请单击 Timelion,如下所示 −

Started with Timelion

Timelion 默认显示所有索引的时间线,如下所示 −

Timelion indexes

Timelion 使用表达式语法。

注意 − es(*) => 表示所有索引。

要获取可用于 Timelion 的函数的详细信息,只需单击如下所示的文本区域 −

click textarea

它为您提供了与表达式语法一起使用的函数列表。

一旦您开始使用 Timelion,它会显示一条欢迎消息,如下所示。突出显示的部分,即跳转到函数参考,提供了可用于 timelion 的所有函数的详细信息。

Timelion 欢迎消息

Timelion 欢迎消息如下所示 −

欢迎消息

单击下一步按钮,它将引导您了解其基本功能和用法。现在,当您单击"下一步"时,您可以看到以下详细信息 −

Timelion 基本功能

查询 Elasticsearch 数据源

表达 Elasticsearch 数据源

转换数据

Timelion 函数参考

单击"帮助"按钮获取详细信息Timelion 可用的函数参考 −

函数参考

Timelion 配置

timelion 的设置在 Kibana 管理中完成 →高级设置。

Timelion 配置

单击"高级设置"并从类别中选择 Timelion

Timelion 类别

选择 Timelion 后,它将显示 timelion 配置所需的所有必要字段。

Timelion 必要字段

在以下字段中,您可以更改默认索引和索引上使用的时间字段 −

Timelion timefield

默认的是 _all,timefield 是 @timestamp。我们将保持原样,并在 timelion 本身中更改索引和时间字段。

使用 Timelion 可视化数据

我们将使用索引:medicalvisits-26.01.2019。以下是 2017 年 1 月 1 日至 2017 年 12 月 31 日 timelion 显示的数据 −

Timelion display

上述可视化使用的表达式如下 −

.es(index=medicalvisits-26.01.2019,timefield=Visiting_Date).bars()

我们使用了索引 medicalvisits-26.01.2019,该索引上的时间字段为 Visiting_Date,并使用了 bars 函数。

下面我们按天分析了 2017 年 1 月的 2 个城市。

Timelion solved

使用的表达式是 −

.es(index=medicalvisits-26.01.2019,timefield=Visiting_Date,
q=City:Sabadell).label(Sabadell),.es(index=medicalvisits-26.01.2019,
timefield=Visiting_Date, q=City:Terrassa).label(Terrassa)

2 天的时间线比较显示为 −

表达式

.es(index=medicalvisits-26.01.2019,timefield=Visiting_Date).label("August 2018 年 8 月 2 日"),
.es(index=medicalvisits-26.01.2019,timefield=Visiting_Date,offset=-1d).label("2018 年 8 月 1 日")

这里我们使用了偏移量并给出了 1 天的差异。我们选择当前日期为 2018 年 8 月 2 日。因此,它给出了 2018 年 8 月 2 日和 2018 年 8 月 1 日的数据差异。

Timelion 比较

2017 年 1 月前 5 个城市的数据列表如下所示。我们在这里使用的表达式如下所示 −

.es(index=medicalvisits-26.01.2019,timefield=Visiting_Date,split=City.keyword:5)
list of top cities

我们使用了 split 并将字段名称指定为 city,由于我们需要索引中的前五个城市,因此我们将其指定为 split=City.keyword:5

它给出了每个城市的数量并列出了它们的名称,如绘制的图表所示。