gpt4 book ai didi

elasticsearch - 绘制Kibana中的多个字段

转载 作者:行者123 更新时间:2023-12-03 01:44:22 31 4
gpt4 key购买 nike

我正在尝试在Kibana(V2.3.1)中创建一个饼图,该饼图显示多个字段中的值。

可以说我得到了代表人类的文档,这些文档具有以下字段:(代表手指弯曲还是笔直)
人1:

  • human.right_arm.thumb =弯曲的
  • human.right_arm.pinky =直
  • human.left_arm.thumb =直
  • human.left_arm.pinky =半弯

  • 人2:
  • human.right_arm.thumb =直
  • human.right_arm.pinky =弯
  • human.left_arm.thumb =半弯
  • human.left_arm.pinky =半弯

  • 现在,我想在所有手指的状态上创建一个饼图。它将产生如下结果:
  • 弯曲(= 2)=饼图
  • 的25%覆盖率
  • 直线(= 3)=饼图
  • 的37.5%覆盖率
  • 半弯(= 3)=饼
  • 覆盖率的37.5%

    在Kibana中,每个图表只能拆分一个字段。那么 我如何合并所有手指的结果?

    以及 ,如何才能获得相同的状态,但是从所有方面来看呢?

    我认为脚本化字段是可行的方法,但是我无法弄清楚怎么做,因为据我所见,聚合只合并字段的结果,而它应该代表一组字段(“所有手指”或“所有拇指”) 。

    我在网上搜索并发现了类似的问题,但是没有一个明确的答案。

    如有必要,我可以在Logstash中进行更改。我们使用ruby / code过滤器定义这些字段。

    注意:遗憾的是,我无法将我们的ELK堆栈更新为较新的版本。

    最佳答案

    您可以将手指的状态设为一个单独的可汇总字段吗?然后,您将能够创建一个带有计数指标的饼图,然后按术语对 slice 进行分割,然后选择带有手指状态名称的字段。

    例如。

    enter image description here

    否则,此脚本字段可能会起作用(由于我没有必要的设置,因此未经测试):

    def fingerState = doc['whatever the field is called'].value; 
    if (fingerState != null)
    {
    int index = fingerState.lastIndexOf('=');
    if (index > 0)
    {
    return fingerState.substring(index+1);
    }
    }
    return fingerState; //this will return the whole thing if for some reason this format isnt consistent

    至于第二个问题,你可以做类似的事情

    enter image description here

    但是要使其正常工作,您需要使手指的状态可聚合。

    希望它能正常工作并且与您在ELK上的版本兼容(我使用的是5.2)

    关于elasticsearch - 绘制Kibana中的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196567/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com