google-cloud-pubsub 3.4.0 → 3.4.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/CHANGELOG.md +6 -0
- data/lib/google/cloud/pubsub/async_publisher.rb +1 -1
- data/lib/google/cloud/pubsub/batch_publisher.rb +1 -1
- data/lib/google/cloud/pubsub/internal_logger.rb +1 -1
- data/lib/google/cloud/pubsub/message_listener/inventory.rb +1 -1
- data/lib/google/cloud/pubsub/message_listener/stream.rb +12 -12
- data/lib/google/cloud/pubsub/message_listener/timed_unary_buffer.rb +6 -2
- data/lib/google/cloud/pubsub/service.rb +8 -4
- data/lib/google/cloud/pubsub/version.rb +1 -1
- data/lib/google/cloud/pubsub.rb +0 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae1f8eddfa934835b8fc01e2a85606f9c93f7b353ca5b8d3ba328af3fc5e3cdc
|
|
4
|
+
data.tar.gz: 70d186ba6e4b8e8114ca6f2184d726acff47311f05906a51662227457c3ef6a1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0d199c7bda57c229e349ceeb21d38311c6388047ba728caaf8967e7cec0076a17af6dd55b1e0cbaad88a8a81ffdeed4814c367c617a25a643986b4a929a12cfe
|
|
7
|
+
data.tar.gz: cbfc81b692b367245d4d9b94282833805ee706588d61d2277bbfcfb4fff74e8b17c4aeae246f50e7d0f26f3f07b1862be088c42e92baf8b25ec7a47eb9302b73
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
### 3.4.1 (2026-08-24)
|
|
4
|
+
|
|
5
|
+
#### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* Propagate logger to v1 admin and schema clients ([#32440](https://github.com/googleapis/google-cloud-ruby/issues/32440)) ([#36298](https://github.com/googleapis/google-cloud-ruby/issues/36298))
|
|
8
|
+
|
|
3
9
|
### 3.4.0 (2026-07-29)
|
|
4
10
|
|
|
5
11
|
#### Features
|
|
@@ -379,7 +379,7 @@ module Google
|
|
|
379
379
|
grpc = @service.publish topic_name,
|
|
380
380
|
items.map(&:msg),
|
|
381
381
|
compress: compress && batch.total_message_bytes >= compression_bytes_threshold
|
|
382
|
-
service.
|
|
382
|
+
service.internal_logger.log_batch "publish-batch", reason, "publish", items.count, items.sum(&:bytesize)
|
|
383
383
|
items.zip Array(grpc.message_ids) do |item, id|
|
|
384
384
|
@flow_controller.release item.bytesize
|
|
385
385
|
next unless item.callback
|
|
@@ -122,7 +122,7 @@ module Google
|
|
|
122
122
|
grpc = service.publish topic_name,
|
|
123
123
|
messages,
|
|
124
124
|
compress: compress && total_message_bytes >= compression_bytes_threshold
|
|
125
|
-
service.
|
|
125
|
+
service.internal_logger.log_batch "publish-batch", reason, "publish", messages.count, @total_message_bytes
|
|
126
126
|
to_gcloud_messages Array(grpc.message_ids)
|
|
127
127
|
end
|
|
128
128
|
end
|
|
@@ -31,7 +31,7 @@ module Google
|
|
|
31
31
|
def log level, subtag, &message_block
|
|
32
32
|
return unless VALID_LOG_LEVELS.include?(level) && block_given?
|
|
33
33
|
# Only log if the logger is explicitly tagged for 'pubsub'.
|
|
34
|
-
return unless @logger && @logger.progname == LOG_NAME
|
|
34
|
+
return unless @logger.respond_to?(:progname) && @logger.progname == LOG_NAME
|
|
35
35
|
|
|
36
36
|
@logger.public_send(level, "#{LOG_NAME}:#{subtag}", &message_block)
|
|
37
37
|
end
|
|
@@ -86,7 +86,7 @@ module Google
|
|
|
86
86
|
extension_time = Time.new - extension
|
|
87
87
|
expired, keep = @inventory.partition { |_ack_id, item| item.pulled_at < extension_time }
|
|
88
88
|
@inventory = keep.to_h
|
|
89
|
-
stream.subscriber.service.
|
|
89
|
+
stream.subscriber.service.internal_logger.log_expiry expired
|
|
90
90
|
@wait_cond.broadcast
|
|
91
91
|
end
|
|
92
92
|
end
|
|
@@ -115,7 +115,7 @@ module Google
|
|
|
115
115
|
synchronize do
|
|
116
116
|
break if @stopped
|
|
117
117
|
|
|
118
|
-
subscriber.service.
|
|
118
|
+
subscriber.service.internal_logger.log :info, "subscriber-streams" do
|
|
119
119
|
"stopping stream for subscription #{@subscriber.subscription_name}"
|
|
120
120
|
end
|
|
121
121
|
# Close the stream by pushing the sentinel value.
|
|
@@ -185,13 +185,13 @@ module Google
|
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
def log_info msg
|
|
188
|
-
subscriber.service.
|
|
188
|
+
subscriber.service.internal_logger.log :info, "subscriber-streams" do
|
|
189
189
|
msg
|
|
190
190
|
end
|
|
191
191
|
end
|
|
192
192
|
|
|
193
193
|
def log_error msg
|
|
194
|
-
subscriber.service.
|
|
194
|
+
subscriber.service.internal_logger.log :error, "subscriber-streams" do
|
|
195
195
|
msg
|
|
196
196
|
end
|
|
197
197
|
end
|
|
@@ -289,7 +289,7 @@ module Google
|
|
|
289
289
|
synchronize do
|
|
290
290
|
# Don't allow a stream to restart if already stopped
|
|
291
291
|
if @stopped
|
|
292
|
-
subscriber.service.
|
|
292
|
+
subscriber.service.internal_logger.log :debug, "subscriber-streams" do
|
|
293
293
|
"not filling stream for subscription #{@subscriber.subscription_name} because stream is already" \
|
|
294
294
|
" stopped"
|
|
295
295
|
end
|
|
@@ -319,7 +319,7 @@ module Google
|
|
|
319
319
|
@stream_open = false
|
|
320
320
|
end
|
|
321
321
|
enum = @subscriber.service.streaming_pull @request_queue.each, options
|
|
322
|
-
subscriber.service.
|
|
322
|
+
subscriber.service.internal_logger.log :info, "subscriber-streams" do
|
|
323
323
|
"rpc: streamingPull, subscription: #{@subscriber.subscription_name}, stream opened"
|
|
324
324
|
end
|
|
325
325
|
|
|
@@ -396,7 +396,7 @@ module Google
|
|
|
396
396
|
GRPC::ResourceExhausted, GRPC::Unauthenticated,
|
|
397
397
|
GRPC::Unavailable => e
|
|
398
398
|
status_code = e.respond_to?(:code) ? e.code : e.class.name
|
|
399
|
-
subscriber.service.
|
|
399
|
+
subscriber.service.internal_logger.log :error, "subscriber-streams" do
|
|
400
400
|
"Subscriber stream for subscription #{@subscriber.subscription_name} has ended with status " \
|
|
401
401
|
"#{status_code}; will be retried."
|
|
402
402
|
end
|
|
@@ -404,13 +404,13 @@ module Google
|
|
|
404
404
|
backoff_and_wait!
|
|
405
405
|
retry
|
|
406
406
|
rescue RestartStream
|
|
407
|
-
subscriber.service.
|
|
407
|
+
subscriber.service.internal_logger.log :info, "subscriber-streams" do
|
|
408
408
|
"Subscriber stream for subscription #{@subscriber.subscription_name} has ended; will be retried."
|
|
409
409
|
end
|
|
410
410
|
backoff_and_wait!
|
|
411
411
|
retry
|
|
412
412
|
rescue StandardError => e
|
|
413
|
-
subscriber.service.
|
|
413
|
+
subscriber.service.internal_logger.log :error, "subscriber-streams" do
|
|
414
414
|
"error on stream for subscription #{@subscriber.subscription_name}: #{e.inspect}"
|
|
415
415
|
end
|
|
416
416
|
@subscriber.error! e
|
|
@@ -463,12 +463,12 @@ module Google
|
|
|
463
463
|
end
|
|
464
464
|
|
|
465
465
|
def perform_callback_sync rec_msg
|
|
466
|
-
subscriber.service.
|
|
466
|
+
subscriber.service.internal_logger.log :info, "callback-delivery" do
|
|
467
467
|
"message (ID #{rec_msg.message_id}, ackID #{rec_msg.ack_id}) delivery to user callbacks"
|
|
468
468
|
end
|
|
469
469
|
@subscriber.callback.call rec_msg unless stopped?
|
|
470
470
|
rescue StandardError => e
|
|
471
|
-
subscriber.service.
|
|
471
|
+
subscriber.service.internal_logger.log :info, "callback-exceptions" do
|
|
472
472
|
"message (ID #{rec_msg.message_id}, ackID #{rec_msg.ack_id}) caused a user callback exception: " \
|
|
473
473
|
"#{e.inspect}"
|
|
474
474
|
end
|
|
@@ -498,7 +498,7 @@ module Google
|
|
|
498
498
|
return unless pause_streaming?
|
|
499
499
|
|
|
500
500
|
@paused = true
|
|
501
|
-
subscriber.service.
|
|
501
|
+
subscriber.service.internal_logger.log :info, "subscriber-flow-control" do
|
|
502
502
|
"subscriber for #{@subscriber.subscription_name} is client-side flow control blocked"
|
|
503
503
|
end
|
|
504
504
|
end
|
|
@@ -519,7 +519,7 @@ module Google
|
|
|
519
519
|
# leaving last_pong_at stale. Updating timestamp guarantees the monitor thread will not trigger an immediate
|
|
520
520
|
# false-positive restart while the reader thread wakes up to drain buffered frames.
|
|
521
521
|
@keepalive_monitor.record_pong!
|
|
522
|
-
subscriber.service.
|
|
522
|
+
subscriber.service.internal_logger.log :info, "subscriber-flow-control" do
|
|
523
523
|
"subscriber for #{@subscriber.subscription_name} is unblocking client-side flow control"
|
|
524
524
|
end
|
|
525
525
|
# Signal to the background thread that we are unpaused
|
|
@@ -320,7 +320,9 @@ module Google
|
|
|
320
320
|
reason
|
|
321
321
|
end
|
|
322
322
|
requests[:acknowledge].each do |req|
|
|
323
|
-
@subscriber.service.
|
|
323
|
+
@subscriber.service.internal_logger.log_batch(
|
|
324
|
+
"ack-batch", new_reason, "ack", req.ack_ids.length, req.to_proto.bytesize
|
|
325
|
+
)
|
|
324
326
|
end
|
|
325
327
|
end
|
|
326
328
|
requests[:modify_ack_deadline] =
|
|
@@ -329,7 +331,9 @@ module Google
|
|
|
329
331
|
type = mod_deadline.zero? ? "nack" : "modack"
|
|
330
332
|
new_reason = mod_ack_reqs.length > 1 ? "#{reason} and partitioned for exceeding max bytes" : reason
|
|
331
333
|
mod_ack_reqs.each do |req|
|
|
332
|
-
@subscriber.service.
|
|
334
|
+
@subscriber.service.internal_logger.log_batch(
|
|
335
|
+
"ack-batch", new_reason, type, req.ack_ids.length, req.to_proto.bytesize
|
|
336
|
+
)
|
|
333
337
|
end
|
|
334
338
|
mod_ack_reqs
|
|
335
339
|
end.flatten
|
|
@@ -43,7 +43,7 @@ module Google
|
|
|
43
43
|
|
|
44
44
|
##
|
|
45
45
|
# @private The InternalLogger object.
|
|
46
|
-
attr_reader :
|
|
46
|
+
attr_reader :internal_logger
|
|
47
47
|
|
|
48
48
|
##
|
|
49
49
|
# Creates a new Service instance.
|
|
@@ -55,6 +55,7 @@ module Google
|
|
|
55
55
|
@client_id = SecureRandom.uuid.freeze
|
|
56
56
|
@universe_domain = universe_domain || ENV["GOOGLE_CLOUD_UNIVERSE_DOMAIN"] || "googleapis.com"
|
|
57
57
|
@logger = logger
|
|
58
|
+
@internal_logger = InternalLogger.new logger
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
def subscription_admin
|
|
@@ -67,6 +68,7 @@ module Google
|
|
|
67
68
|
config.lib_name = "gccl"
|
|
68
69
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
|
69
70
|
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
|
71
|
+
config.logger = @logger if @logger
|
|
70
72
|
end
|
|
71
73
|
end
|
|
72
74
|
attr_accessor :mocked_subscription_admin
|
|
@@ -81,6 +83,7 @@ module Google
|
|
|
81
83
|
config.lib_name = "gccl"
|
|
82
84
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
|
83
85
|
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
|
86
|
+
config.logger = @logger if @logger
|
|
84
87
|
end
|
|
85
88
|
end
|
|
86
89
|
attr_accessor :mocked_topic_admin
|
|
@@ -94,6 +97,7 @@ module Google
|
|
|
94
97
|
config.lib_name = "gccl"
|
|
95
98
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
|
96
99
|
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
|
100
|
+
config.logger = @logger if @logger
|
|
97
101
|
end
|
|
98
102
|
iam
|
|
99
103
|
end
|
|
@@ -110,6 +114,7 @@ module Google
|
|
|
110
114
|
config.lib_name = "gccl"
|
|
111
115
|
config.lib_version = Google::Cloud::PubSub::VERSION
|
|
112
116
|
config.metadata = { "google-cloud-resource-prefix": "projects/#{@project}" }
|
|
117
|
+
config.logger = @logger if @logger
|
|
113
118
|
end
|
|
114
119
|
end
|
|
115
120
|
attr_accessor :mocked_schemas
|
|
@@ -147,7 +152,7 @@ module Google
|
|
|
147
152
|
##
|
|
148
153
|
# Acknowledges receipt of a message.
|
|
149
154
|
def acknowledge subscription, *ack_ids
|
|
150
|
-
|
|
155
|
+
internal_logger.log_ack_nack ack_ids, "ack"
|
|
151
156
|
subscription_admin.acknowledge_internal subscription: subscription_path(subscription),
|
|
152
157
|
ack_ids: ack_ids
|
|
153
158
|
end
|
|
@@ -156,7 +161,7 @@ module Google
|
|
|
156
161
|
# Modifies the ack deadline for a specific message.
|
|
157
162
|
def modify_ack_deadline subscription, ids, deadline
|
|
158
163
|
if deadline.zero?
|
|
159
|
-
|
|
164
|
+
internal_logger.log_ack_nack Array(ids), "nack"
|
|
160
165
|
end
|
|
161
166
|
subscription_admin.modify_ack_deadline_internal subscription: subscription_path(subscription),
|
|
162
167
|
ack_ids: Array(ids),
|
|
@@ -203,7 +208,6 @@ module Google
|
|
|
203
208
|
rpc.timeout = timeout if rpc.respond_to? :timeout=
|
|
204
209
|
end
|
|
205
210
|
end
|
|
206
|
-
|
|
207
211
|
end
|
|
208
212
|
end
|
|
209
213
|
Pubsub = PubSub unless const_defined? :Pubsub
|
data/lib/google/cloud/pubsub.rb
CHANGED
|
@@ -122,7 +122,6 @@ module Google
|
|
|
122
122
|
project_id = project_id.to_s # Always cast to a string
|
|
123
123
|
raise ArgumentError, "project_id is missing" if project_id.empty?
|
|
124
124
|
|
|
125
|
-
logger = Google::Cloud::PubSub::InternalLogger.new logger
|
|
126
125
|
service = PubSub::Service.new project_id, credentials,
|
|
127
126
|
host: endpoint,
|
|
128
127
|
timeout: timeout,
|