Class: LogStash::Outputs::SumoLogic
- Inherits:
-
Base
- Object
- Base
- LogStash::Outputs::SumoLogic
- Includes:
- PluginMixins::HttpClient
- Defined in:
- lib/logstash/outputs/sumologic.rb
Overview
Now you can use logstash to deliver logs to Sumo Logic
Create a HTTP Source in your Sumo Logic account and you can now use logstash to parse your log and send your logs to your account at Sumo Logic.
Instance Method Summary collapse
Instance Method Details
#close ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/logstash/outputs/sumologic.rb', line 84 def close @semaphore.synchronize { send_request(@pile.join($/)) @pile.clear } client.close end |
#multi_receive(events) ⇒ Object
52 53 54 55 |
# File 'lib/logstash/outputs/sumologic.rb', line 52 def multi_receive(events) events.each { |event| receive(event) } client.execute! end |
#receive(event) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/logstash/outputs/sumologic.rb', line 58 def receive(event) if event == LogStash::SHUTDOWN finished return end content = format_event(event) if @interval <= 0 # means send immediately send_request(content) return end @semaphore.synchronize { now = Time.now @pile << content if now - @timer > @interval # ready to send send_request(@pile.join($/)) @timer = now @pile.clear end } end |
#register ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/logstash/outputs/sumologic.rb', line 42 def register # initialize request pool @request_tokens = SizedQueue.new(@pool_max) @pool_max.times { |t| @request_tokens << true } @timer = Time.now @pile = Array.new @semaphore = Mutex.new end |