fluent-plugin-rds-pgsql-log 0.3.2 → 0.4.0

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
  SHA1:
3
- metadata.gz: 5680fbec5f65cfcfb2d039fc2e50668cc5030291
4
- data.tar.gz: 4bb1941a171f00fd30e2cc3d62f962af430be090
3
+ metadata.gz: 8ef1de71b76cd256ade578928b9799c8a728ba8c
4
+ data.tar.gz: b32866f201c50d4e94a0c608db3762516500e5f1
5
5
  SHA512:
6
- metadata.gz: eba458bfc219c432586ef2b37f0d1617999d6cf7a432d8032ee112bd23a8c8d9572718ddcf4b03621fef216183f26e0d7693cfd4559ad8b48c1ad9b170a00c38
7
- data.tar.gz: bc3ce7977567f86945ade706b23e600de507e7ac0df020f177bfd67cc137014ed5f83976ab0fe316d73c4fbdc0778bdbd98d51df56f03a5a1a1fb6191924e940
6
+ metadata.gz: 48d95204d022492d2a38a7070e2dfe1bb8bb9a960a90f5d7cab78efbddd147c0707ee391d863430cbf24a00f41cd67028646f9b119246989da14d050c4cb0117
7
+ data.tar.gz: 0f234c127f0ff778cc5914a837be2e77bbed9fbe661e4848ce585c30fa2146dd2acb65f8172e8e5fa7f0c0b61687a23ae971a9e803cd81e3ee46034d760bb541
data/README.md CHANGED
@@ -78,3 +78,7 @@ SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt (If you using amazon linux)
78
78
 
79
79
  ### 0.3.0
80
80
  - use AWS SDK v3.x
81
+
82
+ ### 0.4.0
83
+ - Use record time
84
+
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "fluent-plugin-rds-pgsql-log"
6
- spec.version = "0.3.2"
6
+ spec.version = "0.4.0"
7
7
  spec.authors = ["shinsaka"]
8
8
  spec.email = ["shinx1265@gmail.com"]
9
9
  spec.summary = "Amazon RDS for PostgreSQL log input plugin"
@@ -28,13 +28,6 @@ class Fluent::Plugin::RdsPgsqlLogInput < Fluent::Plugin::Input
28
28
  raise Fluent::ConfigError.new("pos_file is required") unless @pos_file
29
29
  raise Fluent::ConfigError.new("refresh_interval is required") unless @refresh_interval
30
30
  raise Fluent::ConfigError.new("tag is required") unless @tag
31
- end
32
-
33
- def start
34
- super
35
-
36
- # pos file touch
37
- File.open(@pos_file, File::RDWR|File::CREAT).close
38
31
 
39
32
  begin
40
33
  options = {
@@ -48,6 +41,13 @@ class Fluent::Plugin::RdsPgsqlLogInput < Fluent::Plugin::Input
48
41
  rescue => e
49
42
  log.warn "RDS Client error occurred: #{e.message}"
50
43
  end
44
+ end
45
+
46
+ def start
47
+ super
48
+
49
+ # pos file touch
50
+ File.open(@pos_file, File::RDWR|File::CREAT).close
51
51
 
52
52
  timer_execute(:poll_logs, @refresh_interval, repeat: true, &method(:input))
53
53
  end
@@ -190,7 +190,7 @@ class Fluent::Plugin::RdsPgsqlLogInput < Fluent::Plugin::Input
190
190
  record["message"] << "\n" + raw_record unless record.nil?
191
191
  else
192
192
  # emit before record
193
- router.emit(@tag, Fluent::Engine.now, record) unless record.nil?
193
+ router.emit(@tag, Time.parse(record["time"]), record) unless record.nil?
194
194
 
195
195
  # set a record
196
196
  record = {
@@ -206,7 +206,7 @@ class Fluent::Plugin::RdsPgsqlLogInput < Fluent::Plugin::Input
206
206
  end
207
207
  end
208
208
  # emit last record
209
- router.emit(@tag, Fluent::Engine.now, record) unless record.nil?
209
+ router.emit(@tag, Time.parse(record["time"]), record) unless record.nil?
210
210
  rescue => e
211
211
  log.warn e.message
212
212
  end
@@ -10,7 +10,7 @@ class RdsPgsqlLogInputTest < Test::Unit::TestCase
10
10
  secret_access_key: 'dummy_secret_access_key',
11
11
  region: 'ap-northeast-1',
12
12
  db_instance_identifier: 'test-postgres-id',
13
- refresh_interval: 30,
13
+ refresh_interval: 2,
14
14
  pos_file: 'pgsql-log-pos.dat',
15
15
  }
16
16
 
@@ -46,6 +46,40 @@ class RdsPgsqlLogInputTest < Test::Unit::TestCase
46
46
  assert_equal 'ap-northeast-1', d.instance.region
47
47
  assert_equal 'test-postgres-id', d.instance.db_instance_identifier
48
48
  assert_equal 'pgsql-log-pos.dat', d.instance.pos_file
49
- assert_equal 30, d.instance.refresh_interval
49
+ assert_equal 2, d.instance.refresh_interval
50
+ end
51
+
52
+ def test_get_log_files
53
+ use_iam_role
54
+ d = create_driver
55
+
56
+ aws_client_stub = Aws::RDS::Client.new(stub_responses: {
57
+ describe_db_log_files: {
58
+ describe_db_log_files: [
59
+ {
60
+ log_file_name: 'db.log',
61
+ last_written: 123,
62
+ size: 123
63
+ }
64
+ ],
65
+ marker: 'marker'
66
+ },
67
+ download_db_log_file_portion: {
68
+ log_file_data: "2019-01-26 22:10:20 UTC::@:[129155]:LOG:some db log",
69
+ marker: 'marker',
70
+ additional_data_pending: false
71
+ }
72
+ })
73
+
74
+ d.instance.instance_variable_set(:@rds, aws_client_stub)
75
+
76
+ d.run(timeout: 3, expect_emits: 1)
77
+
78
+ events = d.events
79
+ assert_equal(events[0][1].iso8601, "2019-01-26T22:10:20Z")
80
+ assert_equal(events[0][2]["pid"], '129155')
81
+ assert_equal(events[0][2]["message_level"], 'LOG')
82
+ assert_equal(events[0][2]["message"], 'some db log')
83
+ assert_equal(events[0][2]["log_file_name"], 'db.log')
50
84
  end
51
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-rds-pgsql-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - shinsaka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-16 00:00:00.000000000 Z
11
+ date: 2019-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd