0

FluentD を使用してイベント レコードに値の配列を作成する方法は?

ログから緯度と経度を解析しました。これらの値を配列に変換する方法は?

元。私は次のようなログを持っています

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

latitude=-37.0081 と経度 =174.792 を解析しました。このような JSON オブジェクトを形成する方法は?

{location:[-37.0081,174.792]}

また、文字列値をイベント レコードのデータ型に解析する方法は? integer / float / double のように

4

2 に答える 2

0

in_tailプラグインの types パラメータで配列を作成しました。

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

ただし、配列要素は文字列型です。

于 2014-10-19T09:58:42.810 に答える
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 でテストしましたが、最近のすべてのバージョンで動作するはずです。

于 2014-10-23T21:56:39.890 に答える