Class: LogStash::Inputs::Heartbeat
- Inherits:
-
Threadable
- Object
- Threadable
- LogStash::Inputs::Heartbeat
- Includes:
- PluginMixins::DeprecationLoggerSupport, PluginMixins::EventSupport::EventFactoryAdapter
- Defined in:
- lib/logstash/inputs/heartbeat.rb
Overview
Generate heartbeat messages.
The general intention of this is to test the performance and availability of Logstash.
Instance Method Summary collapse
Instance Method Details
#generate_message(sequence_count) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/logstash/inputs/heartbeat.rb', line 94 def (sequence_count) if @sequence_selector == :none evt = event_factory.new_event("message" => @message) evt.set(@field_host, @host) return evt end sequence_value = @sequence_selector == :epoch ? Time.now.to_i : sequence_count evt = event_factory.new_event() evt.set(@field_sequence, sequence_value) evt.set(@field_host, @host) evt.set("message", @message) unless @message.nil? evt end |
#register ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/logstash/inputs/heartbeat.rb', line 59 def register @host = Socket.gethostname @field_sequence = ecs_select[disabled: "clock", v1: "[event][sequence]"] @field_host = ecs_select[disabled: "host", v1: "[host][name]"] if sequence.nil? && ["epoch", "sequence"].include?() logger.warn("message contains sequence type specification (epoch|sequence) for this purpose use the sequence option") end if ecs_compatibility == :disabled && @sequence.nil? if %w(epoch sequence).include?(@message) logger.debug("intercepting magic `message` to configure `sequence`: `#{@message}`") @sequence, @message = @message, nil # legacy: intercept magic messages deprecation_logger.deprecated("magic values of `message` to specify sequence type are deprecated; use separate `sequence` option instead.") end end @sequence = "none" if @sequence.nil? @sequence_selector = @sequence.to_sym end |
#run(queue) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/logstash/inputs/heartbeat.rb', line 77 def run(queue) sequence_count = 0 while !stop? start = Time.now sequence_count += 1 event = (sequence_count) decorate(event) queue << event break if sequence_count == @count || stop? sleep_for = @interval - (Time.now - start) Stud.stoppable_sleep(sleep_for) { stop? } if sleep_for > 0 end end |