3
我試圖創建一個餅圖圖表,它將顯示前10個傳入請求。 我有一個搜索查詢,只過濾傳入的請求,其中有一個名爲消息的字段,如下所示: 「傳入的請求/ api/someaction」。 我該怎麼做基於/ api/someaction部分而不是整個字符串的聚合(因爲那麼「傳入」被視爲一個術語「Kibana:基於字段子字符串的餅圖切片
或者...我可以創建自定義字段例如,另一場的子?
感謝
我試圖創建一個餅圖圖表,它將顯示前10個傳入請求。 我有一個搜索查詢,只過濾傳入的請求,其中有一個名爲消息的字段,如下所示: 「傳入的請求/ api/someaction」。 我該怎麼做基於/ api/someaction部分而不是整個字符串的聚合(因爲那麼「傳入」被視爲一個術語「Kibana:基於字段子字符串的餅圖切片
或者...我可以創建自定義字段例如,另一場的子?
感謝
正如前面的評論中提及,我想出了一個解決我的問題。對我來說,我喜歡價值觀和foo bar baz
我需要提取第一個詞,我能夠使用「高級→JSON」字段使用以下腳本執行此操作:
{
"script": "(_value.indexOf(' ') > 0 ? _value.substring(0, _value.indexOf(' ')) : _value)"
}
所以,在Kibana接口,這看起來是這樣的:
所以,你的情況,腳本也許應該是這樣的:
{
"script": "(_value.indexOf(' ') > 0 ? _value.substring(_value.lastIndexOf(' ')) : _value)"
}
顯然,這假定您想要提取的消息部分緊跟在字符串中的最後一個空格之後。我寫了一個一次性的Java類,以測試上述:
public class Foo {
public static void main(String[] args){
String tester = "Incoming request /api/someaction";
String result = tester.substring(tester.lastIndexOf(" "));
System.out.println(result);
}
}
據我所知,你可以在JSON領域的「腳本」鍵使用任何Java代碼。所以你也應該能夠使用正則表達式使用String.replaceAll或任何其他字符串的方法...
我還沒有測試過這個。如果有人有這方面的任何信息,請隨時發表評論。
你使用Logstash還是別的?如果Logstash,你的配置如何? – Val
我相信有一種使用「高級」JSON輸入的方法。我目前也正在研究這個,但到目前爲止還沒有能夠找到的東西。 – exhuma