首页 文章

使用由ElasticSearch术语聚合动态创建的存储桶构建Kibana直方图

提问于
浏览
18

我希望能够结合Kibana Terms Graph 的功能(能够根据特定属性的值的唯一性创建存储桶)和 Histogram Graph (根据查询将数据分离到存储桶中,然后根据时间说明日期) .

总的来说,我想创建一个直方图,但我只想根据一个查询的结果创建直方图,而不是像Kibana demo app中那样进行多次查询 . 相反,我希望每个特定字段的唯一值动态创建每个存储桶 . 例如,考虑我的查询返回的以下数据:

{"myValueType": "New York"}
{"myValueType": "New York"}
{"myValueType": "New York"}
{"myValueType": "San Francisco"}
{"myValueType": "San Francisco"}

还假设每个记录都有一个 timestamp 字段,用于按日期分隔直方图数据 . 对于该特定日期,我希望将数据作为3的计数传送到 New York 桶中,并将数量2传送到 San Francisco 桶中 . 但是,我只能为我的一个链接查询显示5的计数 . 当我配置直方图时,我能够指定一个用于我的时间戳的字段,但不能从中创建存储桶 . 我可以've sent a field to compute a total/min/max/mean, but this field would'必须是数字,所以这也不是解决方案 .

如果我使用术语图来创建饼图或条形图,我确实能够根据我指定字段的唯一值(在本例中为“myValueType”)将我的数据分成桶,但这总计有史以来的数据,而不是按时间戳分割数据 . 虽然这是一个很好的信息,但它并不理想,因为我无法检测数据的趋势 .

我正在寻找一个可以执行以下操作之一的解决方案:

  • 让我在Kibana仪表板中动态创建查询,在直方图中创建"buckets"

  • 允许我运行一个ElasticSearch Terms Aggregation以基于"myValueType"将我的数据分解为桶并将这些结果集成到我的直方图中

  • 自定义仪表板的JSON,但这对我来说不太可能

  • 创建我自己的自定义面板,但这不可取

  • 在Kibana中链接Kibana "TopN"查询 . 实际上,这已被证明是我的问题的解决办法,因为TopN查询从指定的fieldName动态地为每个唯一值/术语创建一个查询 . 但问题是,我只能将一种颜色链接到此TopN查询,并且每个唯一术语将放置在使用不同颜色阴影的存储桶中 . 理想情况下,直方图中的每个桶都会有一个完全不同的颜色 . 想象一下,随着桶数量的增加,区分独特术语是多么困难 .

  • 如果所有其他方法都失败了,我会从搜索字段中为每个唯一值创建一个查询 . 这将允许我每个桶有一个唯一的颜色,但随着"myValueType"字段中唯一术语的数量发生变化,我需要继续添加/删除Kibana中的查询,这可能会非常混乱 .

我相信我在这里失踪了 . 请帮帮我 . 非常感谢 .

一个高度相关的SOF问题:Is it Possible to Use Histogram Facet or Its Curl Response in Kibana

2 回答

相关问题