2017-07-19 30 views
0

我想在Kibana(V2.3.1)中创建一个显示来自多个字段的值的饼图。Kibana中的图表乘法字段

可以说,我代表了具有以下字段的人类文件:(代表如果手指弯曲或伸直) 人1:

  • human.right_arm.thumb =弯曲
  • human.right_arm。小指=直
  • 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堆栈更新到更新的版本。

回答

1

你可以让手指的状态为单独的可聚合字段吗?然后,您将能够创建一个带有计数度量的饼图,并按条款拆分切片,然后选择带有手指状态名称的字段。

例如,

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

但为了这个工作,你需要使手指的状态聚合。 (请使用5.2)