fluent-plugin-gcloud-pubsub-custom 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +3 -0
- data/fluent-plugin-gcloud-pubsub-custom.gemspec +1 -1
- data/lib/fluent/plugin/out_gcloud_pubsub.rb +6 -0
- data/test/plugin/test_out_gcloud_pubsub.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: 9db89e553b8ed2af172483421345f062fb457bdb
|
4
|
+
data.tar.gz: 6a48713f2def51581fcd5745b513a8b5d2f17970
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d57966e03358dd7d660f3448ac9106a36496643f9f7109fa75f87f0294bd596775c4ccb7703f689e03de844d7826dc0376858c910b9fa4d02d86af7b4a58f645
|
7
|
+
data.tar.gz: 757ee54ba5d8ccb9872535819cb27242642541cb0b2cb18f7802b8e2f95037ee191cfbaf10616ec7e7a22913c1ba7fb9fa7afb442b92d09c42e9ebced80ac1e8
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -48,6 +48,7 @@ Use `gcloud_pubsub` output plugin.
|
|
48
48
|
autocreate_topic false
|
49
49
|
max_messages 1000
|
50
50
|
max_total_size 9800000
|
51
|
+
max_message_size 4000000
|
51
52
|
buffer_type file
|
52
53
|
buffer_path /path/to/your/buffer
|
53
54
|
flush_interval 1s
|
@@ -74,6 +75,8 @@ Use `gcloud_pubsub` output plugin.
|
|
74
75
|
- `max_total_size` (optional, default: `9800000` = `9.8MB`)
|
75
76
|
- Publishing messages bytesize per request to Cloud Pub/Sub. This parameter affects only message size. You should specify a little smaller value than quota.
|
76
77
|
- See https://cloud.google.com/pubsub/quotas#other_limits
|
78
|
+
- `max_message_size` (optional, default: `4000000` = `4MB`)
|
79
|
+
- Messages exceeding `max_message_size` are not published because Pub/Sub clients cannot receive it.
|
77
80
|
- `buffer_type`, `buffer_path`, `flush_interval`, `try_flush_interval`
|
78
81
|
- These are fluentd buffer configuration. See http://docs.fluentd.org/articles/buffer-plugin-overview
|
79
82
|
- `format` (optional, default: `json`)
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.license = "MIT"
|
8
8
|
gem.homepage = "https://github.com/mia-0032/fluent-plugin-gcloud-pubsub-custom"
|
9
9
|
gem.summary = gem.description
|
10
|
-
gem.version = "0.4.
|
10
|
+
gem.version = "0.4.6"
|
11
11
|
gem.authors = ["Yoshihiro MIYAI"]
|
12
12
|
gem.email = "msparrow17@gmail.com"
|
13
13
|
gem.has_rdoc = false
|
@@ -25,6 +25,8 @@ module Fluent
|
|
25
25
|
config_param :max_messages, :integer, :default => 1000
|
26
26
|
desc 'Publishing messages bytesize per request to Cloud Pub/Sub.'
|
27
27
|
config_param :max_total_size, :integer, :default => 9800000 # 9.8MB
|
28
|
+
desc 'Limit bytesize per message.'
|
29
|
+
config_param :max_message_size, :integer, :default => 4000000 # 4MB
|
28
30
|
desc 'Set output format.'
|
29
31
|
config_param :format, :string, :default => 'json'
|
30
32
|
|
@@ -57,6 +59,10 @@ module Fluent
|
|
57
59
|
size = 0
|
58
60
|
|
59
61
|
chunk.msgpack_each do |msg|
|
62
|
+
if msg.bytesize > @max_message_size
|
63
|
+
log.warn 'Drop a message because its size exceeds `max_message_size`', size: msg.bytesize
|
64
|
+
next
|
65
|
+
end
|
60
66
|
if messages.length + 1 > @max_messages || size + msg.bytesize > @max_total_size
|
61
67
|
publish messages
|
62
68
|
messages = []
|
@@ -31,6 +31,7 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
|
|
31
31
|
assert_equal(false, d.instance.autocreate_topic)
|
32
32
|
assert_equal(1000, d.instance.max_messages)
|
33
33
|
assert_equal(9800000, d.instance.max_total_size)
|
34
|
+
assert_equal(4000000, d.instance.max_message_size)
|
34
35
|
end
|
35
36
|
|
36
37
|
test '"topic" must be specified' do
|
@@ -146,6 +147,19 @@ class GcloudPubSubOutputTest < Test::Unit::TestCase
|
|
146
147
|
d.run
|
147
148
|
end
|
148
149
|
|
150
|
+
test 'messages exceeding "max_message_size" are not published' do
|
151
|
+
d = create_driver(%[
|
152
|
+
project project-test
|
153
|
+
topic topic-test
|
154
|
+
key key-test
|
155
|
+
max_message_size 1000
|
156
|
+
])
|
157
|
+
|
158
|
+
@publisher.publish.times(0)
|
159
|
+
d.emit({"a" => "a" * 1000}, @time)
|
160
|
+
d.run
|
161
|
+
end
|
162
|
+
|
149
163
|
test 'accept "ASCII-8BIT" encoded multibyte strings' do
|
150
164
|
# on fluentd v0.14, all strings treated as "ASCII-8BIT" except specified encoding.
|
151
165
|
d = create_driver
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-gcloud-pubsub-custom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoshihiro MIYAI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|