racecar 2.0.0.beta3 → 2.0.0.beta4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb8fe69f83627b7d4171bbb4559fee8b28adf069546b41c62c566ae88e13047f
4
- data.tar.gz: d8df951b4b2dd42023d65af45db3e5dca5cff008b7ed16a0a021010f240eba70
3
+ metadata.gz: 122d0f341c95b64073cc1ff75891b59c08f9b841ef1245dd2d2a10c70b96677d
4
+ data.tar.gz: 3e2149507a928c8ecc89c706389d311c7852b4f22aa9d8036a5d0ca44cc4338a
5
5
  SHA512:
6
- metadata.gz: fd6c60e893a61255ec9c5326cb05a087d8883e8bcfa369570b1f60f6e02106992fda445f29378de69a6ab79a6ae96b41ed630591e58ccdad71f965e808c479d6
7
- data.tar.gz: e5b6d87edefe41262bc479d712160ebcc95ff3627ffeadd08d103d7eb030721e44e55d82895a2cffb8b5e594be211ea0f03f473eb503b2a3a02e760d5a1524d7
6
+ metadata.gz: f49748fe4e0a549effac3b728dd43edd0885df0a3954ef20daa35f3ac5f994ad582ca0a52ef65fb04dc8dc995f0f7e051c045a2edd5f01617ba3be2fd4d4d939
7
+ data.tar.gz: f6c118896b4c4a83be5350fbeb2b3ce3be57e18fb68811a39f7aa6dd69b78a174e7ed8bd5536a10210bc37bc979eb7d5c3006160e7c750e60ed9e9ecc767fcd1
data/README.md CHANGED
@@ -288,6 +288,9 @@ The memory usage limit is roughly estimated as `max_bytes * min_message_queue_si
288
288
  * `ssl_crl_location` – Path to CRL for verifying broker's certificate validity
289
289
  * `ssl_keystore_location` – Path to client's keystore (PKCS#12) used for authentication
290
290
  * `ssl_keystore_password` – Client's keystore (PKCS#12) password
291
+ * `ssl_certificate_location` – Path to the certificate
292
+ * `ssl_key_location` – Path to client's certificate used for authentication
293
+ * `ssl_key_password` – Client's certificate password
291
294
 
292
295
  #### SASL encryption, authentication & authorization
293
296
 
@@ -102,7 +102,12 @@ module Racecar
102
102
  opts.on("-r", "--require STRING", "Require a library before starting the consumer") do |lib|
103
103
  $LOAD_PATH.unshift(Dir.pwd) unless load_path_modified
104
104
  load_path_modified = true
105
- require lib
105
+ begin
106
+ require lib
107
+ rescue => e
108
+ $stderr.puts "=> #{lib} failed to load: #{e.message}"
109
+ exit
110
+ end
106
111
  end
107
112
 
108
113
  opts.on("-l", "--log STRING", "Log to the specified file") do |logfile|
@@ -82,6 +82,15 @@ module Racecar
82
82
  desc "Client's keystore (PKCS#12) password"
83
83
  string :ssl_keystore_password
84
84
 
85
+ desc "Path to the certificate used for authentication"
86
+ string :ssl_certificate_location
87
+
88
+ desc "Path to client's certificate used for authentication"
89
+ string :ssl_key_location
90
+
91
+ desc "Client's certificate password"
92
+ string :ssl_key_password
93
+
85
94
  desc "SASL mechanism to use for authentication"
86
95
  string :sasl_mechanism, allowed_values: %w{GSSAPI PLAIN SCRAM-SHA-256 SCRAM-SHA-512}
87
96
 
@@ -217,6 +226,9 @@ module Racecar
217
226
  "ssl.crl.location" => ssl_crl_location,
218
227
  "ssl.keystore.location" => ssl_keystore_location,
219
228
  "ssl.keystore.password" => ssl_keystore_password,
229
+ "ssl.certificate.location" => ssl_certificate_location,
230
+ "ssl.key.location" => ssl_key_location,
231
+ "ssl.key.password" => ssl_key_password,
220
232
  "sasl.mechanism" => sasl_mechanism,
221
233
  "sasl.kerberos.service.name" => sasl_kerberos_service_name,
222
234
  "sasl.kerberos.principal" => sasl_kerberos_principal,
@@ -26,7 +26,7 @@ module Racecar
26
26
  end
27
27
 
28
28
  def host
29
- @host ||= default_host
29
+ @host
30
30
  end
31
31
 
32
32
  def host=(host)
@@ -35,7 +35,7 @@ module Racecar
35
35
  end
36
36
 
37
37
  def port
38
- @port ||= default_port
38
+ @port
39
39
  end
40
40
 
41
41
  def port=(port)
@@ -63,22 +63,6 @@ module Racecar
63
63
 
64
64
  private
65
65
 
66
- def default_host
67
- if ::Datadog::Statsd.const_defined?(:Connection)
68
- ::Datadog::Statsd::Connection::DEFAULT_HOST
69
- else
70
- ::Datadog::Statsd::DEFAULT_HOST
71
- end
72
- end
73
-
74
- def default_port
75
- if ::Datadog::Statsd.const_defined?(:Connection)
76
- ::Datadog::Statsd::Connection::DEFAULT_PORT
77
- else
78
- ::Datadog::Statsd::DEFAULT_PORT
79
- end
80
- end
81
-
82
66
  def clear
83
67
  @statsd && @statsd.close
84
68
  @statsd = nil
@@ -126,6 +110,8 @@ module Racecar
126
110
  def process_batch(event)
127
111
  offset = event.payload.fetch(:last_offset)
128
112
  messages = event.payload.fetch(:message_count)
113
+ last_create_time = event.payload.fetch(:last_create_time)
114
+ time_lag = last_create_time && ((Time.now - last_create_time) * 1000).to_i
129
115
  tags = default_tags(event)
130
116
 
131
117
  if event.payload.key?(:exception)
@@ -135,7 +121,12 @@ module Racecar
135
121
  count("consumer.messages", messages, tags: tags)
136
122
  end
137
123
 
124
+ histogram("consumer.batch_size", messages, tags: tags)
138
125
  gauge("consumer.offset", offset, tags: tags)
126
+
127
+ if time_lag
128
+ gauge("consumer.time_lag", time_lag, tags: tags)
129
+ end
139
130
  end
140
131
 
141
132
  def join_group(event)
@@ -166,11 +166,16 @@ module Racecar
166
166
  }
167
167
 
168
168
  @instrumenter.instrument("start_process_message", instrumentation_payload)
169
- @instrumenter.instrument("process_message", instrumentation_payload) do
170
- with_pause(message.topic, message.partition, message.offset..message.offset) do
171
- processor.process(Racecar::Message.new(message))
172
- processor.deliver!
173
- consumer.store_offset(message)
169
+ with_pause(message.topic, message.partition, message.offset..message.offset) do
170
+ begin
171
+ @instrumenter.instrument("process_message", instrumentation_payload) do
172
+ processor.process(Racecar::Message.new(message))
173
+ processor.deliver!
174
+ consumer.store_offset(message)
175
+ end
176
+ rescue => e
177
+ config.error_handler.call(e, instrumentation_payload)
178
+ raise e
174
179
  end
175
180
  end
176
181
  end
@@ -183,15 +188,21 @@ module Racecar
183
188
  partition: first.partition,
184
189
  first_offset: first.offset,
185
190
  last_offset: last.offset,
191
+ last_create_time: last.timestamp,
186
192
  message_count: messages.size
187
193
  }
188
194
 
189
195
  @instrumenter.instrument("start_process_batch", instrumentation_payload)
190
196
  @instrumenter.instrument("process_batch", instrumentation_payload) do
191
197
  with_pause(first.topic, first.partition, first.offset..last.offset) do
192
- processor.process_batch(messages.map {|message| Racecar::Message.new(message) })
193
- processor.deliver!
194
- consumer.store_offset(messages.last)
198
+ begin
199
+ processor.process_batch(messages.map {|message| Racecar::Message.new(message) })
200
+ processor.deliver!
201
+ consumer.store_offset(messages.last)
202
+ rescue => e
203
+ config.error_handler.call(e, instrumentation_payload)
204
+ raise e
205
+ end
195
206
  end
196
207
  end
197
208
  end
@@ -1,3 +1,3 @@
1
1
  module Racecar
2
- VERSION = "2.0.0.beta3"
2
+ VERSION = "2.0.0.beta4"
3
3
  end
@@ -27,6 +27,6 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "rake", "> 10.0"
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
29
  spec.add_development_dependency "timecop"
30
- spec.add_development_dependency "dogstatsd-ruby", ">= 3.0.0", "< 5.0.0"
30
+ spec.add_development_dependency "dogstatsd-ruby", ">= 4.0.0", "< 5.0.0"
31
31
  spec.add_development_dependency "activesupport", ">= 4.0", "< 6.1"
32
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: racecar
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta3
4
+ version: 2.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Schierbeck
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-02-06 00:00:00.000000000 Z
12
+ date: 2020-02-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: king_konf
@@ -107,7 +107,7 @@ dependencies:
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 3.0.0
110
+ version: 4.0.0
111
111
  - - "<"
112
112
  - !ruby/object:Gem::Version
113
113
  version: 5.0.0
@@ -117,7 +117,7 @@ dependencies:
117
117
  requirements:
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 3.0.0
120
+ version: 4.0.0
121
121
  - - "<"
122
122
  - !ruby/object:Gem::Version
123
123
  version: 5.0.0