fluent-plugin-kubernetes-metrics 1.1.12 → 1.2.1

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: 11ae3ba83383e096cdcfc581bf50d68f832c51887e6855180cbdee1edd49ddcd
4
- data.tar.gz: 9556c5b920f6b1b375fefd39916ffd28ee3938daeed6879595c76f6ed4b00bed
3
+ metadata.gz: c8cc8ed0ac2d0a4e52276aef23ec9e9cebb7659d9d2d1ad8bce83f9d88a4220c
4
+ data.tar.gz: c22c687bfc5ea76e5f3ee70a0f4aa0838af5e83e8b6a939faff4e0f34b84e2ae
5
5
  SHA512:
6
- metadata.gz: d27837d1f6a1dbaf59d08d3c5e2b815ff7f841431ffdae1a1ff535d3a689330ebc66b63b7d8626129e2a5745c11ac84886f8afc56885bac77253a2b2c3af30d6
7
- data.tar.gz: cae074b32b2b7ee35e93b37990ced26a69c96760f5e0a94e0875f2d731a1491d3638e4782062087e4ef183709b3c28c984c376a681a9cadd37dcc89c1159bcc3
6
+ metadata.gz: 4c9425096d61afd78cee9a42169e74d2f22dd8512699fe960b92b0b8ceffa72de0a2b09ab9b811fcbcd6f11085a6c7f32259e95fd1da92d1cd0507b22ce3f99b
7
+ data.tar.gz: 8c7e6f37ea8134cda37bd52347f5cacee5c8d8b9c84a75c899b0938551a027cf737816892ce1156f7f6f215679c05b85d6c3256546b3051be4e659aa0d68ff4f
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluent-plugin-kubernetes-metrics (1.1.12)
4
+ fluent-plugin-kubernetes-metrics (1.2.1)
5
5
  fluentd (>= 1.9.1)
6
6
  kubeclient (~> 4.9.3)
7
- multi_json (~> 1.14.1)
8
- oj (~> 3.10.2)
7
+ multi_json (~> 1.14)
8
+ oj (~> 3.10)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -23,12 +23,12 @@ GEM
23
23
  ffi-compiler (1.0.1)
24
24
  ffi (>= 1.0.0)
25
25
  rake
26
- fluentd (1.14.6)
26
+ fluentd (1.15.3)
27
27
  bundler
28
28
  cool.io (>= 1.4.5, < 2.0.0)
29
29
  http_parser.rb (>= 0.5.1, < 0.9.0)
30
30
  msgpack (>= 1.3.1, < 2.0.0)
31
- serverengine (>= 2.2.5, < 3.0.0)
31
+ serverengine (>= 2.3.0, < 3.0.0)
32
32
  sigdump (~> 0.2.2)
33
33
  strptime (>= 0.2.4, < 1.0.0)
34
34
  tzinfo (>= 1.0, < 3.0)
@@ -42,14 +42,14 @@ GEM
42
42
  http-form_data (~> 2.2)
43
43
  http-parser (~> 1.2.0)
44
44
  http-accept (1.7.0)
45
- http-cookie (1.0.4)
45
+ http-cookie (1.0.5)
46
46
  domain_name (~> 0.5)
47
47
  http-form_data (2.3.0)
48
48
  http-parser (1.2.3)
49
49
  ffi-compiler (>= 1.0, < 2.0)
50
50
  http_parser.rb (0.8.0)
51
51
  json (2.6.1)
52
- jsonpath (1.1.0)
52
+ jsonpath (1.1.2)
53
53
  multi_json
54
54
  kubeclient (4.9.3)
55
55
  http (>= 3.0, < 5.0)
@@ -59,10 +59,10 @@ GEM
59
59
  mime-types (3.4.1)
60
60
  mime-types-data (~> 3.2015)
61
61
  mime-types-data (3.2022.0105)
62
- msgpack (1.5.1)
63
- multi_json (1.14.1)
62
+ msgpack (1.6.0)
63
+ multi_json (1.15.0)
64
64
  netrc (0.11.0)
65
- oj (3.10.18)
65
+ oj (3.13.23)
66
66
  power_assert (2.0.1)
67
67
  public_suffix (4.0.6)
68
68
  rake (13.0.6)
@@ -73,7 +73,7 @@ GEM
73
73
  mime-types (>= 1.16, < 4.0)
74
74
  netrc (~> 0.8)
75
75
  rexml (3.2.5)
76
- serverengine (2.2.5)
76
+ serverengine (2.3.0)
77
77
  sigdump (~> 0.2.2)
78
78
  sigdump (0.2.4)
79
79
  simplecov (0.16.1)
@@ -84,19 +84,19 @@ GEM
84
84
  strptime (0.2.5)
85
85
  test-unit (3.3.9)
86
86
  power_assert
87
- tzinfo (2.0.4)
87
+ tzinfo (2.0.5)
88
88
  concurrent-ruby (~> 1.0)
89
- tzinfo-data (1.2022.1)
89
+ tzinfo-data (1.2022.6)
90
90
  tzinfo (>= 1.0.0)
91
91
  unf (0.1.4)
92
92
  unf_ext
93
- unf_ext (0.0.8.1)
93
+ unf_ext (0.0.8.2)
94
94
  webmock (3.5.1)
95
95
  addressable (>= 2.3.6)
96
96
  crack (>= 0.3.2)
97
97
  hashdiff
98
98
  webrick (1.7.0)
99
- yajl-ruby (1.4.2)
99
+ yajl-ruby (1.4.3)
100
100
 
101
101
  PLATFORMS
102
102
  ruby
@@ -110,4 +110,4 @@ DEPENDENCIES
110
110
  webmock (~> 3.5.1)
111
111
 
112
112
  BUNDLED WITH
113
- 2.3.12
113
+ 2.3.26
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.12
1
+ 1.2.1
@@ -26,6 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency 'webmock', '~> 3.5.1'
27
27
  spec.add_runtime_dependency 'fluentd', '>= 1.9.1'
28
28
  spec.add_runtime_dependency 'kubeclient', '~> 4.9.3'
29
- spec.add_runtime_dependency 'multi_json', '~> 1.14.1'
30
- spec.add_runtime_dependency 'oj', '~> 3.10.2'
29
+ spec.add_runtime_dependency 'multi_json', '~> 1.14'
30
+ spec.add_runtime_dependency 'oj', '~> 3.10'
31
31
  end
@@ -17,6 +17,7 @@ require 'time'
17
17
  require 'fluent/plugin/input'
18
18
  require 'kubeclient'
19
19
  require 'multi_json'
20
+ require 'resolv'
20
21
 
21
22
  module Fluent
22
23
  module Plugin
@@ -76,6 +77,8 @@ module Fluent
76
77
  def configure(conf)
77
78
  super
78
79
 
80
+ @kubelet_address = "[#{@kubelet_address}]" if @kubelet_address =~ Resolv::IPv6::Regex
81
+
79
82
  if @use_rest_client
80
83
  raise Fluentd::ConfigError, 'node_name is required' if @node_name.nil? || @node_name.empty?
81
84
  else
@@ -136,6 +139,7 @@ module Fluent
136
139
  if @kubernetes_url.nil?
137
140
  # Use Kubernetes default service account if we're in a pod.
138
141
  env_host = ENV['KUBERNETES_SERVICE_HOST']
142
+ env_host = "[#{env_host}]" if env_host =~ Resolv::IPv6::Regex
139
143
  env_port = ENV['KUBERNETES_SERVICE_PORT']
140
144
  if env_host && env_port
141
145
  @kubernetes_url = "https://#{env_host}:#{env_port}/api/"
@@ -166,7 +170,7 @@ module Fluent
166
170
  }
167
171
 
168
172
  auth_options = {}
169
- auth_options[:bearer_token] = File.read(@bearer_token_file) if @bearer_token_file
173
+ auth_options[:bearer_token_file] = @bearer_token_file if @bearer_token_file
170
174
 
171
175
  @client = Kubeclient::Client.new(
172
176
  @kubernetes_url, 'v1',
@@ -244,6 +248,11 @@ module Fluent
244
248
  ssl_options
245
249
  end
246
250
 
251
+ # This method is used to refresh the authorization token for kubeclient
252
+ def update_kubeclient_header
253
+ @client.headers[:Authorization] = 'Bearer ' + File.read(@bearer_token_file) if @bearer_token_file
254
+ end
255
+
247
256
  # This method is used to set the options for sending a request to the kubelet api
248
257
  def request_options
249
258
  options = { method: 'get', url: @kubelet_url }
@@ -677,6 +686,7 @@ module Fluent
677
686
  response = RestClient::Request.execute request_options
678
687
  handle_response(response)
679
688
  else
689
+ update_kubeclient_header
680
690
  @node_names.each do |node|
681
691
  response = summary_proxy_api(node).get(@client.headers)
682
692
  handle_response(response)
@@ -688,6 +698,7 @@ module Fluent
688
698
  if @use_rest_client
689
699
  response_stats = RestClient::Request.execute request_options_stats
690
700
  else
701
+ update_kubeclient_header
691
702
  @node_names.each do |node|
692
703
  @node_name = node
693
704
  response_stats = stats_proxy_api(node).get(@client.headers)
@@ -703,6 +714,7 @@ module Fluent
703
714
  response_stats = RestClient::Request.execute request_options_stats
704
715
  handle_stats_response(response_stats)
705
716
  else
717
+ update_kubeclient_header
706
718
  @node_names.each do |node|
707
719
  @node_name = node
708
720
  response_stats = stats_proxy_api(node).get(@client.headers)
@@ -716,6 +728,7 @@ module Fluent
716
728
  response_cadvisor = RestClient::Request.execute cadvisor_request_options
717
729
  handle_cadvisor_response(response_cadvisor)
718
730
  else
731
+ update_kubeclient_header
719
732
  @node_names.each do |node|
720
733
  response_cadvisor = cadvisor_proxy_api(node).get(@client.headers)
721
734
  handle_cadvisor_response(response_cadvisor)
@@ -1,6 +1,6 @@
1
1
  # Metrics Information
2
2
 
3
- ## The foillowing table describes common terminology used in this topic.
3
+ ## The following table describes common terminology used in this topic.
4
4
 
5
5
  | Terminology | Definition |
6
6
  | --- | --- |
@@ -109,6 +109,30 @@ class KubernetesMetricsInputTest < Test::Unit::TestCase
109
109
  assert_equal true, d.instance.use_rest_client
110
110
  end
111
111
 
112
+ test 'IPv6 node configuration' do
113
+ IPv6_CONFIG = %(
114
+ type kubernetes_metrics
115
+ node_name generics-aws-node-name
116
+ tag kube.*
117
+ insecure_ssl true
118
+ interval 10s
119
+ use_rest_client true
120
+ use_rest_client_ssl false
121
+ kubelet_port 10_255
122
+ kubelet_address fd55:4d62:e00f::1
123
+ )
124
+ assert_nothing_raised(Fluent::ConfigError) do
125
+ create_driver(IPv6_CONFIG)
126
+ end
127
+
128
+ d = create_driver(IPv6_CONFIG)
129
+ assert_equal '[fd55:4d62:e00f::1]', d.instance.kubelet_address
130
+ assert_equal 'http://[fd55:4d62:e00f::1]:10255/stats/summary', d.instance.instance_variable_get('@kubelet_url')
131
+ assert_equal 'http://[fd55:4d62:e00f::1]:10255/stats', d.instance.instance_variable_get('@kubelet_url_stats')
132
+ assert_equal 'http://[fd55:4d62:e00f::1]:10255/metrics/cadvisor', d.instance.instance_variable_get('@cadvisor_url')
133
+
134
+ end
135
+
112
136
  sub_test_case 'node_unit_tests' do
113
137
  test 'test_emit_cpu_metrics' do
114
138
  assert_not_nil @@hash_map_test.key?('kube.node.cpu.usage')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-kubernetes-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.12
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Splunk Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-29 00:00:00.000000000 Z
11
+ date: 2022-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,28 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.14.1
117
+ version: '1.14'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.14.1
124
+ version: '1.14'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: oj
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 3.10.2
131
+ version: '3.10'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 3.10.2
138
+ version: '3.10'
139
139
  description: A fluentd input plugin that collects node and container metrics from
140
140
  a kubernetes cluster.
141
141
  email:
@@ -180,6 +180,6 @@ signing_key:
180
180
  specification_version: 4
181
181
  summary: A fluentd input plugin that collects kubernetes cluster metrics.
182
182
  test_files:
183
- - test/helper.rb
184
- - test/plugin/test_missing_timestamps.rb
185
183
  - test/plugin/test_in_kubernetes_metrics.rb
184
+ - test/plugin/test_missing_timestamps.rb
185
+ - test/helper.rb