2017-07-19 193 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)