2014-10-19 40 views
0

如何使用FluentD在事件記錄中創建值數組?FluentD中的值列表

我已經從日誌中分析了經度和緯度。如何將這些值轉換爲數組?

Ex。 我有一個日誌像

2014-9-23T09:27:28.345 1411464370345 -37.0081,174.792 BBC SEARCH be03debe-b0af-4939-9abc-7c0ad25bb114 DEPARTURE 16 576.00 ROLLBACK

我已經解析緯度= -37.0081和經度= 174.792。 如何形成這樣的JSON對象?

{location:[-37.0081,174.792]}

以及如何解析事件記錄的字符串值數據類型?像整數/浮點數/雙精度值

回答

0

創建的數組類型參數爲in_tail插件。

types qty:integer,txamount:float,location:array

但數組元素是字符串類型。

0

試試下面的配置

<source> 
    type tail 
    path stackoverflow.log 
    format /^(?<time>[^ ]+) (?<field_1>[^ ]+) (?<array_field>[^ ]+) (?<rest>.+)$/ 
    time_format %Y-%m-%dT%H:%M:%S 
    types array_field:array 
    tag test 
</source> 

<match test> 
    type stdout 
</match> 

然後,2014-9-23T09:27:28.345 1411464370345 -37.0081,174.792 BBC SEARCH be03debe-b0af-4939-9abc-7c0ad25bb114 DEPARTURE 16 576.00 ROLLBACK,你應該看到在標準輸出下面的輸出

2014-09-23 09:27:28 +0000 test: {"field_1":"1411464370345","array_field":["-37.0081","174.792"],"rest":"BBC SEARCH be03debe-b0af-4939-9abc-7c0ad25bb114 DEPARTURE 16 576.00 ROLLBACK"} 

我Fluentd v0.10.51測試這一點,但它應該與所有工作最近的版本。