class Fluent::AddInsertIdsFilter
Fluentd filter plugin for adding insertIds to guarantee log entry order and uniqueness. Sample log entries enriched by this plugin: {
"timestamp": "2017-08-22 13:35:28", "message": "1", "logging.googleapis.com/insertId": "aye7eakuf23h41aef0"
} {
"timestamp": "2017-08-22 13:35:28", "message": "2", "logging.googleapis.com/insertId": "aye7eakuf23h41aef1"
} {
"timestamp": "2017-08-22 13:35:28", "message": "3", "logging.googleapis.com/insertId": "aye7eakuf23h41aef2"
}
Attributes
insert_id_key[R]
Expose attr_readers for testing.
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_add_insert_ids.rb, line 68 def configure(conf) super end
filter(tag, time, record)
click to toggle source
rubocop:disable Lint/UnusedMethodArgument
# File lib/fluent/plugin/filter_add_insert_ids.rb, line 77 def filter(tag, time, record) # Only generate and add an insertId field if the record is a hash and # the insert ID field is not already set (or set to an empty string). if record.is_a?(Hash) && record[@insert_id_key].to_s.empty? record[@insert_id_key] = increment_insert_id end record end
shutdown()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_add_insert_ids.rb, line 72 def shutdown super end
start()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/filter_add_insert_ids.rb, line 57 def start super @log = $log # rubocop:disable Style/GlobalVars # Initialize the insertID. @log.info "Started the add_insert_ids plugin with #{@insert_id_key}" \ ' as the insert ID key.' @insert_id = generate_initial_insert_id @log.info "Initialized the insert ID key to #{@insert_id}." end
Private Instance Methods
generate_initial_insert_id()
click to toggle source
Generate a random string as the initial insertId.
# File lib/fluent/plugin/filter_add_insert_ids.rb, line 90 def generate_initial_insert_id Array.new(INSERT_ID_SIZE) { ALLOWED_CHARS.sample }.join end
increment_insert_id()
click to toggle source
Increment the insertId and return the new value.
# File lib/fluent/plugin/filter_add_insert_ids.rb, line 95 def increment_insert_id @insert_id = @insert_id.next end