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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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