Module: Loggery::Metadata::LogstashEventUtil

Defined in:
lib/loggery/metadata/logstash_event_util.rb

Constant Summary collapse

MAGIC_FIELDS =
%i[type uid _id _type _source _all _parent _fieldnames _routing
_index _size _timestamp _ttl].freeze

Class Method Summary collapse

Class Method Details

.default_metadataObject



25
26
27
# File 'lib/loggery/metadata/logstash_event_util.rb', line 25

def self.
  { pid: Process.pid }
end

.event_metadata(event) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/loggery/metadata/logstash_event_util.rb', line 12

def self.(event)
  return unless loglevel_includes_event?(event)

   = Loggery::Metadata::Store.store || {}
   = .merge()
  (event, )
end

.fail_if_magic_fields_are_used(event) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/loggery/metadata/logstash_event_util.rb', line 34

def self.fail_if_magic_fields_are_used(event)
  MAGIC_FIELDS.each do |magic_field|
    if event[magic_field.to_s].present? || event[magic_field.to_sym].present?
      raise "'#{magic_field}' is a reserved field name of logstash. It should not be set in a custom event"
    end
  end
end

.loglevel_includes_event?(event) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
# File 'lib/loggery/metadata/logstash_event_util.rb', line 29

def self.loglevel_includes_event?(event)
  severity = event["severity"].downcase
  Rails.logger.respond_to?(severity) && Rails.logger.public_send("#{severity}?")
end

.set_logstash_event_metadata(event, metadata) ⇒ Object



20
21
22
23
# File 'lib/loggery/metadata/logstash_event_util.rb', line 20

def self.(event, )
  .each { |k, v| event[k] = v }
  fail_if_magic_fields_are_used(event)
end