fluent-plugin-google-cloud 0.6.0 → 0.6.1
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 +4 -4
- data/Gemfile.lock +12 -12
- data/fluent-plugin-google-cloud.gemspec +1 -1
- data/lib/fluent/plugin/out_google_cloud.rb +9 -24
- data/test/plugin/base_test.rb +27 -0
- data/test/plugin/test_out_google_cloud.rb +0 -18
- data/test/plugin/test_out_google_cloud_grpc.rb +0 -35
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d8ff06da0025190972720ffd13b941d21f79329
|
4
|
+
data.tar.gz: 5c6253b111461fca1d2435f835d6bff911c4241f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38a1fe0c31f761690a9328ca4fc1d94c50a19f0701893fb74873db17456c65e15ca0dd159a6dde731705f151976565ed709719ff755c4ff516cea2fc821314cb
|
7
|
+
data.tar.gz: ea3d462b54d1c1a3bf8a76526d77b2c4b0590a510a89f6b969c6ae36923a3d4ae2847f89e52e6b3287383e8b911ec691aac1c53c53fedcde51708ce51ecf868d
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fluent-plugin-google-cloud (0.6.
|
4
|
+
fluent-plugin-google-cloud (0.6.1)
|
5
5
|
fluentd (~> 0.10)
|
6
6
|
google-api-client (~> 0.9.0)
|
7
7
|
google-cloud-logging (~> 0.23.2)
|
@@ -13,7 +13,7 @@ PATH
|
|
13
13
|
GEM
|
14
14
|
remote: https://rubygems.org/
|
15
15
|
specs:
|
16
|
-
addressable (2.5.
|
16
|
+
addressable (2.5.1)
|
17
17
|
public_suffix (~> 2.0, >= 2.0.2)
|
18
18
|
ast (2.3.0)
|
19
19
|
astrolabe (1.3.1)
|
@@ -21,9 +21,9 @@ GEM
|
|
21
21
|
cool.io (1.4.6)
|
22
22
|
crack (0.4.3)
|
23
23
|
safe_yaml (~> 1.0.0)
|
24
|
-
faraday (0.
|
24
|
+
faraday (0.12.0.1)
|
25
25
|
multipart-post (>= 1.2, < 3)
|
26
|
-
fluentd (0.14.
|
26
|
+
fluentd (0.14.14)
|
27
27
|
cool.io (~> 1.4.5)
|
28
28
|
http_parser.rb (>= 0.5.1, < 0.7.0)
|
29
29
|
msgpack (>= 0.7.0, < 2.0.0)
|
@@ -57,7 +57,7 @@ GEM
|
|
57
57
|
googleauth (~> 0.5.1)
|
58
58
|
grpc (~> 1.0)
|
59
59
|
rly (~> 0.2.3)
|
60
|
-
google-protobuf (3.2.0)
|
60
|
+
google-protobuf (3.2.0.2)
|
61
61
|
googleapis-common-protos (1.3.5)
|
62
62
|
google-protobuf (~> 3.2)
|
63
63
|
grpc (~> 1.0)
|
@@ -69,7 +69,7 @@ GEM
|
|
69
69
|
multi_json (~> 1.11)
|
70
70
|
os (~> 0.9)
|
71
71
|
signet (~> 0.7)
|
72
|
-
grpc (1.
|
72
|
+
grpc (1.2.2)
|
73
73
|
google-protobuf (~> 3.1)
|
74
74
|
googleauth (~> 0.5.1)
|
75
75
|
hashdiff (0.3.2)
|
@@ -79,7 +79,7 @@ GEM
|
|
79
79
|
json (1.8.6)
|
80
80
|
jwt (1.5.6)
|
81
81
|
little-plugger (1.1.4)
|
82
|
-
logging (2.
|
82
|
+
logging (2.2.2)
|
83
83
|
little-plugger (~> 1.1)
|
84
84
|
multi_json (~> 1.10)
|
85
85
|
memoist (0.15.0)
|
@@ -89,7 +89,7 @@ GEM
|
|
89
89
|
mime-types-data (3.2016.0521)
|
90
90
|
mocha (1.2.1)
|
91
91
|
metaclass (~> 0.0.1)
|
92
|
-
msgpack (1.0
|
92
|
+
msgpack (1.1.0)
|
93
93
|
multi_json (1.12.1)
|
94
94
|
multipart-post (2.0.0)
|
95
95
|
orderedhash (0.0.6)
|
@@ -114,7 +114,7 @@ GEM
|
|
114
114
|
tins (<= 1.6.0)
|
115
115
|
ruby-progressbar (1.8.1)
|
116
116
|
safe_yaml (1.0.4)
|
117
|
-
serverengine (2.0.
|
117
|
+
serverengine (2.0.5)
|
118
118
|
sigdump (~> 0.2.2)
|
119
119
|
sigdump (0.2.4)
|
120
120
|
signet (0.7.3)
|
@@ -128,9 +128,9 @@ GEM
|
|
128
128
|
power_assert
|
129
129
|
thread_safe (0.3.6)
|
130
130
|
tins (1.6.0)
|
131
|
-
tzinfo (1.2.
|
131
|
+
tzinfo (1.2.3)
|
132
132
|
thread_safe (~> 0.1)
|
133
|
-
tzinfo-data (1.
|
133
|
+
tzinfo-data (1.2017.2)
|
134
134
|
tzinfo (>= 1.0.0)
|
135
135
|
uber (0.0.15)
|
136
136
|
webmock (1.24.6)
|
@@ -151,4 +151,4 @@ DEPENDENCIES
|
|
151
151
|
webmock (~> 1.17)
|
152
152
|
|
153
153
|
BUNDLED WITH
|
154
|
-
1.14.
|
154
|
+
1.14.6
|
@@ -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.6.
|
13
|
+
gem.version = '0.6.1'
|
14
14
|
gem.authors = ['Todd Derr', 'Alex Robinson']
|
15
15
|
gem.email = ['salty@google.com']
|
16
16
|
gem.required_ruby_version = Gem::Requirement.new('>= 2.0')
|
@@ -73,7 +73,7 @@ module Fluent
|
|
73
73
|
Fluent::Plugin.register_output('google_cloud', self)
|
74
74
|
|
75
75
|
PLUGIN_NAME = 'Fluentd Google Cloud Logging plugin'
|
76
|
-
PLUGIN_VERSION = '0.6.
|
76
|
+
PLUGIN_VERSION = '0.6.1'
|
77
77
|
|
78
78
|
# Name of the the Google cloud logging write scope.
|
79
79
|
LOGGING_SCOPE = 'https://www.googleapis.com/auth/logging.write'
|
@@ -590,7 +590,7 @@ module Fluent
|
|
590
590
|
nanos: ts_nanos
|
591
591
|
)
|
592
592
|
end
|
593
|
-
|
593
|
+
set_http_request(record, entry)
|
594
594
|
set_payload_grpc(entry_resource.type, record, entry, is_json)
|
595
595
|
else
|
596
596
|
# Remove the labels if we didn't populate them with anything.
|
@@ -930,29 +930,14 @@ module Fluent
|
|
930
930
|
def set_http_request(record, entry)
|
931
931
|
return nil unless record['httpRequest'].is_a?(Hash)
|
932
932
|
input = record['httpRequest']
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
output.response_size = input.delete('responseSize')
|
939
|
-
output.user_agent = input.delete('userAgent')
|
940
|
-
output.remote_ip = input.delete('remoteIp')
|
941
|
-
output.referer = input.delete('referer')
|
942
|
-
output.cache_hit = input.delete('cacheHit')
|
943
|
-
output.cache_validated_with_origin_server = \
|
944
|
-
input.delete('cacheValidatedWithOriginServer')
|
945
|
-
record.delete('httpRequest') if input.empty?
|
946
|
-
entry.http_request = output
|
947
|
-
end
|
948
|
-
|
949
|
-
def set_http_request_grpc(record, entry)
|
950
|
-
return nil unless record['httpRequest'].is_a?(Hash)
|
951
|
-
input = record['httpRequest']
|
952
|
-
output = Google::Logging::Type::HttpRequest.new
|
933
|
+
if @use_grpc
|
934
|
+
output = Google::Logging::Type::HttpRequest.new
|
935
|
+
else
|
936
|
+
output = Google::Apis::LoggingV2beta1::HttpRequest.new
|
937
|
+
end
|
953
938
|
# We need to delete each field from 'httpRequest' even if its value is
|
954
|
-
# nil. However we do not want to assign this nil value to
|
955
|
-
#
|
939
|
+
# nil. However we do not want to assign this nil value to the constructed
|
940
|
+
# json or proto.
|
956
941
|
request_method = input.delete('requestMethod')
|
957
942
|
output.request_method = request_method unless request_method.nil?
|
958
943
|
request_url = input.delete('requestUrl')
|
data/test/plugin/base_test.rb
CHANGED
@@ -1348,6 +1348,26 @@ module BaseTest
|
|
1348
1348
|
end
|
1349
1349
|
end
|
1350
1350
|
|
1351
|
+
def test_http_request_from_record_with_referer_nil_or_absent
|
1352
|
+
setup_gce_metadata_stubs
|
1353
|
+
[
|
1354
|
+
http_request_message_with_nil_referer,
|
1355
|
+
http_request_message_with_absent_referer
|
1356
|
+
].each do |input|
|
1357
|
+
setup_logging_stubs do
|
1358
|
+
@logs_sent = []
|
1359
|
+
d = create_driver
|
1360
|
+
d.emit('httpRequest' => input)
|
1361
|
+
d.run
|
1362
|
+
end
|
1363
|
+
verify_log_entries(1, COMPUTE_PARAMS, 'httpRequest') do |entry|
|
1364
|
+
assert_equal http_request_message_with_absent_referer,
|
1365
|
+
entry['httpRequest'], entry
|
1366
|
+
assert_nil get_fields(entry['jsonPayload'])['httpRequest'], entry
|
1367
|
+
end
|
1368
|
+
end
|
1369
|
+
end
|
1370
|
+
|
1351
1371
|
private
|
1352
1372
|
|
1353
1373
|
def stub_metadata_request(metadata_path, response_body)
|
@@ -1565,6 +1585,13 @@ module BaseTest
|
|
1565
1585
|
HTTP_REQUEST_MESSAGE.merge('referer' => nil)
|
1566
1586
|
end
|
1567
1587
|
|
1588
|
+
# Unset the 'referer' field.
|
1589
|
+
def http_request_message_with_absent_referer
|
1590
|
+
HTTP_REQUEST_MESSAGE.reject do |k, _|
|
1591
|
+
k == 'referer'
|
1592
|
+
end
|
1593
|
+
end
|
1594
|
+
|
1568
1595
|
# This module expects the methods below to be overridden.
|
1569
1596
|
|
1570
1597
|
# Create a Fluentd output test driver with the Google Cloud Output plugin.
|
@@ -70,24 +70,6 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
70
70
|
assert_equal 1, exception_count
|
71
71
|
end
|
72
72
|
|
73
|
-
def test_http_request_from_record_with_referer_nil
|
74
|
-
setup_gce_metadata_stubs
|
75
|
-
setup_logging_stubs do
|
76
|
-
d = create_driver
|
77
|
-
d.emit('httpRequest' => http_request_message_with_nil_referer)
|
78
|
-
d.run
|
79
|
-
end
|
80
|
-
verify_log_entries(1, COMPUTE_PARAMS, 'httpRequest') do |entry|
|
81
|
-
# The request we send to Logging API has json like:
|
82
|
-
# "httpRequest": { "referer": null }, but eventually the stored LogEntry
|
83
|
-
# would be "httpRequest": {}, since 'referer' is defined as a string in
|
84
|
-
# the proto.
|
85
|
-
assert_equal http_request_message_with_nil_referer,
|
86
|
-
entry['httpRequest'], entry
|
87
|
-
assert_nil get_fields(entry['jsonPayload'])['httpRequest'], entry
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
73
|
# This test looks similar between the grpc and non-grpc paths except that when
|
92
74
|
# parsing "105", the grpc path responds with "DEBUG", while the non-grpc path
|
93
75
|
# responds with "100".
|
@@ -72,34 +72,6 @@ class GoogleCloudOutputGRPCTest < Test::Unit::TestCase
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
-
def test_http_request_from_record_with_referer_nil
|
76
|
-
setup_gce_metadata_stubs
|
77
|
-
setup_logging_stubs do
|
78
|
-
d = create_driver
|
79
|
-
d.emit('httpRequest' => http_request_message_with_nil_referer)
|
80
|
-
d.run
|
81
|
-
end
|
82
|
-
verify_log_entries(1, COMPUTE_PARAMS, 'httpRequest') do |entry|
|
83
|
-
assert_equal http_request_message_with_absent_referer,
|
84
|
-
entry['httpRequest'], entry
|
85
|
-
assert_nil get_fields(entry['jsonPayload'])['httpRequest'], entry
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_http_request_from_record_with_referer_absent
|
90
|
-
setup_gce_metadata_stubs
|
91
|
-
setup_logging_stubs do
|
92
|
-
d = create_driver
|
93
|
-
d.emit('httpRequest' => http_request_message_with_absent_referer)
|
94
|
-
d.run
|
95
|
-
end
|
96
|
-
verify_log_entries(1, COMPUTE_PARAMS, 'httpRequest') do |entry|
|
97
|
-
assert_equal http_request_message_with_absent_referer,
|
98
|
-
entry['httpRequest'], entry
|
99
|
-
assert_nil get_fields(entry['jsonPayload'])['httpRequest'], entry
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
75
|
# This test looks similar between the grpc and non-grpc paths except that when
|
104
76
|
# parsing "105", the grpc path responds with "DEBUG", while the non-grpc path
|
105
77
|
# responds with "100".
|
@@ -340,13 +312,6 @@ class GoogleCloudOutputGRPCTest < Test::Unit::TestCase
|
|
340
312
|
end
|
341
313
|
end
|
342
314
|
|
343
|
-
# Unset the 'referer' field.
|
344
|
-
def http_request_message_with_absent_referer
|
345
|
-
HTTP_REQUEST_MESSAGE.reject do |k, _|
|
346
|
-
k == 'referer'
|
347
|
-
end
|
348
|
-
end
|
349
|
-
|
350
315
|
# Get the fields of the payload.
|
351
316
|
def get_fields(payload)
|
352
317
|
payload['fields']
|
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.6.
|
4
|
+
version: 0.6.1
|
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: 2017-
|
12
|
+
date: 2017-04-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
@@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
226
|
version: '0'
|
227
227
|
requirements: []
|
228
228
|
rubyforge_project:
|
229
|
-
rubygems_version: 2.6.
|
229
|
+
rubygems_version: 2.6.11
|
230
230
|
signing_key:
|
231
231
|
specification_version: 4
|
232
232
|
summary: fluentd output plugin for the Stackdriver Logging API
|