fluent-plugin-google-cloud 0.8.2 → 0.8.7
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 +14 -14
- data/fluent-plugin-google-cloud.gemspec +1 -1
- data/lib/fluent/plugin/common.rb +381 -0
- data/lib/fluent/plugin/filter_analyze_config.rb +306 -0
- data/lib/fluent/plugin/out_google_cloud.rb +29 -358
- data/test/plugin/asserts.rb +75 -0
- data/test/plugin/base_test.rb +3 -60
- data/test/plugin/constants.rb +9 -1
- data/test/plugin/data/google-fluentd-baseline.conf +24 -0
- data/test/plugin/data/google-fluentd-custom.conf +40 -0
- data/test/plugin/test_filter_analyze_config.rb +187 -0
- metadata +13 -3
@@ -0,0 +1,75 @@
|
|
1
|
+
# Copyright 2020 Google Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
# Additional assert functions.
|
16
|
+
module Asserts
|
17
|
+
# For an optional field with default values, Protobuf omits the field when it
|
18
|
+
# is deserialized to json. So we need to add an extra check for gRPC which
|
19
|
+
# uses Protobuf.
|
20
|
+
#
|
21
|
+
# An optional block can be passed in if we need to assert something other than
|
22
|
+
# a plain equal. e.g. assert_in_delta.
|
23
|
+
def assert_equal_with_default(_field, _expected_value, _default_value, _entry)
|
24
|
+
_undefined
|
25
|
+
end
|
26
|
+
|
27
|
+
# Compare the timestamp seconds and nanoseconds with the expected timestamp.
|
28
|
+
def assert_timestamp_matches(expected_ts, ts_secs, ts_nanos, entry)
|
29
|
+
assert_equal expected_ts.tv_sec, ts_secs, entry
|
30
|
+
# Fluentd v0.14 onwards supports nanosecond timestamp values.
|
31
|
+
# Added in 600 ns delta to avoid flaky tests introduced
|
32
|
+
# due to rounding error in double-precision floating-point numbers
|
33
|
+
# (to account for the missing 9 bits of precision ~ 512 ns).
|
34
|
+
# See http://wikipedia.org/wiki/Double-precision_floating-point_format.
|
35
|
+
assert_in_delta expected_ts.tv_nsec, ts_nanos, 600, entry
|
36
|
+
end
|
37
|
+
|
38
|
+
def assert_prometheus_metric_value(metric_name, expected_value, labels = {})
|
39
|
+
metric = Prometheus::Client.registry.get(metric_name)
|
40
|
+
assert_not_nil(metric)
|
41
|
+
metric_value = if labels == :aggregate
|
42
|
+
# Sum up all metric values regardless of the labels.
|
43
|
+
metric.values.values.reduce(0.0, :+)
|
44
|
+
else
|
45
|
+
metric.get(labels)
|
46
|
+
end
|
47
|
+
assert_equal(expected_value, metric_value)
|
48
|
+
end
|
49
|
+
|
50
|
+
def assert_opencensus_metric_value(metric_name, expected_value, labels = {})
|
51
|
+
translator = Monitoring::MetricTranslator.new(metric_name, labels)
|
52
|
+
metric_name = translator.name
|
53
|
+
labels = translator.translate_labels(labels)
|
54
|
+
# The next line collapses the labels to assert against the aggregated data,
|
55
|
+
# which can have some labels removed. Without this, it would test against
|
56
|
+
# the raw data. The view is more representative of the user experience, even
|
57
|
+
# though both tests should work because currently we only aggregate away one
|
58
|
+
# label that never changes during runtime.
|
59
|
+
labels.select! { |k, _| translator.view_labels.include? k }
|
60
|
+
labels = labels.map { |k, v| [k.to_s, v.to_s] }.to_h
|
61
|
+
stats_recorder = OpenCensus::Stats.ensure_recorder
|
62
|
+
view_data = stats_recorder.view_data metric_name
|
63
|
+
assert_not_nil(view_data)
|
64
|
+
# For now assume all metrics are counters.
|
65
|
+
assert_kind_of(OpenCensus::Stats::Aggregation::Sum,
|
66
|
+
view_data.view.aggregation)
|
67
|
+
assert_true(view_data.view.measure.int64?)
|
68
|
+
tag_values = view_data.view.columns.map { |column| labels[column] }
|
69
|
+
metric_value = 0
|
70
|
+
if view_data.data.key? tag_values
|
71
|
+
metric_value = view_data.data[tag_values].value
|
72
|
+
end
|
73
|
+
assert_equal(expected_value, metric_value)
|
74
|
+
end
|
75
|
+
end
|
data/test/plugin/base_test.rb
CHANGED
@@ -22,6 +22,7 @@ require 'mocha/test_unit'
|
|
22
22
|
require 'webmock/test_unit'
|
23
23
|
require 'prometheus/client'
|
24
24
|
|
25
|
+
require_relative 'asserts'
|
25
26
|
require_relative 'constants'
|
26
27
|
|
27
28
|
module Monitoring
|
@@ -35,6 +36,7 @@ end
|
|
35
36
|
|
36
37
|
# Unit tests for Google Cloud Logging plugin
|
37
38
|
module BaseTest
|
39
|
+
include Asserts
|
38
40
|
include Constants
|
39
41
|
|
40
42
|
def setup
|
@@ -105,7 +107,7 @@ module BaseTest
|
|
105
107
|
|
106
108
|
def test_configure_metadata_missing_parts_on_other_platforms
|
107
109
|
setup_no_metadata_service_stubs
|
108
|
-
|
110
|
+
Common::Utils::CredentialsInfo.stubs(:project_id).returns(nil)
|
109
111
|
[[CONFIG_MISSING_METADATA_PROJECT_ID, ['project_id'], false],
|
110
112
|
[CONFIG_MISSING_METADATA_ZONE, [], true],
|
111
113
|
[CONFIG_MISSING_METADATA_VM_ID, [], true],
|
@@ -2534,65 +2536,6 @@ module BaseTest
|
|
2534
2536
|
_undefined
|
2535
2537
|
end
|
2536
2538
|
|
2537
|
-
# For an optional field with default values, Protobuf omits the field when it
|
2538
|
-
# is deserialized to json. So we need to add an extra check for gRPC which
|
2539
|
-
# uses Protobuf.
|
2540
|
-
#
|
2541
|
-
# An optional block can be passed in if we need to assert something other than
|
2542
|
-
# a plain equal. e.g. assert_in_delta.
|
2543
|
-
def assert_equal_with_default(_field, _expected_value, _default_value, _entry)
|
2544
|
-
_undefined
|
2545
|
-
end
|
2546
|
-
|
2547
|
-
# Compare the timestamp seconds and nanoseconds with the expected timestamp.
|
2548
|
-
def assert_timestamp_matches(expected_ts, ts_secs, ts_nanos, entry)
|
2549
|
-
assert_equal expected_ts.tv_sec, ts_secs, entry
|
2550
|
-
# Fluentd v0.14 onwards supports nanosecond timestamp values.
|
2551
|
-
# Added in 600 ns delta to avoid flaky tests introduced
|
2552
|
-
# due to rounding error in double-precision floating-point numbers
|
2553
|
-
# (to account for the missing 9 bits of precision ~ 512 ns).
|
2554
|
-
# See http://wikipedia.org/wiki/Double-precision_floating-point_format.
|
2555
|
-
assert_in_delta expected_ts.tv_nsec, ts_nanos, 600, entry
|
2556
|
-
end
|
2557
|
-
|
2558
|
-
def assert_prometheus_metric_value(metric_name, expected_value, labels = {})
|
2559
|
-
metric = Prometheus::Client.registry.get(metric_name)
|
2560
|
-
assert_not_nil(metric)
|
2561
|
-
metric_value = if labels == :aggregate
|
2562
|
-
# Sum up all metric values regardless of the labels.
|
2563
|
-
metric.values.values.reduce(0.0, :+)
|
2564
|
-
else
|
2565
|
-
metric.get(labels)
|
2566
|
-
end
|
2567
|
-
assert_equal(expected_value, metric_value)
|
2568
|
-
end
|
2569
|
-
|
2570
|
-
def assert_opencensus_metric_value(metric_name, expected_value, labels = {})
|
2571
|
-
translator = Monitoring::MetricTranslator.new(metric_name, labels)
|
2572
|
-
metric_name = translator.name
|
2573
|
-
labels = translator.translate_labels(labels)
|
2574
|
-
# The next line collapses the labels to assert against the aggregated data,
|
2575
|
-
# which can have some labels removed. Without this, it would test against
|
2576
|
-
# the raw data. The view is more representative of the user experience, even
|
2577
|
-
# though both tests should work because currently we only aggregate away one
|
2578
|
-
# label that never changes during runtime.
|
2579
|
-
labels.select! { |k, _| translator.view_labels.include? k }
|
2580
|
-
labels = labels.map { |k, v| [k.to_s, v.to_s] }.to_h
|
2581
|
-
stats_recorder = OpenCensus::Stats.ensure_recorder
|
2582
|
-
view_data = stats_recorder.view_data metric_name
|
2583
|
-
assert_not_nil(view_data)
|
2584
|
-
# For now assume all metrics are counters.
|
2585
|
-
assert_kind_of(OpenCensus::Stats::Aggregation::Sum,
|
2586
|
-
view_data.view.aggregation)
|
2587
|
-
assert_true(view_data.view.measure.int64?)
|
2588
|
-
tag_values = view_data.view.columns.map { |column| labels[column] }
|
2589
|
-
metric_value = 0
|
2590
|
-
if view_data.data.key? tag_values
|
2591
|
-
metric_value = view_data.data[tag_values].value
|
2592
|
-
end
|
2593
|
-
assert_equal(expected_value, metric_value)
|
2594
|
-
end
|
2595
|
-
|
2596
2539
|
# Defined in specific gRPC or REST files.
|
2597
2540
|
def expected_operation_message2
|
2598
2541
|
_undefined
|
data/test/plugin/constants.rb
CHANGED
@@ -45,7 +45,7 @@ end
|
|
45
45
|
|
46
46
|
# Constants used by unit tests for Google Cloud Logging plugin.
|
47
47
|
module Constants
|
48
|
-
include
|
48
|
+
include Common::ServiceConstants
|
49
49
|
include Fluent::GoogleCloudOutput::ConfigConstants
|
50
50
|
include Fluent::GoogleCloudOutput::InternalConstants
|
51
51
|
|
@@ -471,6 +471,14 @@ module Constants
|
|
471
471
|
zone asia-east2
|
472
472
|
).freeze
|
473
473
|
|
474
|
+
# For analyze_config.
|
475
|
+
CONFIG_ANALYZE_CONFIG = %(
|
476
|
+
google_fluentd_config_path \
|
477
|
+
test/plugin/data/google-fluentd-custom.conf
|
478
|
+
google_fluentd_baseline_config_path \
|
479
|
+
test/plugin/data/google-fluentd-baseline.conf
|
480
|
+
).freeze
|
481
|
+
|
474
482
|
# Service configurations for various services.
|
475
483
|
|
476
484
|
# GCE.
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<source>
|
2
|
+
@type syslog
|
3
|
+
port 514
|
4
|
+
protocol_type tcp
|
5
|
+
bind 127.0.0.1
|
6
|
+
tag syslog
|
7
|
+
</source>
|
8
|
+
|
9
|
+
<source>
|
10
|
+
@type tail
|
11
|
+
path /var/log/apache*/access.log,/var/log/apache*/access_log,/var/log/httpd/access.log,/var/log/httpd/access_log
|
12
|
+
pos_file /var/lib/google-fluentd/pos/apache-access.pos
|
13
|
+
tag apache-access
|
14
|
+
</source>
|
15
|
+
|
16
|
+
<filter **>
|
17
|
+
@type add_insert_ids
|
18
|
+
</filter>
|
19
|
+
|
20
|
+
<match **>
|
21
|
+
@type google_cloud
|
22
|
+
adjust_invalid_timestamps true
|
23
|
+
autoformat_stackdriver_trace true
|
24
|
+
</match>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<source>
|
2
|
+
@type syslog
|
3
|
+
port 514
|
4
|
+
protocol_type tcp
|
5
|
+
bind 127.0.0.1
|
6
|
+
tag syslog
|
7
|
+
</source>
|
8
|
+
|
9
|
+
<source>
|
10
|
+
@type tail
|
11
|
+
path /var/log/apache*/access.log,/var/log/apache*/access_log,/var/log/httpd/access.log,/var/log/httpd/access_log
|
12
|
+
pos_file /var/lib/google-fluentd/pos/apache-access.pos
|
13
|
+
tag apache-access
|
14
|
+
</source>
|
15
|
+
|
16
|
+
<filter **>
|
17
|
+
@type add_insert_ids
|
18
|
+
</filter>
|
19
|
+
|
20
|
+
<match **>
|
21
|
+
@type google_cloud
|
22
|
+
adjust_invalid_timestamps true
|
23
|
+
autoformat_stackdriver_trace false
|
24
|
+
coerce_to_utf8 true
|
25
|
+
</match>
|
26
|
+
|
27
|
+
<filter **>
|
28
|
+
@type some_custom_filter
|
29
|
+
</filter>
|
30
|
+
|
31
|
+
<filter **>
|
32
|
+
@type record_transformer
|
33
|
+
<record>
|
34
|
+
host_param "#{Socket.gethostname}"
|
35
|
+
</record>
|
36
|
+
</filter>
|
37
|
+
|
38
|
+
<match "app.#{ENV['FLUENTD_TAG']}">
|
39
|
+
@type stdout
|
40
|
+
</match>
|
@@ -0,0 +1,187 @@
|
|
1
|
+
# Copyright 2020 Google Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require_relative '../helper'
|
16
|
+
require_relative 'asserts'
|
17
|
+
require_relative 'constants'
|
18
|
+
|
19
|
+
require 'fluent/test/driver/filter'
|
20
|
+
require 'fluent/plugin/filter_analyze_config'
|
21
|
+
|
22
|
+
# Unit tests for filter_analyze_config plugin.
|
23
|
+
class FilterAnalyzeConfigTest < Test::Unit::TestCase
|
24
|
+
include Asserts
|
25
|
+
include Constants
|
26
|
+
include Fluent::AnalyzeConfigFilter::Constants
|
27
|
+
|
28
|
+
APPLICATION_DEFAULT_CONFIG = ''.freeze
|
29
|
+
|
30
|
+
def setup
|
31
|
+
Fluent::Test.setup
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_config_file_does_not_exist
|
35
|
+
# By default, the FilterTestDriver.new does not set up a config file at:
|
36
|
+
# /etc/google-fluentd/google-fluentd.conf. The plugin should still proceed.
|
37
|
+
create_driver
|
38
|
+
# No exceptions were thrown.
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_analyze_config
|
42
|
+
create_driver(CONFIG_ANALYZE_CONFIG)
|
43
|
+
|
44
|
+
# Default plugins, with default config.
|
45
|
+
assert_prometheus_metric_value(
|
46
|
+
:stackdriver_enabled_plugins,
|
47
|
+
1,
|
48
|
+
plugin_name: 'source/syslog/tcp',
|
49
|
+
is_default_plugin: true,
|
50
|
+
has_default_value: true,
|
51
|
+
has_ruby_snippet: false)
|
52
|
+
assert_prometheus_metric_value(
|
53
|
+
:stackdriver_enabled_plugins,
|
54
|
+
1,
|
55
|
+
plugin_name: 'source/tail/apache-access',
|
56
|
+
is_default_plugin: true,
|
57
|
+
has_default_value: true,
|
58
|
+
has_ruby_snippet: false)
|
59
|
+
assert_prometheus_metric_value(
|
60
|
+
:stackdriver_enabled_plugins,
|
61
|
+
1,
|
62
|
+
plugin_name: 'filter/add_insert_ids',
|
63
|
+
is_default_plugin: true,
|
64
|
+
has_default_value: true,
|
65
|
+
has_ruby_snippet: false)
|
66
|
+
|
67
|
+
# Default plugins, with custom config.
|
68
|
+
assert_prometheus_metric_value(
|
69
|
+
:stackdriver_enabled_plugins,
|
70
|
+
1,
|
71
|
+
plugin_name: 'match/google_cloud',
|
72
|
+
is_default_plugin: true,
|
73
|
+
has_default_value: false,
|
74
|
+
has_ruby_snippet: false)
|
75
|
+
|
76
|
+
# Custom plugins, some with embedded Ruby.
|
77
|
+
assert_prometheus_metric_value(
|
78
|
+
:stackdriver_enabled_plugins,
|
79
|
+
1,
|
80
|
+
plugin_name: 'filter',
|
81
|
+
is_default_plugin: false,
|
82
|
+
has_default_value: false,
|
83
|
+
has_ruby_snippet: false)
|
84
|
+
assert_prometheus_metric_value(
|
85
|
+
:stackdriver_enabled_plugins,
|
86
|
+
1,
|
87
|
+
plugin_name: 'filter/record_transformer',
|
88
|
+
is_default_plugin: false,
|
89
|
+
has_default_value: false,
|
90
|
+
has_ruby_snippet: true)
|
91
|
+
assert_prometheus_metric_value(
|
92
|
+
:stackdriver_enabled_plugins,
|
93
|
+
1,
|
94
|
+
plugin_name: 'match/stdout',
|
95
|
+
is_default_plugin: false,
|
96
|
+
has_default_value: false,
|
97
|
+
has_ruby_snippet: true)
|
98
|
+
|
99
|
+
# For out_google_cloud, 3 params are present.
|
100
|
+
assert_prometheus_metric_value(
|
101
|
+
:stackdriver_config_usage,
|
102
|
+
1,
|
103
|
+
plugin_name: 'google_cloud',
|
104
|
+
param: 'adjust_invalid_timestamps',
|
105
|
+
is_present: true,
|
106
|
+
has_default_value: true)
|
107
|
+
assert_prometheus_metric_value(
|
108
|
+
:stackdriver_config_usage,
|
109
|
+
1,
|
110
|
+
plugin_name: 'google_cloud',
|
111
|
+
param: 'autoformat_stackdriver_trace',
|
112
|
+
is_present: true,
|
113
|
+
has_default_value: false)
|
114
|
+
assert_prometheus_metric_value(
|
115
|
+
:stackdriver_config_usage,
|
116
|
+
1,
|
117
|
+
plugin_name: 'google_cloud',
|
118
|
+
param: 'coerce_to_utf8',
|
119
|
+
is_present: true,
|
120
|
+
has_default_value: false)
|
121
|
+
# The remaining "google_cloud" params are not present.
|
122
|
+
# The are no params for "detect_exceptions".
|
123
|
+
%w(
|
124
|
+
auth_method
|
125
|
+
detect_json
|
126
|
+
enable_monitoring
|
127
|
+
gcm_service_address
|
128
|
+
grpc_compression_algorithm
|
129
|
+
http_request_key
|
130
|
+
insert_id_key
|
131
|
+
label_map
|
132
|
+
labels
|
133
|
+
labels_key
|
134
|
+
logging_api_url
|
135
|
+
monitoring_type
|
136
|
+
non_utf8_replacement_string
|
137
|
+
operation_key
|
138
|
+
private_key_email
|
139
|
+
private_key_passphrase
|
140
|
+
private_key_path
|
141
|
+
project_id
|
142
|
+
source_location_key
|
143
|
+
span_id_key
|
144
|
+
statusz_port
|
145
|
+
trace_key
|
146
|
+
trace_sampled_key
|
147
|
+
use_grpc
|
148
|
+
use_metadata_service
|
149
|
+
vm_id
|
150
|
+
vm_name
|
151
|
+
zone
|
152
|
+
).each do |p|
|
153
|
+
assert_prometheus_metric_value(
|
154
|
+
:stackdriver_config_usage,
|
155
|
+
1,
|
156
|
+
plugin_name: 'google_cloud',
|
157
|
+
param: p,
|
158
|
+
is_present: false,
|
159
|
+
has_default_value: false)
|
160
|
+
end
|
161
|
+
|
162
|
+
# We also export values for the bools.
|
163
|
+
assert_prometheus_metric_value(
|
164
|
+
:stackdriver_config_bool_values,
|
165
|
+
1,
|
166
|
+
plugin_name: 'google_cloud',
|
167
|
+
param: 'adjust_invalid_timestamps',
|
168
|
+
value: true)
|
169
|
+
assert_prometheus_metric_value(
|
170
|
+
:stackdriver_config_bool_values,
|
171
|
+
1,
|
172
|
+
plugin_name: 'google_cloud',
|
173
|
+
param: 'autoformat_stackdriver_trace',
|
174
|
+
value: false)
|
175
|
+
assert_prometheus_metric_value(
|
176
|
+
:stackdriver_config_bool_values,
|
177
|
+
1,
|
178
|
+
plugin_name: 'google_cloud',
|
179
|
+
param: 'coerce_to_utf8',
|
180
|
+
value: true)
|
181
|
+
end
|
182
|
+
|
183
|
+
def create_driver(conf = APPLICATION_DEFAULT_CONFIG)
|
184
|
+
Fluent::Test::FilterTestDriver.new(
|
185
|
+
Fluent::AnalyzeConfigFilter).configure(conf, true)
|
186
|
+
end
|
187
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-google-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stackdriver Agents Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -266,21 +266,27 @@ files:
|
|
266
266
|
- README.rdoc
|
267
267
|
- Rakefile
|
268
268
|
- fluent-plugin-google-cloud.gemspec
|
269
|
+
- lib/fluent/plugin/common.rb
|
269
270
|
- lib/fluent/plugin/filter_add_insert_ids.rb
|
271
|
+
- lib/fluent/plugin/filter_analyze_config.rb
|
270
272
|
- lib/fluent/plugin/in_object_space_dump.rb
|
271
273
|
- lib/fluent/plugin/monitoring.rb
|
272
274
|
- lib/fluent/plugin/out_google_cloud.rb
|
273
275
|
- lib/fluent/plugin/statusz.rb
|
274
276
|
- test/helper.rb
|
277
|
+
- test/plugin/asserts.rb
|
275
278
|
- test/plugin/base_test.rb
|
276
279
|
- test/plugin/constants.rb
|
277
280
|
- test/plugin/data/c31e573fd7f62ed495c9ca3821a5a85cb036dee1-privatekey.p12
|
278
281
|
- test/plugin/data/credentials.json
|
282
|
+
- test/plugin/data/google-fluentd-baseline.conf
|
283
|
+
- test/plugin/data/google-fluentd-custom.conf
|
279
284
|
- test/plugin/data/iam-credentials.json
|
280
285
|
- test/plugin/data/invalid_credentials.json
|
281
286
|
- test/plugin/data/new-style-credentials.json
|
282
287
|
- test/plugin/test_driver.rb
|
283
288
|
- test/plugin/test_filter_add_insert_ids.rb
|
289
|
+
- test/plugin/test_filter_analyze_config.rb
|
284
290
|
- test/plugin/test_out_google_cloud.rb
|
285
291
|
- test/plugin/test_out_google_cloud_grpc.rb
|
286
292
|
homepage: https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud
|
@@ -302,20 +308,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
302
308
|
- !ruby/object:Gem::Version
|
303
309
|
version: '0'
|
304
310
|
requirements: []
|
305
|
-
rubygems_version: 3.0.
|
311
|
+
rubygems_version: 3.0.8
|
306
312
|
signing_key:
|
307
313
|
specification_version: 4
|
308
314
|
summary: fluentd plugins for the Stackdriver Logging API
|
309
315
|
test_files:
|
310
316
|
- test/helper.rb
|
317
|
+
- test/plugin/asserts.rb
|
311
318
|
- test/plugin/base_test.rb
|
312
319
|
- test/plugin/constants.rb
|
313
320
|
- test/plugin/data/c31e573fd7f62ed495c9ca3821a5a85cb036dee1-privatekey.p12
|
314
321
|
- test/plugin/data/credentials.json
|
322
|
+
- test/plugin/data/google-fluentd-baseline.conf
|
323
|
+
- test/plugin/data/google-fluentd-custom.conf
|
315
324
|
- test/plugin/data/iam-credentials.json
|
316
325
|
- test/plugin/data/invalid_credentials.json
|
317
326
|
- test/plugin/data/new-style-credentials.json
|
318
327
|
- test/plugin/test_driver.rb
|
319
328
|
- test/plugin/test_filter_add_insert_ids.rb
|
329
|
+
- test/plugin/test_filter_analyze_config.rb
|
320
330
|
- test/plugin/test_out_google_cloud.rb
|
321
331
|
- test/plugin/test_out_google_cloud_grpc.rb
|