class LogStash::Outputs::Nsq

Public Instance Methods

close() click to toggle source
# File lib/logstash/outputs/nsq.rb, line 72
def close
  @logger.info('closing nsq producer')
  @producer.terminate
end
multi_receive_encoded(encoded) click to toggle source
# File lib/logstash/outputs/nsq.rb, line 66
def multi_receive_encoded(encoded)
  encoded.each do |event,data|
    write_to_nsq(data)
  end
end
register() click to toggle source
# File lib/logstash/outputs/nsq.rb, line 18
def register
  options = {
      :nsqlookupd => @nsqlookupd,
      :topic => @topic,
      :tls_v1 => @tls_v1
  }
  # overwrite nsqlookupd options if client certificate validation is used:
  # this is very dirty. please fix
  if @tls_key and @tls_cert
    options = {
        :nsqlookupd => @nsqlookupd,
        :topic => @topic,
        :tls_v1 => @tls_v1,
        :tls_context => {
         key: @tls_key,
         certificate: @tls_cert
        }
    }
  end
  # overwrite options if no nsqlookupd is used:
  if nsqlookupd == []
    if @tls_key and @tls_cert
      options = {
          :nsqd => @nsqd,
          :topic => @topic,
          :tls_v1 => @tls_v1,
          :tls_context => {
           key: @tls_key,
           certificate: @tls_cert
          }
      }
    else
      options = {
          :nsqd => @nsqd,
          :topic => @topic,
          :tls_v1 => @tls_v1
      }
    end
  end # if

  @producer = Nsq::Producer.new(options)
  @logger.info('Registering nsq producer', :nsqd => @nsqd, :nsqlookupd => @nsqlookupd, :topic => @topic)
end
write_to_nsq(payload) click to toggle source
# File lib/logstash/outputs/nsq.rb, line 62
def write_to_nsq(payload)
  @producer.write(payload)
end