Logstash
如何在 Logstash 中解析人類可讀的字節數?
我正在處理包含以下部分的日誌文件:
538,486K of 1,048,576K
這些代表以人類可讀格式呈現的記憶體使用(Java 堆空間)。我想在 Kibana 的圖表中跟踪這些數字。為此,我想以某種方式使用 Logstash 的 grok 過濾器來解析這些數字,但我不知道如何處理(即忽略)千位分隔符。
理想情況下,我會有一些可以處理“K”並乘以一千的東西。在這個時間點上,我不知道任何系統都以千字節以外的單位登錄,但我不想做出這樣的假設。
gsub
接受一個數組,其中每個三元組值表示:
- 目標欄位名稱
- 搜尋模式
- 替換模式
它在技術上支持正則表達式,但在這種情況下我們不需要它。
首先,我們去掉逗號。很簡單。
其次,我們乘法。應該
K
乘以 1000?如果是這樣,在我看來,我們可以簡單地替換K
為000
.把它們放在一起:
filter { mutate { gsub {[ "some_field", ",", "", "some_field", "K", "000" ]} } }
您可以根據需要添加其他替換選項。
根據您的情況,
K
可能會乘以 1024,這會有點複雜。我沒有看到任何開箱即用的解決方案,但您可以使用ruby
過濾器來執行一些算術。