fluent-plugin-vmware-log-intelligence 2.0.7 → 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: 21374b7d2282736b18991b81fdb7ec7aa200a0b696ba15007ceb0674670e27f1
4
- data.tar.gz: 1a04df130e3016f62f71988829aec9163303ed01848078ab759bd78a85c80ebd
3
+ metadata.gz: 6bb5e6a75c4c18b3f33862ee57e5e07ea21407a3f1b6728962f435e9fe46c201
4
+ data.tar.gz: 45d0fc9bdbcda47173df89de75cb311343bf3d69a16192461032dc46480cde53
5
5
  SHA512:
6
- metadata.gz: 33d87eb96bbe5119377803aab11eb1c24c27dfb8368b63c96e045177b3e64772fed645fed62ce4eb787792381786df75f34972527f7240dc977c1c5d71f4ef52
7
- data.tar.gz: 36d9dfb51285104363a6bd65e7410f19d1d199e2e291213a4b8586d831c415c646fe5c552e94818bbf71e8c2aeaf34214c9506d555c669939c6b7b8e1b910622
6
+ metadata.gz: e373b4150896aa581c46ab9787e61c981bad42fa45189b1b134e73ca15f1e730ee511a4e74abd417936428fcbeb1b26afa9697b0d2c17ee682b6ea87711595c0
7
+ data.tar.gz: 9b0023ff195a46ed4cdbda009edf86e63ecdc9bb5d8e3f2d78b3b51429ff12d3f11a1d76bc081796609c0ed332d0f4c81d0bea919c2eadbc099c098a243e4e3d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.7
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|
@@ -170,10 +172,12 @@ module Fluent::Plugin
170
172
 
171
173
  def start
172
174
  super
175
+ @log.debug "Started VMware Log Intelligence Shipper.."
173
176
  end
174
177
 
175
178
  def shutdown
176
179
  super
180
+ @log.debug "Shutting Down VMware Log Intelligence Shipper.."
177
181
  begin
178
182
  @http_client.close if @http_client
179
183
  rescue
@@ -181,6 +185,7 @@ module Fluent::Plugin
181
185
  end
182
186
 
183
187
  def write(chunk)
188
+ @log.debug "VMware Log Intelligence writing message"
184
189
  is_rate_limited = (@rate_limit_msec != 0 and not @last_request_time.nil?)
185
190
  if is_rate_limited and ((Time.now.to_f - @last_request_time) * 1000.0 < @rate_limit_msec)
186
191
  @log.info('Dropped request due to rate limiting')
@@ -193,12 +198,15 @@ module Fluent::Plugin
193
198
  end
194
199
 
195
200
  if @http_compress
201
+ @log.debug "VMware Log Intelligence sending compressed message"
196
202
  gzip_body = Zlib::GzipWriter.new(StringIO.new)
197
- gzip_body << data.to_json
203
+ gzip_body << Yajl.dump(data)
204
+ @last_request_time = Time.now.to_f
198
205
  @http_client.post(gzip_body.close.string)
199
- else
206
+ else
207
+ @log.debug "VMware Log Intelligence sending uncompressed message"
200
208
  @last_request_time = Time.now.to_f
201
- @http_client.post(JSON.dump(data))
209
+ @http_client.post(Yajl.dump(data))
202
210
  end
203
211
  end
204
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,7 +1,7 @@
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.7
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Blagoev
@@ -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