Sha256: 36e5dccb530caf5ef583b45660e272f53a0427fdd7bed365d1ca9f87a80e42df

Contents?: true

Size: 838 Bytes

Versions: 2

Compression:

Stored size: 838 Bytes

Contents

require 'socket'

class Logasm
  module Utils
    HOST = ::Socket.gethostname

    # Build logstash json compatible event
    #
    # @param [Hash] metadata
    # @param [#to_s] level
    # @param [String] service_name
    #
    # @return [Hash]
    def self.build_event(metadata, level, service_name)
      metadata.merge(
        application: application_name(service_name),
        level: level.to_s.downcase,
        host: HOST,
        :@timestamp => Time.now.utc.iso8601(3)
      )
    end

    # Return application name
    #
    # Returns lower snake case application name. This allows the
    # application value to be used in the elasticsearch index name.
    #
    # @param [String] service_name
    #
    # @return [String]
    def self.application_name(service_name)
      Inflecto.underscore(service_name)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
logasm-0.2.3 lib/logasm/utils.rb
logasm-0.2.2 lib/logasm/utils.rb