logstash-input-rds 0.15.1 → 0.15.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb70e7846d2d058443303145af8bb0e6583637f4096394bf38ad3e8eea4c33f9
4
- data.tar.gz: 05ea61658c93554bf2287610d61438267755746559c1abf18ea4ccd18075bdc7
3
+ metadata.gz: 21b636c4ee0b10aa4ba8604582f679bdbea13fbcdb76f2797f955a149aa8f679
4
+ data.tar.gz: 261eabddfcc67888ae3481343fb7b328f22e2ce524a1e69c2f288ca09927c2e7
5
5
  SHA512:
6
- metadata.gz: 3a9c245206d2336cdbe39c2faa564a585457b20505de24c51137bbab802255ef1f676e01cb6f1e6bcb1da47f3dfcf2fbf5b12b5e46666f2830ac3de39ef7f80b
7
- data.tar.gz: be67935675086b83fd4654bf5fec812296cb5e56d8f9eccbb3e2fef123e5995a6c61161a6e10b3f4e9f30ca537f17ef8b56d8bea81c7a7e0da8cce2d4bda57c3
6
+ metadata.gz: 97bc0193ca76a26fdecc8ba24c7f1b765cce2634907e14d473f493cfdde86ba6708054619b5a62ad217d59999a650f3b37014f08717aaff7ec195ba7ffb41a9e
7
+ data.tar.gz: c3850b786f6b44e1a3cbf797bb78983eee76c80976884d3169e9702abde6007d381e85776d1158c192e0940bc020a90aceff5467893f35a9dd12a7e241988001
@@ -24,21 +24,19 @@ class LogStash::Inputs::Rds < LogStash::Inputs::Base
24
24
  require "aws-sdk"
25
25
  @logger.info "Registering RDS input", :region => @region, :instance => @instance_name, :log_file => @log_file_name
26
26
  @database = Aws::RDS::DBInstance.new @instance_name, aws_options_hash
27
- @sincedate = filename2datetime "1999-01-01-01" # FIXME sincedb
27
+ @sincedb = SinceDB::File.new File.join(ENV["HOME"], ".sincedb_" + Digest::MD5.hexdigest("#{@instance_name}+#{@log_file_name}"))
28
28
  end
29
29
 
30
30
  def run(queue)
31
31
  @thread = Thread.current
32
32
  Stud.interval(@polling_frequency) do
33
- @logger.debug "finding files starting #{@sincedate} (#{@sincedate.to_i * 1000})"
34
-
33
+ @logger.debug "finding #{@log_file_name} for #{@instance_name} starting #{@sincedb.read} (#{@sincedb.read.to_i * 1000})"
35
34
  logfiles = @database.log_files({
36
35
  filename_contains: @log_file_name,
37
- file_last_written: @sincedate.to_i * 1000,
36
+ file_last_written: @sincedb.read.to_i * 1000,
38
37
  })
39
38
  logfiles.each do |logfile|
40
- @sincedate = filename2datetime logfile.name
41
-
39
+ @logger.debug "downloading #{logfile.name} for #{@instance_name}"
42
40
  more = true
43
41
  marker = "0"
44
42
  while more do
@@ -54,6 +52,7 @@ class LogStash::Inputs::Rds < LogStash::Inputs::Base
54
52
  more = response[:additional_data_pending]
55
53
  marker = response[:marker]
56
54
  end
55
+ @sincedb.write (filename2datetime logfile.name)
57
56
  end
58
57
  end
59
58
  end
@@ -63,8 +62,29 @@ class LogStash::Inputs::Rds < LogStash::Inputs::Base
63
62
  end
64
63
 
65
64
  def filename2datetime(name)
66
- fragments = name.match /(\d{4})-(\d{2})-(\d{2})-(\d{2})$/
67
- Time.parse "#{fragments[1]}-#{fragments[2]}-#{fragments[3]} #{fragments[4]}"
65
+ parts = name.match /(\d{4})-(\d{2})-(\d{2})-(\d{2})$/
66
+ Time.utc parts[1], parts[2], parts[3], parts[4]
68
67
  end
69
- end
70
68
 
69
+ private
70
+ module SinceDB
71
+ class File
72
+ def initialize(file)
73
+ @db = file
74
+ end
75
+
76
+ def read
77
+ if ::File.exists?(@db)
78
+ content = ::File.read(@db).chomp.strip
79
+ return content.empty? ? Time.new : Time.parse(content)
80
+ else
81
+ return Time.new("1999-01-01")
82
+ end
83
+ end
84
+
85
+ def write(time)
86
+ ::File.open(@db, 'w') { |file| file.write time.to_s }
87
+ end
88
+ end
89
+ end
90
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-rds'
3
- s.version = '0.15.1'
3
+ s.version = '0.15.3'
4
4
  s.summary = 'Ingest RDS log files to Logstash'
5
5
 
6
6
  s.authors = ['Andrew Schleifer']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-rds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.1
4
+ version: 0.15.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Schleifer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-29 00:00:00.000000000 Z
11
+ date: 2018-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement