Skip to content

Instantly share code, notes, and snippets.

@dakatsuka
Created October 18, 2016 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dakatsuka/394b34d22f1d90a98413874acecdffcc to your computer and use it in GitHub Desktop.
Save dakatsuka/394b34d22f1d90a98413874acecdffcc to your computer and use it in GitHub Desktop.
fluentdに流れてくるデータのキーを正規表現で置き換えるfilter plugin
module Fluent
class ReplaceKeyFilter < Filter
Fluent::Plugin.register_filter('replace_key', self)
config_param :pattern, :string
config_param :replacement, :string
attr_reader :pattern, :replacement
def configure(conf)
super
@pattern = Regexp.compile(conf["pattern"])
@replacement = conf["replacement"]
end
def filter_stream(tag, es)
new_es = MultiEventStream.new
es.each do |time, record|
begin
modified = record.each_with_object({}) do |(key, value), hash|
hash[key.gsub(@pattern, @replacement)] = value
end
new_es.add(time, modified)
rescue => e
router.emit_error_event(tag, time, record, e)
end
end
new_es
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment