Kibana:如何在 Dashboard 中针对部分的数据做可视化

在 Kibana 中,我们可以很方便地对整个数据做可视化。我们可使用 time picker 来调整时间的窗口,也可以在 Dashboard 里对数据进行搜索 (KQL 或 Lucene),或者在 Dashboard 里设置一下 filter 来对部分数据进行统计。但是有没有中可能在 Dashboard 中,我们不用搜索,或者使用 filter,但是我们的可视化里也能显示部分数据的可视化统计呢?在今天的展示中,我们将展示如何实现这个目的。

 

准备数据

在今天的展示中,我们将使用 Kibana 中自带的数据来进行展示:

这样,我们就在Elasticsearch 中创建了 kibana_sample_data_flights 索引,并生成了相应的 Dashboard。 

方法一

第一种方式,我们可以直接在生产可视化时,进行搜索,并保存。我们的目的是想展示从中国起飞的飞机的平均价格,而且这个指标将会变成 Dashboard 的一部分,也许这是因为我们是中国人更关心中国的价格。

首先打开 Kibana:

从上面的图中,我们可以看出来从中国出发的飞机在过去的一年的价格低于所有飞机的平均价格 $612.34。我们点击上面的 Save 按钮,并给它一个名字:

当我们在 Dashboard 里加入我们上面保存的可视化后,那么它自然就只是显示中国的价格。

 

方法二

我们也可以在一个经过筛选的数据集里进行可视化化。具体步骤如下:

我们首先在 Discover 中使用 filter 或者直接进行搜索的办法。这样就形成了一个原始数据的子集。我们点击 Save 按钮:

我们给予它一个名字,并点击保存。

接下来,我们针对这个保存的数据集来进行可视化:

我们选择之前保存好的数据集来进行可视化制作:

这次,我们可以看到正确的从中国起飞的飞机的平均价格,但是和上面的方法不同的是:我们这次不需要在搜索框中打入 OriginCountry : CN 来进行搜索了。它直接显示就是中国的平均价格。我们点击 Save 按钮,并保存当前的可视化:

这样,我们就生成了我们想要的可视化图。

 

在 Dashboard 中进行展示

我们接下来把刚才生成的可视化加入到 Dashboard 中:

 

我们把刚才生成的两个可视化图添加到 Dashboard 中:

从上面的图中,我们可以看出来,我们在 Dashboard 中再也不需要使用 OriginCountry: CN 来进行搜索就可以直观地看到中国机票的价格了。否则按照之前的 Dashboard,我们也能得到中国的价格,比如:

这里有两个问题:

  1. 它需要我们手动地搜索中国地区:OriginCountry :CN
  2. 当我们看整个 Dashboard 都已经发生变化了,所有的视图都变成了中国的。这在某些特定的情况也许不是我们想要的。比如我们可以观看全球的情况,同时在不希望改变 Dashboard 的情况下,了解中国机票的变化。

好了。今天的分析就到这里。希望大家学到想要的东西。