class LogStash::Filters::Checksum

This filter let's you create a checksum based on various parts of the logstash event. This can be useful for deduplication of messages or simply to provide a custom unique identifier.

This is VERY experimental and is largely a proof-of-concept

Constants

ALGORITHMS

Public Instance Methods

filter(event) click to toggle source
# File lib/logstash/filters/checksum.rb, line 34
def filter(event)
  return unless filter?(event)

  @logger.debug("Running checksum filter", :event => event)

  @keys.sort.each do |k|
    @logger.debug("Adding key to string", :current_key => k)
    @to_checksum << "|#{k}|#{event[k]}"
  end
  @to_checksum << "|"
  @logger.debug("Final string built", :to_checksum => @to_checksum)

  digested_string = OpenSSL::Digest.hexdigest(@algorithm, @to_checksum)
  @logger.debug("Digested string", :digested_string => digested_string)
  event['logstash_checksum'] = digested_string
end
register() click to toggle source
# File lib/logstash/filters/checksum.rb, line 28
def register
  require 'openssl'
  @to_checksum = ""
end