class LogStash::Outputs::Coralogix
Public Instance Methods
configure()
click to toggle source
This method is called before starting.
# File lib/logstash/outputs/coralogix.rb, line 62 def configure begin @loggers = {} # Overwrite Coralogix endpoint unless endpoint.nil? ENV["CORALOGIX_LOG_URL"] = "https://#{endpoint}/api/v1/logs" ENV["CORALOGIX_TIME_DELTA_URL"] = "https://#{endpoint}/sdk/v1/time" end require "centralized_ruby_logger" #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, proxy @configured = true end rescue Exception => e $stderr.write "Failed to configure: #{e}" end end
extract(record, key, default)
click to toggle source
# File lib/logstash/outputs/coralogix.rb, line 84 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.rb, line 99 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.rb, line 105 def get_logger(record) return @logger if @configured && !@logger.nil? app_name, sub_name = get_app_sub_name(record) if !@loggers.key?("#{app_name}.#{sub_name}") || @loggers.fetch("#{app_name}.#{sub_name}", nil).nil? @loggers["#{app_name}.#{sub_name}"] = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], app_name, sub_name, debug, "Logstash (#{version?})", force_compression, proxy end return @loggers["#{app_name}.#{sub_name}"] end
multi_receive(events)
click to toggle source
# File lib/logstash/outputs/coralogix.rb, line 27 def multi_receive(events) events.each do |record| record = record.to_hash logger = get_logger(record) log_record = log_key_name != nil ? record.fetch(log_key_name, record) : record log_record = (is_json ? log_record.to_json : log_record) rescue log_record log_record = 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.rb, line 23 def register configure end
version?()
click to toggle source
# File lib/logstash/outputs/coralogix.rb, line 53 def version? begin Gem.loaded_specs['logstash-output-coralogix'].version.to_s rescue Exception => e return '1.0.0' end end