2016-09-05 20 views
0

logstash用の独自のプラグインフィルタを構築しました。このフィルタの原理は、 "lambertII"と呼ばれる座標系で形成されたいくつかの座標(x、y)をgpsシステム(緯度、経度)で変換することです。次に例を示します。自分のlogstashフィルタが入力フィールドの値を正しく抽出しない

lambert { 
    convert => ["lambertII", x, y] 
    latitude => ["lat"] #return as output latitude 
    longitude => ["long"] #return as output longitude 
} 

私は、インスタンスのために書くとき、それがうまく機能:

convert => ["LambertII", 2478517.33, 547536.68] 

しかし、

{"x":2478517.33, "y":547536.68} 
{"x":2699120.65, "y":544959.56} 

が、その下に示したように、私はJSONファイルからデータを抽出するとき私が書いたときにうまくいきません:

convert => ["LambertII", "%{[x]}", "%{[y]}"] 

または

convert => ["LambertII", "%{x}", "%{y}"] 

実際、私のRubyコードは、表現 "%{[..]}" または "%{..}" からfloat値を抽出しないが、それは文字列式のようにそれらを解釈します。

私はすでに、この次のリンクを見てきましたが、それは私の問題を解決しませんでした:https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html#event-dependent-configuration

私はこの問題を解決する方法を見つけることができませんでした。私はどんな助けにも非常に感謝しています。

ご協力いただきありがとうございます。

+0

ルービコードlambert.rbが役に立つ場合はそれを提供できます –

+0

コードを入力してください。 https://gist.github.com/へのリンクは完璧です。 – baudsp

答えて

1

lambert.rbでevent.sprintf()を呼び出さないと思います。それを使用してshoudl仕事!

関連する問題