fluent-plugin-gcloud-pubsub-custom-compress-batches 1.3.4

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1b9c7b3dc34f8091993d291f47ab10b9cd20aec0a903bab3d1a3b749871d16b7
4
+ data.tar.gz: e4e208aa00f236e3c579a281848ed937e482b6240a357defd926affb85ab822c
5
+ SHA512:
6
+ metadata.gz: b87a13aa2d02eaae3aa1d27dcaeba521a477c0ce3bb1b2890b4d27b678eeb51647df25c6f3bf536681ad6ba331404c06f1c560ae1427990806215ed40adc72ad
7
+ data.tar.gz: af0a44c4bcaf565c23fed7970d79e3f25428d34e0764a4481a62f03e58c67c9f462d8e1bb50fe3bc5ab64e8e610db4305e4f7927dc15d945166d6a5c6cbc3c47
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ ~*
2
+ #*
3
+ *~
4
+ [._]*.s[a-w][a-z]
5
+ .DS_Store
6
+
7
+ *.gem
8
+ .bundle
9
+ Gemfile.lock
10
+ vendor
11
+ .ruby-version
data/.rubocop.yml ADDED
@@ -0,0 +1,46 @@
1
+ ---
2
+ inherit_from: .rubocop_todo.yml
3
+
4
+ AllCops:
5
+ # Matches the minimum version in .travis.yml
6
+ TargetRubyVersion: 2.4
7
+
8
+ Style/StringLiterals:
9
+ EnforcedStyle: "double_quotes"
10
+
11
+ # New cops: https://docs.rubocop.org/en/latest/versioning/
12
+ Layout/EmptyLinesAroundAttributeAccessor:
13
+ Enabled: true
14
+
15
+ Layout/SpaceAroundMethodCallOperator:
16
+ Enabled: true
17
+
18
+ Lint/RaiseException:
19
+ Enabled: true
20
+
21
+ Lint/StructNewOverride:
22
+ Enabled: true
23
+
24
+ Style/ExponentialNotation:
25
+ Enabled: true
26
+
27
+ Style/HashEachMethods:
28
+ Enabled: true
29
+
30
+ Style/HashTransformKeys:
31
+ Enabled: true
32
+
33
+ Style/HashTransformValues:
34
+ Enabled: true
35
+
36
+ Style/SlicingWithRange:
37
+ Enabled: true
38
+
39
+ Style/TrailingCommaInHashLiteral:
40
+ EnforcedStyleForMultiline: comma
41
+
42
+ Style/TrailingCommaInArrayLiteral:
43
+ EnforcedStyleForMultiline: comma
44
+
45
+ Style/TrailingCommaInArguments:
46
+ EnforcedStyleForMultiline: comma
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,98 @@
1
+ ---
2
+ # This configuration was generated by
3
+ # `rubocop --auto-gen-config`
4
+ # on 2020-05-12 17:34:19 +0100 using RuboCop version 0.83.0.
5
+ # The point is for the user to remove these configuration records
6
+ # one by one as the offenses are removed from the code base.
7
+ # Note that changes in the inspected code, or installation of new
8
+ # versions of RuboCop, may require this file to be generated again.
9
+
10
+ # Offense count: 3
11
+ # Configuration parameters: IgnoredMethods.
12
+ Metrics/AbcSize:
13
+ Max: 50
14
+
15
+ Metrics/BlockLength:
16
+ Enabled: false
17
+
18
+ Metrics/ClassLength:
19
+ Enabled: false
20
+
21
+ Metrics/MethodLength:
22
+ Max: 30
23
+
24
+ # Offense count: 1
25
+ # Configuration parameters: IgnoredPatterns.
26
+ # SupportedStyles: snake_case, camelCase
27
+ Naming/MethodName:
28
+ EnforcedStyle: snake_case
29
+
30
+ # Offense count: 3
31
+ # Cop supports --auto-correct.
32
+ # Configuration parameters: AutoCorrect, EnforcedStyle.
33
+ # SupportedStyles: nested, compact
34
+ Style/ClassAndModuleChildren:
35
+ Exclude:
36
+ - 'lib/fluent/plugin/in_gcloud_pubsub.rb'
37
+ - 'lib/fluent/plugin/out_gcloud_pubsub.rb'
38
+ - 'test/test_helper.rb'
39
+
40
+ # Offense count: 6
41
+ Style/Documentation:
42
+ Exclude:
43
+ - 'spec/**/*'
44
+ - 'test/**/*'
45
+ - 'lib/fluent/plugin/gcloud_pubsub/client.rb'
46
+ - 'lib/fluent/plugin/in_gcloud_pubsub.rb'
47
+ - 'lib/fluent/plugin/out_gcloud_pubsub.rb'
48
+
49
+ # Offense count: 1
50
+ # Configuration parameters: AllowedVariables.
51
+ Style/GlobalVars:
52
+ Exclude:
53
+ - 'test/test_helper.rb'
54
+
55
+ # Offense count: 1
56
+ # Configuration parameters: MinBodyLength.
57
+ Style/GuardClause:
58
+ Exclude:
59
+ - 'lib/fluent/plugin/gcloud_pubsub/client.rb'
60
+
61
+ # Offense count: 2
62
+ # Cop supports --auto-correct.
63
+ Style/IfUnlessModifier:
64
+ Exclude:
65
+ - 'lib/fluent/plugin/gcloud_pubsub/client.rb'
66
+
67
+ # Offense count: 1
68
+ Style/MethodMissingSuper:
69
+ Exclude:
70
+ - 'test/test_helper.rb'
71
+
72
+ # Offense count: 1
73
+ Style/MissingRespondToMissing:
74
+ Exclude:
75
+ - 'test/test_helper.rb'
76
+
77
+ # Offense count: 260
78
+ # Cop supports --auto-correct.
79
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
80
+ # SupportedStyles: single_quotes, double_quotes
81
+ Style/StringLiterals:
82
+ Exclude:
83
+ - 'Gemfile'
84
+ - 'Rakefile'
85
+ - 'fluent-plugin-gcloud-pubsub-custom.gemspec'
86
+ - 'lib/fluent/plugin/gcloud_pubsub/client.rb'
87
+ - 'lib/fluent/plugin/in_gcloud_pubsub.rb'
88
+ - 'lib/fluent/plugin/out_gcloud_pubsub.rb'
89
+ - 'test/plugin/test_in_gcloud_pubsub.rb'
90
+ - 'test/plugin/test_out_gcloud_pubsub.rb'
91
+ - 'test/test_helper.rb'
92
+
93
+ # Offense count: 36
94
+ # Cop supports --auto-correct.
95
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
96
+ # URISchemes: http, https
97
+ Layout/LineLength:
98
+ Max: 120
data/.travis.yml ADDED
@@ -0,0 +1,26 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.5
5
+ - 2.6
6
+ - 2.7
7
+ - ruby-head
8
+
9
+ gemfile:
10
+ - Gemfile
11
+
12
+ branches:
13
+ only:
14
+ - master
15
+ - gocardless
16
+
17
+ before_install: gem update bundler
18
+ script:
19
+ - bundle exec rake test
20
+ - bundle exec rubocop
21
+
22
+ sudo: false
23
+
24
+ matrix:
25
+ allow_failures:
26
+ - rvm: ruby-head
data/CHANGELOG.md ADDED
@@ -0,0 +1,143 @@
1
+ ## ChangeLog
2
+
3
+ ### Release 1.3.3 - 2021/01/05
4
+
5
+ - Add support for payload compression with `compress_batches`
6
+
7
+ ### Release 1.3.2 - 2019/08/16
8
+
9
+ - Input plugin
10
+ - Make `topic` parameter optional
11
+
12
+ ### Release 1.3.1 - 2018/06/08
13
+
14
+ - Input plugin
15
+ - Dumps raw string to logs for parsing errors
16
+
17
+ ### Release 1.3.0 - 2018/05/18
18
+
19
+ - Make attributes available
20
+
21
+ ### Release 1.2.0 - 2018/04/24
22
+
23
+ - Output plugin
24
+ - Support inject section
25
+
26
+ ### Release 1.1.0 - 2018/03/30
27
+
28
+ - Output plugin
29
+ - The placeholder is now available in topic param
30
+
31
+ ### Release 1.0.3 - 2018/03/29
32
+
33
+ - Bump up google-cloud-pubsub to v0.30.x
34
+ - Make config file Fluentd v1 compatible
35
+
36
+ ### Release 1.0.2 - 2017/09/11
37
+
38
+ - Bump up google-cloud-pubsub to v0.27.x
39
+
40
+ ### Release 1.0.1 - 2017/09/05
41
+
42
+ - Bump up google-cloud-pubsub to v0.26.x
43
+
44
+ ### Release 1.0.0 - 2017/06/23
45
+
46
+ - Fluentd v0.14 ready
47
+ - Fluentd v0.12 is not supported in the later version
48
+
49
+ ### Release 0.4.6 - 2017/05/14
50
+
51
+ - Output plugin
52
+ - Make messages exceeding configured size not be published because Pub/Sub clients cannot receive it
53
+
54
+ ### Release 0.4.5 - 2017/04/02
55
+
56
+ - Bump up google-cloud-pubsub to v0.24.x
57
+
58
+ ### Release 0.4.4 - 2017/03/07
59
+
60
+ - Bump up google-cloud-pubsub to v0.23.x
61
+
62
+ ### Release 0.4.3 - 2017/02/16
63
+
64
+ - Input plugin
65
+ - Add "status" method to the http rpc api
66
+
67
+ ### Release 0.4.2 - 2017/02/03
68
+
69
+ - Make retry to get topic/subscription when Pub/Sub API returns 50x code
70
+
71
+ ### Release 0.4.1 - 2017/02/02
72
+
73
+ - Bump up google-cloud-pubsub to v0.22.x
74
+ - Input plugin
75
+ - Rescue 50x errors on acknowledge api
76
+
77
+ ### Release 0.4.0 - 2017/01/21
78
+
79
+ - Input plugin
80
+ - Add feature to use record key as tag
81
+
82
+ ### Release 0.3.4 - 2017/01/03
83
+
84
+ - Output plugin
85
+ - Rescue 50x errors
86
+ - Input plugin
87
+ - Guard emit to be called with multi-threading
88
+ - Rescue 50x errors
89
+ - Enabled to select whether to raise an exception if message processing failed
90
+
91
+ ### Release 0.3.3 - 2016/12/03
92
+
93
+ - Input plugin
94
+ - Fix undefined variable error
95
+
96
+ ### Release 0.3.2 - 2016/11/13
97
+
98
+ - Add plugin param desc
99
+ - Input plugin
100
+ - Improve handling to acknowledge messages
101
+
102
+ ### Release 0.3.1 - 2016/11/03
103
+
104
+ - Output plugin
105
+ - Improve error handling
106
+
107
+ ### Release 0.3.0 - 2016/10/30
108
+
109
+ - Bump up google-cloud-pubsub to v0.21
110
+ - Input plugin
111
+ - Add multithreaded pulling feature
112
+
113
+ ### Release 0.2.0 - 2016/10/15
114
+
115
+ - Input plugin
116
+ - Add HTTP RPC feature
117
+
118
+ ### Release 0.1.4 - 2016/09/19
119
+
120
+ - Input plugin
121
+ - `pull_interval` can be specified float value
122
+ - `topic` must be specified
123
+
124
+ ### Release 0.1.3 - 2016/09/17
125
+
126
+ - Input plugin
127
+ - Fix error handling and add debug logging
128
+
129
+ ### Release 0.1.2 - 2016/09/11
130
+
131
+ - Output plugin
132
+ - Change default max message size and add debug message
133
+
134
+ ### Release 0.1.1 - 2016/08/27
135
+
136
+ - Bump up google-cloud-pubsub (gcloud-ruby) to 0.20
137
+
138
+ ### Release 0.1.0 - 2016/08/22
139
+
140
+ - Use formatter / parser plugin and add format configuration
141
+ - Bump up gcloud-ruby to 0.12
142
+ - Remove dependency on lightening buffer
143
+ - Fix error caused by Pub/Sub quotas
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 mdoi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
data/README.md ADDED
@@ -0,0 +1,250 @@
1
+ # fluent-plugin-gcloud-pubsub-custom
2
+
3
+ [![Build Status](https://travis-ci.org/mia-0032/fluent-plugin-gcloud-pubsub-custom.svg?branch=master)](https://travis-ci.org/mia-0032/fluent-plugin-gcloud-pubsub-custom)
4
+ [![Gem Version](https://badge.fury.io/rb/fluent-plugin-gcloud-pubsub-custom.svg)](http://badge.fury.io/rb/fluent-plugin-gcloud-pubsub-custom)
5
+
6
+ This plugin is forked from https://github.com/mdoi/fluent-plugin-gcloud-pubsub
7
+
8
+ ## Overview
9
+
10
+ [Google Cloud Pub/Sub](https://cloud.google.com/pubsub/) Input/Output(BufferedOutput) plugin for [Fluentd](http://www.fluentd.org/) with [google-cloud](https://googlecloudplatform.github.io/google-cloud-ruby/) gem
11
+
12
+ - Publish messages to Google Cloud Pub/Sub
13
+ - Pull messages from Google Cloud Pub/Sub
14
+
15
+ ## Preparation
16
+
17
+ - Create a project on Google Developer Console
18
+ - Add a topic of Cloud Pub/Sub to the project
19
+ - Add a pull style subscription to the topic
20
+ - Download your credential (json) or [set scope on GCE instance](https://cloud.google.com/compute/docs/api/how-tos/authorization)
21
+
22
+ When using output plugin, you need to grant Pub/Sub Publisher and Pub/Sub Viewer role to IAM.
23
+
24
+ Also, when using input plugin, you need to grant Pub/Sub Subscriber and Pub/Sub Viewer role to IAM.
25
+
26
+ ## Requirements
27
+
28
+ | fluent-plugin-gcloud-pubsub-custom | fluentd | ruby |
29
+ |------------------------|---------|------|
30
+ | >= 1.0.0 | >= v0.14.0 | >= 2.1 |
31
+ | < 1.0.0 | >= v0.12.0 | >= 1.9 |
32
+
33
+ ## Installation
34
+
35
+ Install by gem:
36
+
37
+ ```shell
38
+ $ gem install fluent-plugin-gcloud-pubsub-custom
39
+ ```
40
+
41
+ **Caution**
42
+
43
+ This plugin doesn't work in [td-agent](http://docs.fluentd.org/articles/install-by-rpm).
44
+
45
+ Please use in [Fluentd installed by gem](http://docs.fluentd.org/articles/install-by-gem).
46
+
47
+ ## Configuration
48
+
49
+ ### Publish messages
50
+
51
+ Use `gcloud_pubsub` output plugin.
52
+
53
+ ```
54
+ <match example.publish>
55
+ @type gcloud_pubsub
56
+ project <YOUR PROJECT>
57
+ key <YOUR KEY>
58
+ topic <YOUR TOPIC>
59
+ autocreate_topic false
60
+ max_messages 1000
61
+ max_total_size 9800000
62
+ max_message_size 4000000
63
+ compress_batches false
64
+ <buffer>
65
+ @type memory
66
+ flush_interval 1s
67
+ </buffer>
68
+ <format>
69
+ @type json
70
+ </format>
71
+ </match>
72
+ ```
73
+
74
+ - `project` (optional)
75
+ - Set your GCP project.
76
+ - Running fluentd on GCP, you don't have to specify.
77
+ - You can also use environment variable such as `GCLOUD_PROJECT`.
78
+ - `key` (optional)
79
+ - Set your credential file path.
80
+ - Running fluentd on GCP, you can use scope instead of specifying this.
81
+ - You can also use environment variable such as `GCLOUD_KEYFILE`.
82
+ - `topic` (required)
83
+ - Set topic name to publish.
84
+ - You can use placeholder in this param. See: https://docs.fluentd.org/v1.0/articles/buffer-section
85
+ - `autocreate_topic` (optional, default: `false`)
86
+ - If set to `true`, specified topic will be created when it doesn't exist.
87
+ - `max_messages` (optional, default: `1000`)
88
+ - Publishing messages count per request to Cloud Pub/Sub.
89
+ - See https://cloud.google.com/pubsub/quotas#other_limits
90
+ - `max_total_size` (optional, default: `9800000` = `9.8MB`)
91
+ - Publishing messages bytesize per request to Cloud Pub/Sub. This parameter affects only message size. You should specify a little smaller value than quota.
92
+ - See https://cloud.google.com/pubsub/quotas#other_limits
93
+ - `max_message_size` (optional, default: `4000000` = `4MB`)
94
+ - Messages exceeding `max_message_size` are not published because Pub/Sub clients cannot receive it.
95
+ - `attribute_keys` (optional, default: `[]`)
96
+ - Extract these fields from the record and send them as attributes on the Pub/Sub message. Cannot be set if compress_batches is enabled.
97
+ - `metric_prefix` (optional, default: `fluentd_output_gcloud_pubsub`)
98
+ - The prefix for Prometheus metric names
99
+ - `compress_batches` (optional, default: `false`)
100
+ - If set to `true`, messages will be batched and compressed before publication. See [message compression](#message-compression) for details.
101
+
102
+ ### Pull messages
103
+
104
+ Use `gcloud_pubsub` input plugin.
105
+
106
+ ```
107
+ <source>
108
+ @type gcloud_pubsub
109
+ tag example.pull
110
+ project <YOUR PROJECT>
111
+ key <YOUR KEY>
112
+ topic <YOUR TOPIC>
113
+ subscription <YOUR SUBSCRIPTION>
114
+ max_messages 1000
115
+ return_immediately true
116
+ pull_interval 0.5
117
+ pull_threads 2
118
+ parse_error_action exception
119
+ enable_rpc true
120
+ rpc_bind 0.0.0.0
121
+ rpc_port 24680
122
+ <parse>
123
+ @type json
124
+ </parse>
125
+ </source>
126
+ ```
127
+
128
+ - `tag` (required)
129
+ - Set tag of messages.
130
+ - If `tag_key` is specified, `tag` is used as tag when record don't have specified key.
131
+ - `tag_key` (optional)
132
+ - Set key to be used as tag.
133
+ - `project` (optional)
134
+ - Set your GCP project
135
+ - Running fluentd on GCP, you don't have to specify.
136
+ - You can also use environment variable such as `GCLOUD_PROJECT`.
137
+ - `key` (optional)
138
+ - Set your credential file path.
139
+ - Running fluentd on GCP, you can use scope instead of specifying this.
140
+ - You can also use environment variable such as `GCLOUD_KEYFILE`.
141
+ - `topic` (optional)
142
+ - Set topic name that the subscription belongs to.
143
+ - `subscription` (required)
144
+ - Set subscription name to pull.
145
+ - `max_messages` (optional, default: `100`)
146
+ - See maxMessages on https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/pull
147
+ - `return_immediately` (optional, default: `true`)
148
+ - See returnImmediately on https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/pull
149
+ - If `return_immediately` is `true` or pulling message is stopped by HTTP RPC, this plugin wait `pull_interval` each pull.
150
+ - `pull_interval` (optional, default: `5.0`)
151
+ - Pulling messages by intervals of specified seconds.
152
+ - `pull_threads` (optional, default: `1`)
153
+ - Set number of threads to pull messages.
154
+ - `attribute_keys` (optional, default: `[]`)
155
+ - Acquire these fields from attributes on the Pub/Sub message and merge them into the record.
156
+ - `parse_error_action` (optional, default: `exception`)
157
+ - Set error type when parsing messages fails.
158
+ - `exception`: Raise exception. Messages are not acknowledged.
159
+ - `warning`: Only logging as warning.
160
+ - `metric_prefix` (optional, default: `fluentd_input_gcloud_pubsub`)
161
+ - The prefix for Prometheus metric names
162
+ - `enable_rpc` (optional, default: `false`)
163
+ - If `true` is specified, HTTP RPC to stop or start pulling message is enabled.
164
+ - `rpc_bind` (optional, default: `0.0.0.0`)
165
+ - Bind IP address for HTTP RPC.
166
+ - `rpc_port` (optional, default: `24680`)
167
+ - Port for HTTP RPC.
168
+
169
+ ## Message compression
170
+
171
+ The `compress_batches` option can be used to enable the compression of messages
172
+ _before_ publication to Pub/Sub.
173
+
174
+ This works by collecting the buffered messages, taking up to `max_total_size` or
175
+ `max_message_size` input records, then compressing them with Zlib (i.e.
176
+ gzip/Deflate) before publishing them as a single message to the Pub/Sub topic.
177
+
178
+ When transporting large volumes of records via Pub/Sub, e.g. multiple Terabytes
179
+ per month, this can lead to significant cost savings, as typically the CPU time
180
+ required to compress the messages will be minimal in comparison to the Pub/Sub
181
+ costs.
182
+
183
+ The compression ratio achievable will vary largely depending on the homogeneity
184
+ of the input records, but typically will be 50% at the very minimum and often
185
+ around 80-90%.
186
+
187
+ In order to achieve good compression, consider the following:
188
+ - Ensure that the buffer is being filled with a reasonable batch of messages: do
189
+ not use `flush_mode immediate`, and keep the `flush_interval` value
190
+ sufficiently high. Use the Prometheus metrics to determine how many records
191
+ are being published per message.
192
+ - Keep the `max_messages` and `max_message_size` values high (the defaults are
193
+ optimal).
194
+ - If there are many different sources of messages being mixed and routed to a
195
+ single `gcloud_pubsub` output, use multiple outputs (which will each have
196
+ their own buffer) through tagging or [labelling][fluentd-labels].
197
+
198
+ [fluentd-labels]: https://docs.fluentd.org/quickstart/life-of-a-fluentd-event#labels
199
+
200
+ The receiving end must be able to decode these compressed batches of messages,
201
+ which it can determine via an attribute set on the Pub/Sub message. The
202
+ `gcloud_pubsub` input plugin will do this transparently, decompressing any
203
+ messages which contain a batch of records and normally processing any messages
204
+ which represent just a single record.
205
+ Therefore, as long as all of the receivers are updated with support for
206
+ compressed batches first, it's then possible to gradually roll out this feature.
207
+
208
+ ## Prometheus metrics
209
+
210
+ The input and output plugins expose several metrics in order to monitor
211
+ performance:
212
+
213
+ - `fluentd_output_gcloud_pubsub_compression_enabled`
214
+ - Gauge: Whether compression/batching is enabled
215
+ - `fluentd_output_gcloud_pubsub_messages_published_per_batch`
216
+ - Histogram: Number of records published to Pub/Sub per buffer flush
217
+ - `fluentd_output_gcloud_pubsub_messages_published_bytes`
218
+ - Histogram: Total size in bytes of the records published to Pub/Sub,
219
+ **before** compression.
220
+ - `fluentd_output_gcloud_pubsub_messages_compression_duration_seconds`
221
+ - Histogram: Time taken to compress a batch of messages
222
+ - `fluentd_output_gcloud_pubsub_messages_compressed_size_per_original_size_ratio`
223
+ - Histogram: Compression ratio achieved on a batch of messages, expressed in
224
+ terms of space saved.
225
+
226
+ - `fluentd_input_gcloud_pubsub_pull_errors_total`
227
+ - Counter: Errors encountered while pulling or processing messages (split by a
228
+ `retryable` label)
229
+ - `fluentd_input_gcloud_pubsub_messages_pulled`
230
+ - Histogram: Number of Pub/Sub messages pulled by the subscriber on each invocation
231
+ - `fluentd_input_gcloud_pubsub_messages_pulled_bytes`
232
+ - Histogram: Total size in bytes of the Pub/Sub messages pulled by the subscriber on each invocation
233
+
234
+ ## Contributing
235
+
236
+ 1. Fork it
237
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
238
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
239
+ 4. Push to the branch (`git push origin my-new-feature`)
240
+ 5. Create a new Pull Request
241
+
242
+ ## TODO
243
+
244
+ - Add `tag` attribute in output plugin and use `tag` attribute as tag in input plugin.
245
+ - Send ack after other output plugin committed (if possible).
246
+
247
+ ## Authors
248
+
249
+ - [@mdoi](https://github.com/mdoi) : First author
250
+ - [@mia-0032](https://github.com/mia-0032) : This version author