fluent-plugin-google-cloud 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/fluent-plugin-google-cloud.gemspec +1 -1
- data/lib/fluent/plugin/out_google_cloud.rb +40 -29
- data/test/plugin/test_out_google_cloud.rb +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 494526c8a4880080e9176ccd912a4692d773fb67
|
4
|
+
data.tar.gz: 008470c8bc3aeab7f902bfd159e030b2dbfafee1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aaabfa2e76c33959ab2d68c21380d73ce1e315bef2556fdd99b9772fc9cdb33c0d7ea8632a3742f17a9641e44c5e45914eab1ba49ebf035cd02f324ab0984a81
|
7
|
+
data.tar.gz: c86c292744824fd8163e08daaefbd034baaaf91ca1c422b68caed7ab3835578070a694c59dbc1cc5adb85c55cf87eadfefbca28cae1b801f8543bdf70426c70a
|
data/Gemfile.lock
CHANGED
@@ -10,7 +10,7 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
activesupport (4.2.
|
13
|
+
activesupport (4.2.4)
|
14
14
|
i18n (~> 0.7)
|
15
15
|
json (~> 1.7, >= 1.7.7)
|
16
16
|
minitest (~> 5.1)
|
@@ -24,7 +24,7 @@ GEM
|
|
24
24
|
addressable (>= 2.3.1)
|
25
25
|
extlib (>= 0.9.15)
|
26
26
|
multi_json (>= 1.0.0)
|
27
|
-
cool.io (1.
|
27
|
+
cool.io (1.4.0)
|
28
28
|
crack (0.4.2)
|
29
29
|
safe_yaml (~> 1.0.0)
|
30
30
|
extlib (0.9.16)
|
@@ -64,7 +64,7 @@ GEM
|
|
64
64
|
jwt (1.5.1)
|
65
65
|
launchy (2.4.3)
|
66
66
|
addressable (~> 2.3)
|
67
|
-
little-plugger (1.1.
|
67
|
+
little-plugger (1.1.4)
|
68
68
|
logging (2.0.0)
|
69
69
|
little-plugger (~> 1.1)
|
70
70
|
multi_json (~> 1.10)
|
@@ -10,7 +10,7 @@ eos
|
|
10
10
|
gem.homepage = \
|
11
11
|
'https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud'
|
12
12
|
gem.license = 'Apache 2.0'
|
13
|
-
gem.version = '0.4.
|
13
|
+
gem.version = '0.4.7'
|
14
14
|
gem.authors = ['Todd Derr', 'Alex Robinson']
|
15
15
|
gem.email = ['salty@google.com']
|
16
16
|
|
@@ -62,6 +62,14 @@ module Fluent
|
|
62
62
|
config_param :vm_id, :string, :default => nil
|
63
63
|
config_param :vm_name, :string, :default => nil
|
64
64
|
|
65
|
+
# Whether to try to detect of the VM is owned by a "subservice" such as App
|
66
|
+
# Engine of Kubernetes, rather than just associating the logs with the
|
67
|
+
# compute service of the platform. This currently only has any effect when
|
68
|
+
# running on GCE.
|
69
|
+
# The initial motivation for this is to separate out Kubernetes node
|
70
|
+
# component (Docker, Kubelet, etc.) logs from container logs.
|
71
|
+
config_param :detect_subservice, :bool, :default => true
|
72
|
+
|
65
73
|
# label_map (specified as a JSON object) is an unordered set of fluent
|
66
74
|
# field names whose values are sent as labels rather than as part of the
|
67
75
|
# struct payload.
|
@@ -186,34 +194,37 @@ module Fluent
|
|
186
194
|
case @platform
|
187
195
|
when Platform::GCE
|
188
196
|
@service_name = COMPUTE_SERVICE
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
@
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
197
|
+
if @detect_subservice
|
198
|
+
# Check for specialized GCE environments (Managed VM or Dataflow).
|
199
|
+
# TODO: Add config options for these to allow for running outside GCE?
|
200
|
+
attributes = fetch_gce_metadata('instance/attributes/').split
|
201
|
+
# Do nothing, just don't populate other service's labels.
|
202
|
+
if attributes.include?('gae_backend_name') &&
|
203
|
+
attributes.include?('gae_backend_version')
|
204
|
+
# Managed VM
|
205
|
+
@running_on_managed_vm = true
|
206
|
+
@gae_backend_name =
|
207
|
+
fetch_gce_metadata('instance/attributes/gae_backend_name')
|
208
|
+
@gae_backend_version =
|
209
|
+
fetch_gce_metadata('instance/attributes/gae_backend_version')
|
210
|
+
@service_name = APPENGINE_SERVICE
|
211
|
+
common_labels["#{APPENGINE_SERVICE}/module_id"] = @gae_backend_name
|
212
|
+
common_labels["#{APPENGINE_SERVICE}/version_id"] =
|
213
|
+
@gae_backend_version
|
214
|
+
elsif attributes.include?('job_id')
|
215
|
+
# Dataflow
|
216
|
+
@service_name = DATAFLOW_SERVICE
|
217
|
+
@dataflow_job_id = fetch_gce_metadata('instance/attributes/job_id')
|
218
|
+
common_labels["#{DATAFLOW_SERVICE}/job_id"] = @dataflow_job_id
|
219
|
+
elsif attributes.include?('kube-env')
|
220
|
+
# Kubernetes/Container Engine
|
221
|
+
@service_name = CONTAINER_SERVICE
|
222
|
+
common_labels["#{CONTAINER_SERVICE}/instance_id"] = @vm_id
|
223
|
+
@raw_kube_env = fetch_gce_metadata('instance/attributes/kube-env')
|
224
|
+
@kube_env = YAML.load(@raw_kube_env)
|
225
|
+
common_labels["#{CONTAINER_SERVICE}/cluster_name"] =
|
226
|
+
cluster_name_from_kube_env(@kube_env)
|
227
|
+
end
|
217
228
|
end
|
218
229
|
common_labels["#{COMPUTE_SERVICE}/resource_type"] = 'instance'
|
219
230
|
common_labels["#{COMPUTE_SERVICE}/resource_id"] = @vm_id
|
@@ -569,7 +580,7 @@ module Fluent
|
|
569
580
|
def init_api_client
|
570
581
|
@client = Google::APIClient.new(
|
571
582
|
application_name: 'Fluentd Google Cloud Logging plugin',
|
572
|
-
application_version: '0.4.
|
583
|
+
application_version: '0.4.7',
|
573
584
|
retries: 1)
|
574
585
|
|
575
586
|
if @auth_method == 'private_key'
|
@@ -88,6 +88,10 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
88
88
|
use_metadata_service false
|
89
89
|
)
|
90
90
|
|
91
|
+
NO_DETECT_SUBSERVICE_CONFIG = %(
|
92
|
+
detect_subservice false
|
93
|
+
)
|
94
|
+
|
91
95
|
CUSTOM_METADATA_CONFIG = %(
|
92
96
|
project_id #{CUSTOM_PROJECT_ID}
|
93
97
|
zone #{CUSTOM_ZONE}
|
@@ -358,6 +362,16 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
358
362
|
assert_equal false, d.instance.running_on_managed_vm
|
359
363
|
end
|
360
364
|
|
365
|
+
def test_gce_used_when_detect_subservice_is_false
|
366
|
+
setup_gce_metadata_stubs
|
367
|
+
# This would cause the service to be container.googleapis.com if not for the
|
368
|
+
# detect_subservice=false config.
|
369
|
+
setup_container_metadata_stubs
|
370
|
+
d = create_driver(NO_DETECT_SUBSERVICE_CONFIG)
|
371
|
+
d.run
|
372
|
+
assert_equal COMPUTE_SERVICE_NAME, d.instance.service_name
|
373
|
+
end
|
374
|
+
|
361
375
|
def test_metadata_overrides_on_gce
|
362
376
|
# In this case we are overriding all configured parameters so we should
|
363
377
|
# see all "custom" values rather than the ones from the metadata server.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-google-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Derr
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-09-
|
12
|
+
date: 2015-09-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|