Class: CloudWatchLogsPoller::Process
- Inherits:
-
Object
- Object
- CloudWatchLogsPoller::Process
- Defined in:
- lib/cloud_watch_logs_poller/process.rb
Instance Method Summary collapse
- #execute(log_group_name:, log_stream_name_prefix: nil, filter_pattern: nil, start_time: Time.now, &block) ⇒ Object
-
#initialize(interval, debug: false) ⇒ Process
constructor
A new instance of Process.
Constructor Details
#initialize(interval, debug: false) ⇒ Process
Returns a new instance of Process.
3 4 5 6 7 |
# File 'lib/cloud_watch_logs_poller/process.rb', line 3 def initialize(interval, debug: false) @client = Aws::CloudWatchLogs::Client.new @interval = interval @debug = debug end |
Instance Method Details
#execute(log_group_name:, log_stream_name_prefix: nil, filter_pattern: nil, start_time: Time.now, &block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/cloud_watch_logs_poller/process.rb', line 9 def execute(log_group_name:, log_stream_name_prefix: nil, filter_pattern: nil, start_time: Time.now, &block) params = { log_group_name: log_group_name, log_stream_name_prefix: log_stream_name_prefix, start_time: start_time.is_a?(Time) ? start_time.to_i * 1000 : start_time, filter_pattern: filter_pattern, interleaved: true } loop do loop do result = @client.filter_log_events(params) result.events.each do |event| block.call(Event.convert_from_filtered_log_event(event)) end debug_log(params) debug_log(result) break unless result.next_token params[:next_token] = result.next_token end sleep(@interval) end rescue Interrupt puts "Polling stopped." end |