require "json" class LogStash::Outputs::Tracker def initialize(emitter, base64 = true) @emitter = emitter @trackers = {} @base64 = base64 end def track(event) tracker_of(event).track_unstruct_event SnowplowTracker::SelfDescribingJson.new( event["schema"], JSON.parse(event["message"])) end private def tracker_of(event) @trackers[event["application"]] ||= SnowplowTracker::Tracker.new( @emitter, nil, nil, event["application"], @base64) end end