class LogStash::Outputs::CoralogixLogger
Public Instance Methods
configure()
click to toggle source
This method is called before starting.
# File lib/logstash/outputs/coralogix_logger.rb, line 81 def configure begin @loggers = {} #If config parameters doesn't start with $ then we can configure Coralogix logger now. if !config_params["APP_NAME"].start_with?("$") && !config_params["SUB_SYSTEM"].start_with?("$") @logger = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], config_params["APP_NAME"], config_params["SUB_SYSTEM"], debug, "Logstash (#{version?})", force_compression @configured = true end rescue Exception => e $stderr.write "Failed to configure: #{e}" end end
convert_to_json(str)
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 71 def convert_to_json str begin p = JSON::Parser.new(str, {:create_additions => true}) return p.parse rescue Exception => e return str end end
extract(record, key, default)
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 94 def extract record, key, default begin res = record return key unless key.start_with?("$") key[1..-1].split(".").each do |k| res = res.fetch(k,nil) return default if res == nil end return res rescue Exception => e return default end end
get_app_sub_name(record)
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 109 def get_app_sub_name(record) app_name = extract(record, config_params["APP_NAME"], DEFAULT_APP_NAME) sub_name = extract(record, config_params["SUB_SYSTEM"], DEFAULT_SUB_SYSTEM) return app_name, sub_name end
get_logger(record)
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 115 def get_logger(record) return @logger if @configured app_name, sub_name = get_app_sub_name(record) if !@loggers.key?("#{app_name}.#{sub_name}") @loggers["#{app_name}.#{sub_name}"] = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], app_name, sub_name, debug, "Logstash (#{version?})", force_compression end return @loggers["#{app_name}.#{sub_name}"] end
multi_receive(events)
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 28 def multi_receive(events) events.each do |record| record = record.to_hash temp_key = (log_key_name == nil) ? "message" : log_key_name if record[temp_key] != nil record[temp_key] = is_json ? convert_to_json(record[temp_key]) : record[temp_key] end logger = get_logger(record) log_record = log_key_name != nil ? record.fetch(log_key_name, record) : record log_record = (is_json && record[temp_key] != nil) ? log_record.to_json : log_record log_record = (log_record == nil || log_record.to_s.empty?) ? record : log_record timestamp = record.fetch(timestamp_key_name, nil) if(timestamp.nil?) logger.debug log_record else begin float_timestamp = DateTime.parse(timestamp.to_s).to_time.to_f * 1000 logger.debug log_record, nil, timestamp:float_timestamp rescue Exception => e logger.debug log_record end end end return 1 end
register()
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 23 def register configure end
version?()
click to toggle source
# File lib/logstash/outputs/coralogix_logger.rb, line 63 def version? begin Gem.loaded_specs['logstash-output-coralogix_logger'].version.to_s rescue Exception => e return '0.0.0' end end