deimos-ruby 2.0.15 → 2.0.16
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 +4 -0
- data/lib/deimos/backends/kafka.rb +0 -5
- data/lib/deimos/backends/kafka_async.rb +0 -5
- data/lib/deimos/ext/producer_metrics_listener.rb +25 -0
- data/lib/deimos/version.rb +1 -1
- data/lib/deimos.rb +3 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fda90b7f018f9ef696c574248a0bbeabfff39b0d9d6b50fbb0f674e0a46adb83
|
4
|
+
data.tar.gz: ef3134f7e7e30d4caa44537089350a5ce85c9b8db13ed065f69a2723d7a2b943
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31622734e2657cdf5643594a97b5b56d04bd5bdbf9a56aea73c264f8300ecb9993d09491532f636dd71d208b1dd22af3e2cba0fd91c31d682b7b01efc980c9cc
|
7
|
+
data.tar.gz: a4b370d783983c5062a892c408981ebeb28472199be9700c43a5d5871b74f3f90885b9ee8bc8dd9307a7162d512ad69dca2f48311e98a278f28b5d703f07f5dc
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## UNRELEASED
|
9
9
|
|
10
|
+
## 2.0.16 - 2025-05-30
|
11
|
+
|
12
|
+
- Fix: Send `publish` metric even if the producer was not a Deimos producer.
|
13
|
+
|
10
14
|
## 2.0.15 - 2025-05-29
|
11
15
|
|
12
16
|
- Fix: Do not force data to JSON when logging payloads. This allows log formatters to handle the payloads on their own (e.g. adding additional fields).
|
@@ -7,11 +7,6 @@ module Deimos
|
|
7
7
|
# :nodoc:
|
8
8
|
def self.execute(producer_class:, messages:)
|
9
9
|
Karafka.producer.produce_many_sync(messages)
|
10
|
-
Deimos.config.metrics&.increment(
|
11
|
-
'publish',
|
12
|
-
tags: %W(status:success topic:#{messages.first[:topic]}),
|
13
|
-
by: messages.size
|
14
|
-
)
|
15
10
|
end
|
16
11
|
end
|
17
12
|
end
|
@@ -7,11 +7,6 @@ module Deimos
|
|
7
7
|
# :nodoc:
|
8
8
|
def self.execute(producer_class:, messages:)
|
9
9
|
Karafka.producer.produce_many_async(messages)
|
10
|
-
Deimos.config.metrics&.increment(
|
11
|
-
'publish',
|
12
|
-
tags: %W(status:success topic:#{messages.first[:topic]}),
|
13
|
-
by: messages.size
|
14
|
-
)
|
15
10
|
end
|
16
11
|
end
|
17
12
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Deimos
|
4
|
+
class ProducerMetricsListener
|
5
|
+
%i[
|
6
|
+
produced_sync
|
7
|
+
produced_async
|
8
|
+
].each do |event_scope|
|
9
|
+
define_method(:"on_message_#{event_scope}") do |event|
|
10
|
+
Deimos.config.metrics&.increment(
|
11
|
+
'publish',
|
12
|
+
tags: %W(status:success topic:#{event[:message][:topic]})
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
define_method(:"on_messages_#{event_scope}") do |event|
|
17
|
+
Deimos.config.metrics&.increment(
|
18
|
+
'publish',
|
19
|
+
tags: %W(status:success topic:#{event[:messages].first[:topic]}),
|
20
|
+
by: event[:messages].size
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/deimos/version.rb
CHANGED
data/lib/deimos.rb
CHANGED
@@ -25,6 +25,7 @@ require 'deimos/ext/schema_route'
|
|
25
25
|
require 'deimos/ext/consumer_route'
|
26
26
|
require 'deimos/ext/producer_route'
|
27
27
|
require 'deimos/ext/producer_middleware'
|
28
|
+
require 'deimos/ext/producer_metrics_listener'
|
28
29
|
require 'deimos/ext/routing_defaults'
|
29
30
|
|
30
31
|
require 'deimos/railtie' if defined?(Rails)
|
@@ -146,6 +147,8 @@ module Deimos
|
|
146
147
|
Karafka::Setup::AttributesMap.producer(Karafka::Setup::Config.config.kafka.dup)
|
147
148
|
EVENT_TYPES.each { |type| Karafka.monitor.notifications_bus.register_event(type) }
|
148
149
|
|
150
|
+
Karafka.producer.monitor.subscribe(ProducerMetricsListener.new)
|
151
|
+
|
149
152
|
Karafka.producer.monitor.subscribe('error.occurred') do |event|
|
150
153
|
if event.payload.key?(:messages)
|
151
154
|
topic = event[:messages].first[:topic]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deimos-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Orner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: avro_turf
|
@@ -457,6 +457,7 @@ files:
|
|
457
457
|
- lib/deimos/consumer.rb
|
458
458
|
- lib/deimos/exceptions.rb
|
459
459
|
- lib/deimos/ext/consumer_route.rb
|
460
|
+
- lib/deimos/ext/producer_metrics_listener.rb
|
460
461
|
- lib/deimos/ext/producer_middleware.rb
|
461
462
|
- lib/deimos/ext/producer_route.rb
|
462
463
|
- lib/deimos/ext/routing_defaults.rb
|