fluent-plugin-vmware-log-intelligence 2.0.6 → 2.0.8

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: b02a27878c1270123d2ff6496ba8623d560046b4eaf9008e754ffd539e730765
4
- data.tar.gz: c4350681f8298633c2dccca64ab783923e43feac26d5b00e2110d9f70eae088e
3
+ metadata.gz: 6bb5e6a75c4c18b3f33862ee57e5e07ea21407a3f1b6728962f435e9fe46c201
4
+ data.tar.gz: 45d0fc9bdbcda47173df89de75cb311343bf3d69a16192461032dc46480cde53
5
5
  SHA512:
6
- metadata.gz: f683c0d3e06cd4d780cfcc72698a43dbb9d20c8f29c82b5b49e2478fd0779e57f5f810c2c89ea7c6f567d04196b3cab4d7a05ffc56915f2677c64117af37aba6
7
- data.tar.gz: edb4eaca17536dbbf1cb545013921805a197635221c526c55fd2f98ab3d7c941ea1c763723c0dc5d60b4fb648a9029978b2dbce3906c7e6db7854f4cf31214f8
6
+ metadata.gz: e373b4150896aa581c46ab9787e61c981bad42fa45189b1b134e73ca15f1e730ee511a4e74abd417936428fcbeb1b26afa9697b0d2c17ee682b6ea87711595c0
7
+ data.tar.gz: 9b0023ff195a46ed4cdbda009edf86e63ecdc9bb5d8e3f2d78b3b51429ff12d3f11a1d76bc081796609c0ed332d0f4c81d0bea919c2eadbc099c098a243e4e3d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.6
1
+ 2.0.8
@@ -38,13 +38,13 @@ Gem::Specification.new do |s|
38
38
  s.require_paths = ['lib']
39
39
 
40
40
  s.add_dependency "fluentd", ">= 0.14.20"
41
- s.add_dependency "http", ">= 0.9.8"
41
+ s.add_dependency "http", ">= 4.0"
42
42
  s.add_dependency "myslog", "~> 0.0"
43
43
  s.add_dependency "fluent-plugin-mysqlslowquery", ">= 0.0.9"
44
- s.add_development_dependency "rake", ">= 0.9.2"
45
- s.add_development_dependency "bundler", ">= 1.3.4"
46
- s.add_development_dependency 'test-unit', '~> 3.1.0'
47
- s.add_development_dependency 'webmock', '~> 3.4.0'
44
+ s.add_development_dependency "rake", ">= 13.0.0"
45
+ s.add_development_dependency "bundler", ">= 2.4.0"
46
+ s.add_development_dependency 'test-unit', '~> 3.5.0'
47
+ s.add_development_dependency 'webmock', '~> 3.10.0'
48
48
  s.add_development_dependency 'fluent-plugin-detect-exceptions', '>= 0.0.12'
49
49
  s.add_development_dependency 'fluent-plugin-concat', '>= 2.0.0'
50
50
  s.add_development_dependency 'fluent-plugin-kubernetes_metadata_filter', '>= 2.0.0'
@@ -1,4 +1,4 @@
1
- # Copyright 2018 VMware, Inc.
1
+ # Copyright 2023 VMware, Inc.
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  module Fluent::Plugin
@@ -20,6 +20,7 @@ module Fluent::Plugin
20
20
  :connect_timeout => open_timeout,
21
21
  :read_timeout => read_timeout
22
22
  }
23
+ @log.debug "VMware Log Intelligence - Timeout Options: connect timeout #{open_timeout}, read timeout #{read_timeout}"
23
24
 
24
25
  @conn = HTTP.persistent(endpoint_url)
25
26
  .headers(headers)
@@ -29,19 +30,21 @@ module Fluent::Plugin
29
30
  @last_429_time = nil
30
31
  end
31
32
 
32
- def check_quota
33
+ def quota_reached
34
+ @log.debug "VMware Log Intelligence - Checking Rate Limit Quota"
33
35
  if @last_429_time
34
36
  if (Time.new - @last_429_time) < 600
35
- return false
37
+ return true
36
38
  end
37
39
 
38
40
  @last_429_time = nil
39
41
  end
40
- return true
42
+ return false
41
43
  end
42
44
 
43
45
  def post(data)
44
- if !check_quota
46
+ if quota_reached
47
+ @log.debug "VMware Log Intelligence - Rate limit quota reached"
45
48
  return
46
49
  end
47
50
 
@@ -54,6 +57,7 @@ module Fluent::Plugin
54
57
  else
55
58
  @last_429_time = nil
56
59
  end
60
+ @log.debug "VMware Log Intelligence - Response code from VMware Log Intelligence: #{response.code}"
57
61
 
58
62
  if @statuses.include? response.code.to_i
59
63
  # Raise an exception so that fluent will retry based on the configurations.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2013 ablagoev
2
- # Copyright 2018 VMware, Inc.
2
+ # Copyright 2023 VMware, Inc.
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
5
 
@@ -41,7 +41,7 @@ module Fluent::Plugin
41
41
  end
42
42
 
43
43
  def validate_uri(uri_string)
44
- unless uri_string =~ /^#{URI.regexp}$/
44
+ unless uri_string =~ /^#{URI::DEFAULT_PARSER.make_regexp}$/
45
45
  fail Fluent::ConfigError, 'endpoint_url invalid'
46
46
  end
47
47
 
@@ -56,6 +56,7 @@ module Fluent::Plugin
56
56
  headers = {}
57
57
  conf.elements.each do |element|
58
58
  if @http_compress
59
+ @log.debug "VMware Log Intelligence Compression enabled"
59
60
  set_gzip_header(element)
60
61
  end
61
62
  if element.name == 'headers'
@@ -102,7 +103,8 @@ module Fluent::Plugin
102
103
  keys.push(key)
103
104
  key.force_encoding("utf-8")
104
105
 
105
- if value.is_a?(String)
106
+ if value.is_a?(String)
107
+ @log.debug "VMware Log Intelligence force encoding"
106
108
  value.force_encoding("utf-8")
107
109
  end
108
110
  end
@@ -130,7 +132,7 @@ module Fluent::Plugin
130
132
 
131
133
  def flatten_record(record, prefix=[])
132
134
  ret = {}
133
-
135
+ @log.debug "VMware Log Intelligence flattening record"
134
136
  case record
135
137
  when Hash
136
138
  record.each do |key, value|
@@ -164,12 +166,18 @@ module Fluent::Plugin
164
166
  @open_timeout, @read_timeout, @log)
165
167
  end
166
168
 
169
+ def multi_workers_ready?
170
+ true
171
+ end
172
+
167
173
  def start
168
174
  super
175
+ @log.debug "Started VMware Log Intelligence Shipper.."
169
176
  end
170
177
 
171
178
  def shutdown
172
179
  super
180
+ @log.debug "Shutting Down VMware Log Intelligence Shipper.."
173
181
  begin
174
182
  @http_client.close if @http_client
175
183
  rescue
@@ -177,6 +185,7 @@ module Fluent::Plugin
177
185
  end
178
186
 
179
187
  def write(chunk)
188
+ @log.debug "VMware Log Intelligence writing message"
180
189
  is_rate_limited = (@rate_limit_msec != 0 and not @last_request_time.nil?)
181
190
  if is_rate_limited and ((Time.now.to_f - @last_request_time) * 1000.0 < @rate_limit_msec)
182
191
  @log.info('Dropped request due to rate limiting')
@@ -189,12 +198,15 @@ module Fluent::Plugin
189
198
  end
190
199
 
191
200
  if @http_compress
201
+ @log.debug "VMware Log Intelligence sending compressed message"
192
202
  gzip_body = Zlib::GzipWriter.new(StringIO.new)
193
- gzip_body << data.to_json
203
+ gzip_body << Yajl.dump(data)
204
+ @last_request_time = Time.now.to_f
194
205
  @http_client.post(gzip_body.close.string)
195
- else
206
+ else
207
+ @log.debug "VMware Log Intelligence sending uncompressed message"
196
208
  @last_request_time = Time.now.to_f
197
- @http_client.post(JSON.dump(data))
209
+ @http_client.post(Yajl.dump(data))
198
210
  end
199
211
  end
200
212
  end
data/test/helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2013 ablagoev
2
- # Copyright 2018 VMware, Inc.
2
+ # Copyright 2023 VMware, Inc.
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
5
  require 'coveralls'
@@ -10,13 +10,13 @@ class HttpClientTest < Test::Unit::TestCase
10
10
  stub_request(:post, url).to_return(:status => [429, "User out of ingestion quota."])
11
11
  end
12
12
 
13
- def test_check_quota
13
+ def test_quota_reached
14
14
  http_client = create_http_client()
15
- assert_equal http_client.check_quota, true
15
+ assert_equal http_client.quota_reached, false
16
16
 
17
17
  stub_server_out_of_quota
18
- http_client.post(JSON.dump(sample_record()))
19
- assert_equal http_client.check_quota, false
18
+ http_client.post(Yajl.dump(sample_record()))
19
+ assert_equal http_client.quota_reached, true
20
20
  end
21
21
 
22
22
  def stub_server_unavailable(url=DEFAULT_URL)
@@ -72,7 +72,7 @@ class HttpClientTest < Test::Unit::TestCase
72
72
  http_client = create_http_client()
73
73
  stub_server_returns_500
74
74
  assert_raise RuntimeError do
75
- http_client.post(JSON.dump(sample_record()))
75
+ http_client.post(Yajl.dump(sample_record()))
76
76
  end
77
77
  end
78
78
 
@@ -80,16 +80,16 @@ class HttpClientTest < Test::Unit::TestCase
80
80
  http_client = create_http_client()
81
81
  stub_server_raise_error
82
82
  assert_raise IOError do
83
- http_client.post(JSON.dump(sample_record()))
83
+ http_client.post(Yajl.dump(sample_record()))
84
84
  end
85
85
  end
86
86
 
87
87
  def test_post_logs
88
88
  stub_post_logs
89
89
  http_client = create_http_client()
90
- http_client.post(JSON.dump(sample_record()))
90
+ http_client.post(Yajl.dump(sample_record()))
91
91
 
92
92
  stub_post_logs
93
- http_client.post(JSON.dump(sample_record()))
93
+ http_client.post(Yajl.dump(sample_record()))
94
94
  end
95
95
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-vmware-log-intelligence
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Blagoev
8
8
  - Chaur Wu
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
  date: 2018-08-12 00:00:00.000000000 Z
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 0.9.8
34
+ version: '4.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 0.9.8
41
+ version: '4.0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: myslog
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -73,56 +73,56 @@ dependencies:
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: 0.9.2
76
+ version: 13.0.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: 0.9.2
83
+ version: 13.0.0
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: bundler
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: 1.3.4
90
+ version: 2.4.0
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 1.3.4
97
+ version: 2.4.0
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: test-unit
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: 3.1.0
104
+ version: 3.5.0
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: 3.1.0
111
+ version: 3.5.0
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: webmock
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: 3.4.0
118
+ version: 3.10.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: 3.4.0
125
+ version: 3.10.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: fluent-plugin-detect-exceptions
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -216,7 +216,7 @@ homepage: http://github.com/vmware/fluent-plugin-vmware-log-intelligence
216
216
  licenses:
217
217
  - MIT
218
218
  metadata: {}
219
- post_install_message:
219
+ post_install_message:
220
220
  rdoc_options: []
221
221
  require_paths:
222
222
  - lib
@@ -231,9 +231,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
231
  - !ruby/object:Gem::Version
232
232
  version: '0'
233
233
  requirements: []
234
- rubyforge_project:
235
- rubygems_version: 2.7.6
236
- signing_key:
234
+ rubygems_version: 3.0.3.1
235
+ signing_key:
237
236
  specification_version: 4
238
237
  summary: Fluentd buffered output plugin for VMware Log Intelligence
239
238
  test_files: []