fluent-plugin-kubernetes_metadata_filter 2.13.0 → 3.8.0

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -55
  3. data/Rakefile +3 -4
  4. data/doc/benchmark/5m-1-2500lps-256b-baseline-01/cpu.png +0 -0
  5. data/doc/benchmark/5m-1-2500lps-256b-baseline-01/latency.png +0 -0
  6. data/doc/benchmark/5m-1-2500lps-256b-baseline-01/loss.png +0 -0
  7. data/doc/benchmark/5m-1-2500lps-256b-baseline-01/mem.png +0 -0
  8. data/doc/benchmark/5m-1-2500lps-256b-baseline-01/readme.md +88 -0
  9. data/doc/benchmark/5m-1-2500lps-256b-baseline-01/results.html +127 -0
  10. data/doc/benchmark/5m-1-2500lps-256b-kube-01-01/cpu.png +0 -0
  11. data/doc/benchmark/5m-1-2500lps-256b-kube-01-01/latency.png +0 -0
  12. data/doc/benchmark/5m-1-2500lps-256b-kube-01-01/loss.png +0 -0
  13. data/doc/benchmark/5m-1-2500lps-256b-kube-01-01/mem.png +0 -0
  14. data/doc/benchmark/5m-1-2500lps-256b-kube-01-01/readme.md +97 -0
  15. data/doc/benchmark/5m-1-2500lps-256b-kube-01-01/results.html +136 -0
  16. data/doc/benchmark/5m-1-2500lps-256b-kube-01-marshal-02/cpu.png +0 -0
  17. data/doc/benchmark/5m-1-2500lps-256b-kube-01-marshal-02/latency.png +0 -0
  18. data/doc/benchmark/5m-1-2500lps-256b-kube-01-marshal-02/loss.png +0 -0
  19. data/doc/benchmark/5m-1-2500lps-256b-kube-01-marshal-02/mem.png +0 -0
  20. data/doc/benchmark/5m-1-2500lps-256b-kube-01-marshal-02/readme.md +97 -0
  21. data/doc/benchmark/5m-1-2500lps-256b-kube-01-marshal-02/results.html +136 -0
  22. data/lib/fluent/plugin/filter_kubernetes_metadata.rb +308 -330
  23. data/lib/fluent/plugin/kubernetes_metadata_cache_strategy.rb +15 -11
  24. data/lib/fluent/plugin/kubernetes_metadata_common.rb +45 -49
  25. data/lib/fluent/plugin/kubernetes_metadata_stats.rb +18 -4
  26. data/lib/fluent/plugin/kubernetes_metadata_test_api_adapter.rb +39 -36
  27. data/lib/fluent/plugin/kubernetes_metadata_watch_namespaces.rb +15 -12
  28. data/lib/fluent/plugin/kubernetes_metadata_watch_pods.rb +19 -18
  29. metadata +29 -182
  30. data/.circleci/config.yml +0 -53
  31. data/.gitignore +0 -19
  32. data/.rubocop.yml +0 -57
  33. data/Gemfile +0 -9
  34. data/Gemfile.lock +0 -158
  35. data/fluent-plugin-kubernetes_metadata_filter.gemspec +0 -34
  36. data/lib/fluent/plugin/kubernetes_metadata_util.rb +0 -53
  37. data/test/cassettes/invalid_api_server_config.yml +0 -53
  38. data/test/cassettes/kubernetes_docker_metadata_annotations.yml +0 -205
  39. data/test/cassettes/kubernetes_docker_metadata_dotted_slashed_labels.yml +0 -197
  40. data/test/cassettes/kubernetes_get_api_v1.yml +0 -193
  41. data/test/cassettes/kubernetes_get_api_v1_using_token.yml +0 -195
  42. data/test/cassettes/kubernetes_get_namespace_default.yml +0 -69
  43. data/test/cassettes/kubernetes_get_namespace_default_using_token.yml +0 -71
  44. data/test/cassettes/kubernetes_get_pod.yml +0 -146
  45. data/test/cassettes/kubernetes_get_pod_container_init.yml +0 -145
  46. data/test/cassettes/kubernetes_get_pod_using_token.yml +0 -148
  47. data/test/cassettes/metadata_from_tag_and_journald_fields.yml +0 -153
  48. data/test/cassettes/metadata_from_tag_journald_and_kubernetes_fields.yml +0 -285
  49. data/test/cassettes/valid_kubernetes_api_server.yml +0 -55
  50. data/test/cassettes/valid_kubernetes_api_server_using_token.yml +0 -57
  51. data/test/helper.rb +0 -82
  52. data/test/plugin/test.token +0 -1
  53. data/test/plugin/test_cache_stats.rb +0 -33
  54. data/test/plugin/test_cache_strategy.rb +0 -194
  55. data/test/plugin/test_filter_kubernetes_metadata.rb +0 -1093
  56. data/test/plugin/test_utils.rb +0 -56
  57. data/test/plugin/test_watch_namespaces.rb +0 -245
  58. data/test/plugin/test_watch_pods.rb +0 -344
  59. data/test/plugin/watch_test.rb +0 -76
@@ -1,195 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api/v1
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- Authorization:
35
- - Bearer YzYyYzFlODMtODdhNS00ZTMyLWIzMmItNmY4NDc4OTI1ZWFh
36
- response:
37
- status:
38
- code: 200
39
- message: OK
40
- headers:
41
- Content-Type:
42
- - application/json
43
- Date:
44
- - Fri, 08 May 2015 10:35:37 GMT
45
- Transfer-Encoding:
46
- - chunked
47
- body:
48
- encoding: UTF-8
49
- string: |-
50
- {
51
- "kind": "APIResourceList",
52
- "groupVersion": "v1",
53
- "resources": [
54
- {
55
- "name": "bindings",
56
- "singularName": "",
57
- "namespaced": true,
58
- "kind": "Binding",
59
- "verbs": [
60
- "create"
61
- ]
62
- },
63
- {
64
- "name": "namespaces",
65
- "singularName": "",
66
- "namespaced": false,
67
- "kind": "Namespace",
68
- "verbs": [
69
- "create",
70
- "delete",
71
- "get",
72
- "list",
73
- "patch",
74
- "update",
75
- "watch"
76
- ],
77
- "shortNames": [
78
- "ns"
79
- ]
80
- },
81
- {
82
- "name": "namespaces/finalize",
83
- "singularName": "",
84
- "namespaced": false,
85
- "kind": "Namespace",
86
- "verbs": [
87
- "update"
88
- ]
89
- },
90
- {
91
- "name": "namespaces/status",
92
- "singularName": "",
93
- "namespaced": false,
94
- "kind": "Namespace",
95
- "verbs": [
96
- "get",
97
- "patch",
98
- "update"
99
- ]
100
- },
101
- {
102
- "name": "pods",
103
- "singularName": "",
104
- "namespaced": true,
105
- "kind": "Pod",
106
- "verbs": [
107
- "create",
108
- "delete",
109
- "deletecollection",
110
- "get",
111
- "list",
112
- "patch",
113
- "update",
114
- "watch"
115
- ],
116
- "shortNames": [
117
- "po"
118
- ],
119
- "categories": [
120
- "all"
121
- ]
122
- },
123
- {
124
- "name": "pods/attach",
125
- "singularName": "",
126
- "namespaced": true,
127
- "kind": "Pod",
128
- "verbs": []
129
- },
130
- {
131
- "name": "pods/binding",
132
- "singularName": "",
133
- "namespaced": true,
134
- "kind": "Binding",
135
- "verbs": [
136
- "create"
137
- ]
138
- },
139
- {
140
- "name": "pods/eviction",
141
- "singularName": "",
142
- "namespaced": true,
143
- "group": "policy",
144
- "version": "v1beta1",
145
- "kind": "Eviction",
146
- "verbs": [
147
- "create"
148
- ]
149
- },
150
- {
151
- "name": "pods/exec",
152
- "singularName": "",
153
- "namespaced": true,
154
- "kind": "Pod",
155
- "verbs": []
156
- },
157
- {
158
- "name": "pods/log",
159
- "singularName": "",
160
- "namespaced": true,
161
- "kind": "Pod",
162
- "verbs": [
163
- "get"
164
- ]
165
- },
166
- {
167
- "name": "pods/portforward",
168
- "singularName": "",
169
- "namespaced": true,
170
- "kind": "Pod",
171
- "verbs": []
172
- },
173
- {
174
- "name": "pods/proxy",
175
- "singularName": "",
176
- "namespaced": true,
177
- "kind": "Pod",
178
- "verbs": []
179
- },
180
- {
181
- "name": "pods/status",
182
- "singularName": "",
183
- "namespaced": true,
184
- "kind": "Pod",
185
- "verbs": [
186
- "get",
187
- "patch",
188
- "update"
189
- ]
190
- }
191
- ]
192
- }
193
- http_version:
194
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
195
- recorded_with: VCR 2.9.3
@@ -1,69 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api/v1/namespaces/default
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- response:
35
- status:
36
- code: 200
37
- message: OK
38
- headers:
39
- Content-Type:
40
- - application/json
41
- Date:
42
- - Fri, 08 May 2015 10:35:37 GMT
43
- Transfer-Encoding:
44
- - chunked
45
- body:
46
- encoding: UTF-8
47
- string: |-
48
- {
49
- "kind": "Namespace",
50
- "apiVersion": "v1",
51
- "metadata": {
52
- "name": "default",
53
- "selfLink": "/api/v1/namespaces/default",
54
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
55
- "resourceVersion": "6",
56
- "creationTimestamp": "2015-05-08T09:22:01Z"
57
- },
58
- "spec": {
59
- "finalizers": [
60
- "kubernetes"
61
- ]
62
- },
63
- "status": {
64
- "phase": "Active"
65
- }
66
- }
67
- http_version:
68
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
69
- recorded_with: VCR 2.9.3
@@ -1,71 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api/v1/namespaces/default
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- Authorization:
35
- - Bearer YzYyYzFlODMtODdhNS00ZTMyLWIzMmItNmY4NDc4OTI1ZWFh
36
- response:
37
- status:
38
- code: 200
39
- message: OK
40
- headers:
41
- Content-Type:
42
- - application/json
43
- Date:
44
- - Fri, 08 May 2015 10:35:37 GMT
45
- Transfer-Encoding:
46
- - chunked
47
- body:
48
- encoding: UTF-8
49
- string: |-
50
- {
51
- "kind": "Namespace",
52
- "apiVersion": "v1",
53
- "metadata": {
54
- "name": "default",
55
- "selfLink": "/api/v1/namespaces/default",
56
- "uid": "898268c8-4a36-11e5-9d81-42010af0194c",
57
- "resourceVersion": "6",
58
- "creationTimestamp": "2015-05-08T09:22:01Z"
59
- },
60
- "spec": {
61
- "finalizers": [
62
- "kubernetes"
63
- ]
64
- },
65
- "status": {
66
- "phase": "Active"
67
- }
68
- }
69
- http_version:
70
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
71
- recorded_with: VCR 2.9.3
@@ -1,146 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- response:
35
- status:
36
- code: 200
37
- message: OK
38
- headers:
39
- Content-Type:
40
- - application/json
41
- Date:
42
- - Fri, 08 May 2015 10:35:37 GMT
43
- Transfer-Encoding:
44
- - chunked
45
- body:
46
- encoding: UTF-8
47
- string: |-
48
- {
49
- "kind": "Pod",
50
- "apiVersion": "v1",
51
- "metadata": {
52
- "name": "fabric8-console-controller-98rqc",
53
- "generateName": "fabric8-console-controller-",
54
- "namespace": "default",
55
- "selfLink": "/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc",
56
- "uid": "c76927af-f563-11e4-b32d-54ee7527188d",
57
- "resourceVersion": "122",
58
- "creationTimestamp": "2015-05-08T09:22:42Z",
59
- "labels": {
60
- "component": "fabric8Console"
61
- }
62
- },
63
- "spec": {
64
- "volumes": [
65
- {
66
- "name": "openshift-cert-secrets",
67
- "hostPath": null,
68
- "emptyDir": null,
69
- "gcePersistentDisk": null,
70
- "gitRepo": null,
71
- "secret": {
72
- "secretName": "openshift-cert-secrets"
73
- },
74
- "nfs": null,
75
- "iscsi": null,
76
- "glusterfs": null
77
- }
78
- ],
79
- "containers": [
80
- {
81
- "name": "fabric8-console-container",
82
- "image": "fabric8/hawtio-kubernetes:latest",
83
- "ports": [
84
- {
85
- "containerPort": 9090,
86
- "protocol": "TCP"
87
- }
88
- ],
89
- "env": [
90
- {
91
- "name": "OAUTH_CLIENT_ID",
92
- "value": "fabric8-console"
93
- },
94
- {
95
- "name": "OAUTH_AUTHORIZE_URI",
96
- "value": "https://localhost:8443/oauth/authorize"
97
- }
98
- ],
99
- "resources": {},
100
- "volumeMounts": [
101
- {
102
- "name": "openshift-cert-secrets",
103
- "readOnly": true,
104
- "mountPath": "/etc/secret-volume"
105
- }
106
- ],
107
- "terminationMessagePath": "/dev/termination-log",
108
- "imagePullPolicy": "IfNotPresent",
109
- "capabilities": {}
110
- }
111
- ],
112
- "restartPolicy": "Always",
113
- "dnsPolicy": "ClusterFirst",
114
- "nodeName": "jimmi-redhat.localnet"
115
- },
116
- "status": {
117
- "phase": "Running",
118
- "Condition": [
119
- {
120
- "type": "Ready",
121
- "status": "True"
122
- }
123
- ],
124
- "hostIP": "172.17.42.1",
125
- "podIP": "172.17.0.8",
126
- "containerStatuses": [
127
- {
128
- "name": "fabric8-console-container",
129
- "state": {
130
- "running": {
131
- "startedAt": "2015-05-08T09:22:44Z"
132
- }
133
- },
134
- "lastState": {},
135
- "ready": true,
136
- "restartCount": 0,
137
- "image": "fabric8/hawtio-kubernetes:latest",
138
- "imageID": "docker://b2bd1a24a68356b2f30128e6e28e672c1ef92df0d9ec01ec0c7faea5d77d2303",
139
- "containerID": "docker://49095a2894da899d3b327c5fde1e056a81376cc9a8f8b09a195f2a92bceed459"
140
- }
141
- ]
142
- }
143
- }
144
- http_version:
145
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
146
- recorded_with: VCR 2.9.3
@@ -1,145 +0,0 @@
1
- #
2
- # Fluentd Kubernetes Metadata Filter Plugin - Enrich Fluentd events with
3
- # Kubernetes metadata
4
- #
5
- # Copyright 2015 Red Hat, Inc.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the "License");
8
- # you may not use this file except in compliance with the License.
9
- # You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing, software
14
- # distributed under the License is distributed on an "AS IS" BASIS,
15
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- ---
20
- http_interactions:
21
- - request:
22
- method: get
23
- uri: https://localhost:8443/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc
24
- body:
25
- encoding: US-ASCII
26
- string: ''
27
- headers:
28
- Accept:
29
- - "*/*; q=0.5, application/xml"
30
- Accept-Encoding:
31
- - gzip, deflate
32
- User-Agent:
33
- - Ruby
34
- response:
35
- status:
36
- code: 200
37
- message: OK
38
- headers:
39
- Content-Type:
40
- - application/json
41
- Date:
42
- - Fri, 08 May 2015 10:35:37 GMT
43
- Transfer-Encoding:
44
- - chunked
45
- body:
46
- encoding: UTF-8
47
- string: |-
48
- {
49
- "kind": "Pod",
50
- "apiVersion": "v1",
51
- "metadata": {
52
- "name": "fabric8-console-controller-98rqc",
53
- "generateName": "fabric8-console-controller-",
54
- "namespace": "default",
55
- "selfLink": "/api/v1/namespaces/default/pods/fabric8-console-controller-98rqc",
56
- "uid": "c76927af-f563-11e4-b32d-54ee7527188d",
57
- "resourceVersion": "122",
58
- "creationTimestamp": "2015-05-08T09:22:42Z",
59
- "labels": {
60
- "component": "fabric8Console"
61
- }
62
- },
63
- "spec": {
64
- "volumes": [
65
- {
66
- "name": "openshift-cert-secrets",
67
- "hostPath": null,
68
- "emptyDir": null,
69
- "gcePersistentDisk": null,
70
- "gitRepo": null,
71
- "secret": {
72
- "secretName": "openshift-cert-secrets"
73
- },
74
- "nfs": null,
75
- "iscsi": null,
76
- "glusterfs": null
77
- }
78
- ],
79
- "containers": [
80
- {
81
- "name": "fabric8-console-container",
82
- "image": "fabric8/hawtio-kubernetes:latest",
83
- "ports": [
84
- {
85
- "containerPort": 9090,
86
- "protocol": "TCP"
87
- }
88
- ],
89
- "env": [
90
- {
91
- "name": "OAUTH_CLIENT_ID",
92
- "value": "fabric8-console"
93
- },
94
- {
95
- "name": "OAUTH_AUTHORIZE_URI",
96
- "value": "https://localhost:8443/oauth/authorize"
97
- }
98
- ],
99
- "resources": {},
100
- "volumeMounts": [
101
- {
102
- "name": "openshift-cert-secrets",
103
- "readOnly": true,
104
- "mountPath": "/etc/secret-volume"
105
- }
106
- ],
107
- "terminationMessagePath": "/dev/termination-log",
108
- "imagePullPolicy": "IfNotPresent",
109
- "capabilities": {}
110
- }
111
- ],
112
- "restartPolicy": "Always",
113
- "dnsPolicy": "ClusterFirst",
114
- "nodeName": "jimmi-redhat.localnet"
115
- },
116
- "status": {
117
- "phase": "Running",
118
- "Condition": [
119
- {
120
- "type": "Ready",
121
- "status": "True"
122
- }
123
- ],
124
- "hostIP": "172.17.42.1",
125
- "podIP": "172.17.0.8",
126
- "containerStatuses": [
127
- {
128
- "name": "fabric8-console-container",
129
- "state": {
130
- "waiting": {
131
- "reason": "ContainerCreating"
132
- }
133
- },
134
- "lastState": {},
135
- "ready": true,
136
- "restartCount": 0,
137
- "image": "fabric8/hawtio-kubernetes:latest",
138
- "imageID": ""
139
- }
140
- ]
141
- }
142
- }
143
- http_version:
144
- recorded_at: Fri, 08 May 2015 10:35:37 GMT
145
- recorded_with: VCR 2.9.3