sentry-rails 6.6.2 → 6.7.0
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/.gitignore +1 -1
- data/Gemfile +50 -0
- data/README.md +1 -1
- data/bin/test +12 -386
- data/bin/test_old +389 -0
- data/gemfiles/ruby-2.7_rails-5.2.0.gemfile.lock +266 -0
- data/gemfiles/ruby-2.7_rails-6.0.0.gemfile.lock +282 -0
- data/gemfiles/ruby-2.7_rails-6.1.0.gemfile.lock +294 -0
- data/gemfiles/ruby-2.7_rails-7.0.0.gemfile.lock +311 -0
- data/gemfiles/ruby-2.7_rails-7.1.0.gemfile.lock +348 -0
- data/gemfiles/ruby-3.0_rails-6.1.0.gemfile.lock +362 -0
- data/gemfiles/ruby-3.0_rails-7.0.0.gemfile.lock +379 -0
- data/gemfiles/ruby-3.0_rails-7.1.0.gemfile.lock +405 -0
- data/gemfiles/ruby-3.1_rails-6.1.0.gemfile.lock +493 -0
- data/gemfiles/ruby-3.1_rails-7.0.0.gemfile.lock +513 -0
- data/gemfiles/ruby-3.1_rails-7.1.0.gemfile.lock +547 -0
- data/gemfiles/ruby-3.1_rails-7.2.0.gemfile.lock +541 -0
- data/gemfiles/ruby-3.2_rails-6.1.0.gemfile.lock +493 -0
- data/gemfiles/ruby-3.2_rails-7.0.0.gemfile.lock +511 -0
- data/gemfiles/ruby-3.2_rails-7.1.0.gemfile.lock +553 -0
- data/gemfiles/ruby-3.2_rails-7.2.0.gemfile.lock +545 -0
- data/gemfiles/ruby-3.2_rails-8.0.0.gemfile.lock +544 -0
- data/gemfiles/ruby-3.3_rails-6.1.0.gemfile.lock +493 -0
- data/gemfiles/ruby-3.3_rails-7.0.0.gemfile.lock +511 -0
- data/gemfiles/ruby-3.3_rails-7.1.0.gemfile.lock +553 -0
- data/gemfiles/ruby-3.3_rails-7.2.0.gemfile.lock +545 -0
- data/gemfiles/ruby-3.3_rails-8.0.0.gemfile.lock +544 -0
- data/gemfiles/ruby-3.4_rails-7.1.0.gemfile.lock +534 -0
- data/gemfiles/ruby-3.4_rails-7.2.0.gemfile.lock +528 -0
- data/gemfiles/ruby-3.4_rails-8.0.0.gemfile.lock +523 -0
- data/gemfiles/ruby-3.4_rails-8.1.3.gemfile.lock +527 -0
- data/gemfiles/ruby-4.0_rails-6.1.0.gemfile.lock +476 -0
- data/gemfiles/ruby-4.0_rails-7.0.0.gemfile.lock +492 -0
- data/gemfiles/ruby-4.0_rails-7.1.0.gemfile.lock +534 -0
- data/gemfiles/ruby-4.0_rails-8.0.0.gemfile.lock +523 -0
- data/gemfiles/ruby-4.0_rails-8.1.3.gemfile.lock +527 -0
- data/gemfiles/ruby-jruby-9.4.14.0_rails-6.1.0.gemfile.lock +369 -0
- data/gemfiles/ruby-jruby-9.4.14.0_rails-7.0.0.gemfile.lock +391 -0
- data/gemfiles/ruby-jruby-9.4.14.0_rails-7.1.0.gemfile.lock +425 -0
- data/lib/sentry/rails/active_job.rb +177 -24
- data/lib/sentry/rails/capture_exceptions.rb +5 -1
- data/lib/sentry/rails/configuration.rb +6 -0
- data/lib/sentry/rails/error_reporter_context.rb +26 -0
- data/lib/sentry/rails/railtie.rb +7 -0
- data/lib/sentry/rails/serializer.rb +35 -0
- data/lib/sentry/rails/version.rb +1 -1
- data/sentry-rails.gemspec +2 -2
- metadata +45 -8
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
GIT
|
|
2
|
+
remote: https://github.com/ruby/debug.git
|
|
3
|
+
revision: 6510cfbc7496c55ebbefa437a25c17ca58f7c5eb
|
|
4
|
+
specs:
|
|
5
|
+
|
|
6
|
+
PATH
|
|
7
|
+
remote: ../../sentry-ruby
|
|
8
|
+
specs:
|
|
9
|
+
sentry-ruby (6.6.2)
|
|
10
|
+
bigdecimal
|
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
12
|
+
logger
|
|
13
|
+
|
|
14
|
+
PATH
|
|
15
|
+
remote: ..
|
|
16
|
+
specs:
|
|
17
|
+
sentry-rails (6.6.2)
|
|
18
|
+
railties (>= 5.2.0)
|
|
19
|
+
sentry-ruby (~> 6.6.2)
|
|
20
|
+
|
|
21
|
+
GEM
|
|
22
|
+
remote: https://rubygems.org/
|
|
23
|
+
specs:
|
|
24
|
+
actioncable (7.1.6)
|
|
25
|
+
actionpack (= 7.1.6)
|
|
26
|
+
activesupport (= 7.1.6)
|
|
27
|
+
nio4r (~> 2.0)
|
|
28
|
+
websocket-driver (>= 0.6.1)
|
|
29
|
+
zeitwerk (~> 2.6)
|
|
30
|
+
actionmailbox (7.1.6)
|
|
31
|
+
actionpack (= 7.1.6)
|
|
32
|
+
activejob (= 7.1.6)
|
|
33
|
+
activerecord (= 7.1.6)
|
|
34
|
+
activestorage (= 7.1.6)
|
|
35
|
+
activesupport (= 7.1.6)
|
|
36
|
+
mail (>= 2.7.1)
|
|
37
|
+
net-imap
|
|
38
|
+
net-pop
|
|
39
|
+
net-smtp
|
|
40
|
+
actionmailer (7.1.6)
|
|
41
|
+
actionpack (= 7.1.6)
|
|
42
|
+
actionview (= 7.1.6)
|
|
43
|
+
activejob (= 7.1.6)
|
|
44
|
+
activesupport (= 7.1.6)
|
|
45
|
+
mail (~> 2.5, >= 2.5.4)
|
|
46
|
+
net-imap
|
|
47
|
+
net-pop
|
|
48
|
+
net-smtp
|
|
49
|
+
rails-dom-testing (~> 2.2)
|
|
50
|
+
actionpack (7.1.6)
|
|
51
|
+
actionview (= 7.1.6)
|
|
52
|
+
activesupport (= 7.1.6)
|
|
53
|
+
cgi
|
|
54
|
+
nokogiri (>= 1.8.5)
|
|
55
|
+
racc
|
|
56
|
+
rack (>= 2.2.4)
|
|
57
|
+
rack-session (>= 1.0.1)
|
|
58
|
+
rack-test (>= 0.6.3)
|
|
59
|
+
rails-dom-testing (~> 2.2)
|
|
60
|
+
rails-html-sanitizer (~> 1.6)
|
|
61
|
+
actiontext (7.1.6)
|
|
62
|
+
actionpack (= 7.1.6)
|
|
63
|
+
activerecord (= 7.1.6)
|
|
64
|
+
activestorage (= 7.1.6)
|
|
65
|
+
activesupport (= 7.1.6)
|
|
66
|
+
globalid (>= 0.6.0)
|
|
67
|
+
nokogiri (>= 1.8.5)
|
|
68
|
+
actionview (7.1.6)
|
|
69
|
+
activesupport (= 7.1.6)
|
|
70
|
+
builder (~> 3.1)
|
|
71
|
+
cgi
|
|
72
|
+
erubi (~> 1.11)
|
|
73
|
+
rails-dom-testing (~> 2.2)
|
|
74
|
+
rails-html-sanitizer (~> 1.6)
|
|
75
|
+
activejob (7.1.6)
|
|
76
|
+
activesupport (= 7.1.6)
|
|
77
|
+
globalid (>= 0.3.6)
|
|
78
|
+
activemodel (7.1.6)
|
|
79
|
+
activesupport (= 7.1.6)
|
|
80
|
+
activerecord (7.1.6)
|
|
81
|
+
activemodel (= 7.1.6)
|
|
82
|
+
activesupport (= 7.1.6)
|
|
83
|
+
timeout (>= 0.4.0)
|
|
84
|
+
activerecord-jdbc-adapter (71.0-java)
|
|
85
|
+
activerecord (~> 7.1.3)
|
|
86
|
+
activerecord-jdbcmysql-adapter (71.0-java)
|
|
87
|
+
activerecord-jdbc-adapter (= 71.0)
|
|
88
|
+
jdbc-mysql (>= 5.1.36, < 9)
|
|
89
|
+
activestorage (7.1.6)
|
|
90
|
+
actionpack (= 7.1.6)
|
|
91
|
+
activejob (= 7.1.6)
|
|
92
|
+
activerecord (= 7.1.6)
|
|
93
|
+
activesupport (= 7.1.6)
|
|
94
|
+
marcel (~> 1.0)
|
|
95
|
+
activesupport (7.1.6)
|
|
96
|
+
base64
|
|
97
|
+
benchmark (>= 0.3)
|
|
98
|
+
bigdecimal
|
|
99
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
100
|
+
connection_pool (>= 2.2.5)
|
|
101
|
+
drb
|
|
102
|
+
i18n (>= 1.6, < 2)
|
|
103
|
+
logger (>= 1.4.2)
|
|
104
|
+
minitest (>= 5.1)
|
|
105
|
+
mutex_m
|
|
106
|
+
securerandom (>= 0.3)
|
|
107
|
+
tzinfo (~> 2.0)
|
|
108
|
+
base64 (0.3.0)
|
|
109
|
+
benchmark (0.5.0)
|
|
110
|
+
benchmark-ips (2.5.0)
|
|
111
|
+
benchmark-ipsa (0.2.0)
|
|
112
|
+
benchmark-ips (~> 2.5.0)
|
|
113
|
+
memory_profiler (~> 0.9.6)
|
|
114
|
+
benchmark-memory (0.1.2)
|
|
115
|
+
memory_profiler (~> 0.9)
|
|
116
|
+
benchmark_driver (0.16.5)
|
|
117
|
+
bigdecimal (4.1.2-java)
|
|
118
|
+
builder (3.3.0)
|
|
119
|
+
cgi (0.5.2-java)
|
|
120
|
+
concurrent-ruby (1.3.8)
|
|
121
|
+
connection_pool (2.5.5)
|
|
122
|
+
crass (1.0.7)
|
|
123
|
+
date (3.5.1-java)
|
|
124
|
+
diff-lcs (1.6.2)
|
|
125
|
+
docile (1.4.1)
|
|
126
|
+
drb (2.2.3)
|
|
127
|
+
erb (4.0.4.1-java)
|
|
128
|
+
cgi (>= 0.3.3)
|
|
129
|
+
erubi (1.13.1)
|
|
130
|
+
et-orbi (1.4.1)
|
|
131
|
+
tzinfo
|
|
132
|
+
fugit (1.13.0)
|
|
133
|
+
et-orbi (~> 1.4)
|
|
134
|
+
raabro (~> 1.4)
|
|
135
|
+
globalid (1.4.0)
|
|
136
|
+
activesupport (>= 6.1)
|
|
137
|
+
i18n (1.15.2)
|
|
138
|
+
concurrent-ruby (~> 1.0)
|
|
139
|
+
io-console (0.8.2-java)
|
|
140
|
+
irb (1.18.0)
|
|
141
|
+
pp (>= 0.6.0)
|
|
142
|
+
prism (>= 1.3.0)
|
|
143
|
+
rdoc (>= 4.0.0)
|
|
144
|
+
reline (>= 0.4.2)
|
|
145
|
+
jar-dependencies (0.5.7)
|
|
146
|
+
jdbc-mysql (8.4.0.1)
|
|
147
|
+
jdbc-sqlite3 (3.46.1.1)
|
|
148
|
+
logger (1.7.0)
|
|
149
|
+
loofah (2.25.2)
|
|
150
|
+
crass (~> 1.0.2)
|
|
151
|
+
nokogiri (>= 1.12.0)
|
|
152
|
+
mail (2.9.1)
|
|
153
|
+
logger
|
|
154
|
+
mini_mime (>= 0.1.1)
|
|
155
|
+
net-imap
|
|
156
|
+
net-pop
|
|
157
|
+
net-smtp
|
|
158
|
+
marcel (1.2.1)
|
|
159
|
+
memory_profiler (0.9.14)
|
|
160
|
+
mini_magick (5.3.2)
|
|
161
|
+
logger
|
|
162
|
+
mini_mime (1.1.5)
|
|
163
|
+
minitest (5.27.0)
|
|
164
|
+
mutex_m (0.3.0)
|
|
165
|
+
net-imap (0.5.15)
|
|
166
|
+
date
|
|
167
|
+
net-protocol
|
|
168
|
+
net-pop (0.1.2)
|
|
169
|
+
net-protocol
|
|
170
|
+
net-protocol (0.2.2)
|
|
171
|
+
timeout
|
|
172
|
+
net-smtp (0.5.1)
|
|
173
|
+
net-protocol
|
|
174
|
+
nio4r (2.7.5-java)
|
|
175
|
+
nokogiri (1.18.10-java)
|
|
176
|
+
racc (~> 1.4)
|
|
177
|
+
pp (0.6.4)
|
|
178
|
+
prettyprint
|
|
179
|
+
prettyprint (0.2.0)
|
|
180
|
+
prism (1.9.0)
|
|
181
|
+
psych (4.0.6-java)
|
|
182
|
+
jar-dependencies (>= 0.1.7)
|
|
183
|
+
raabro (1.5.0)
|
|
184
|
+
racc (1.8.1-java)
|
|
185
|
+
rack (3.2.6)
|
|
186
|
+
rack-session (2.1.2)
|
|
187
|
+
base64 (>= 0.1.0)
|
|
188
|
+
rack (>= 3.0.0)
|
|
189
|
+
rack-test (2.2.0)
|
|
190
|
+
rack (>= 1.3)
|
|
191
|
+
rackup (2.3.1)
|
|
192
|
+
rack (>= 3)
|
|
193
|
+
rails (7.1.6)
|
|
194
|
+
actioncable (= 7.1.6)
|
|
195
|
+
actionmailbox (= 7.1.6)
|
|
196
|
+
actionmailer (= 7.1.6)
|
|
197
|
+
actionpack (= 7.1.6)
|
|
198
|
+
actiontext (= 7.1.6)
|
|
199
|
+
actionview (= 7.1.6)
|
|
200
|
+
activejob (= 7.1.6)
|
|
201
|
+
activemodel (= 7.1.6)
|
|
202
|
+
activerecord (= 7.1.6)
|
|
203
|
+
activestorage (= 7.1.6)
|
|
204
|
+
activesupport (= 7.1.6)
|
|
205
|
+
bundler (>= 1.15.0)
|
|
206
|
+
railties (= 7.1.6)
|
|
207
|
+
rails-dom-testing (2.3.0)
|
|
208
|
+
activesupport (>= 5.0.0)
|
|
209
|
+
minitest
|
|
210
|
+
nokogiri (>= 1.6)
|
|
211
|
+
rails-html-sanitizer (1.7.1)
|
|
212
|
+
loofah (~> 2.25, >= 2.25.2)
|
|
213
|
+
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
|
214
|
+
railties (7.1.6)
|
|
215
|
+
actionpack (= 7.1.6)
|
|
216
|
+
activesupport (= 7.1.6)
|
|
217
|
+
cgi
|
|
218
|
+
irb
|
|
219
|
+
rackup (>= 1.0.0)
|
|
220
|
+
rake (>= 12.2)
|
|
221
|
+
thor (~> 1.0, >= 1.2.2)
|
|
222
|
+
tsort (>= 0.2)
|
|
223
|
+
zeitwerk (~> 2.6)
|
|
224
|
+
rake (12.3.3)
|
|
225
|
+
rdoc (7.2.0)
|
|
226
|
+
erb
|
|
227
|
+
psych (>= 4.0.0)
|
|
228
|
+
tsort
|
|
229
|
+
reline (0.6.3)
|
|
230
|
+
io-console (~> 0.5)
|
|
231
|
+
rexml (3.4.1)
|
|
232
|
+
rspec (3.13.2)
|
|
233
|
+
rspec-core (~> 3.13.0)
|
|
234
|
+
rspec-expectations (~> 3.13.0)
|
|
235
|
+
rspec-mocks (~> 3.13.0)
|
|
236
|
+
rspec-core (3.13.6)
|
|
237
|
+
rspec-support (~> 3.13.0)
|
|
238
|
+
rspec-expectations (3.13.5)
|
|
239
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
240
|
+
rspec-support (~> 3.13.0)
|
|
241
|
+
rspec-mocks (3.13.8)
|
|
242
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
243
|
+
rspec-support (~> 3.13.0)
|
|
244
|
+
rspec-rails (7.1.1)
|
|
245
|
+
actionpack (>= 7.0)
|
|
246
|
+
activesupport (>= 7.0)
|
|
247
|
+
railties (>= 7.0)
|
|
248
|
+
rspec-core (~> 3.13)
|
|
249
|
+
rspec-expectations (~> 3.13)
|
|
250
|
+
rspec-mocks (~> 3.13)
|
|
251
|
+
rspec-support (~> 3.13)
|
|
252
|
+
rspec-retry (0.6.2)
|
|
253
|
+
rspec-core (> 3.3)
|
|
254
|
+
rspec-support (3.13.7)
|
|
255
|
+
securerandom (0.4.1)
|
|
256
|
+
sequel (5.107.0)
|
|
257
|
+
bigdecimal
|
|
258
|
+
simplecov (0.22.0)
|
|
259
|
+
docile (~> 1.1)
|
|
260
|
+
simplecov-html (~> 0.11)
|
|
261
|
+
simplecov_json_formatter (~> 0.1)
|
|
262
|
+
simplecov-cobertura (3.2.0)
|
|
263
|
+
rexml
|
|
264
|
+
simplecov (~> 0.19)
|
|
265
|
+
simplecov-html (0.13.2)
|
|
266
|
+
simplecov_json_formatter (0.1.4)
|
|
267
|
+
solid_queue (1.4.0)
|
|
268
|
+
activejob (>= 7.1)
|
|
269
|
+
activerecord (>= 7.1)
|
|
270
|
+
concurrent-ruby (>= 1.3.1)
|
|
271
|
+
fugit (~> 1.11)
|
|
272
|
+
railties (>= 7.1)
|
|
273
|
+
thor (>= 1.3.1)
|
|
274
|
+
sprockets (4.2.2)
|
|
275
|
+
concurrent-ruby (~> 1.0)
|
|
276
|
+
logger
|
|
277
|
+
rack (>= 2.2.4, < 4)
|
|
278
|
+
sprockets-rails (3.5.2)
|
|
279
|
+
actionpack (>= 6.1)
|
|
280
|
+
activesupport (>= 6.1)
|
|
281
|
+
sprockets (>= 3.0.0)
|
|
282
|
+
thor (1.5.0)
|
|
283
|
+
timeout (0.6.1)
|
|
284
|
+
tsort (0.2.0)
|
|
285
|
+
tzinfo (2.0.6)
|
|
286
|
+
concurrent-ruby (~> 1.0)
|
|
287
|
+
websocket-driver (0.8.2-java)
|
|
288
|
+
base64
|
|
289
|
+
websocket-extensions (>= 0.1.0)
|
|
290
|
+
websocket-extensions (0.1.5)
|
|
291
|
+
zeitwerk (2.6.18)
|
|
292
|
+
|
|
293
|
+
PLATFORMS
|
|
294
|
+
universal-java-21
|
|
295
|
+
|
|
296
|
+
DEPENDENCIES
|
|
297
|
+
activerecord-jdbcmysql-adapter
|
|
298
|
+
benchmark-ips
|
|
299
|
+
benchmark-ipsa
|
|
300
|
+
benchmark-memory
|
|
301
|
+
benchmark_driver
|
|
302
|
+
cgi
|
|
303
|
+
debug!
|
|
304
|
+
irb
|
|
305
|
+
jar-dependencies
|
|
306
|
+
jdbc-sqlite3
|
|
307
|
+
mini_magick
|
|
308
|
+
psych (~> 4.0.0)
|
|
309
|
+
rails (~> 7.1.0)
|
|
310
|
+
rake (~> 12.0)
|
|
311
|
+
rexml (= 3.4.1)
|
|
312
|
+
rspec
|
|
313
|
+
rspec-rails (~> 7.0)
|
|
314
|
+
rspec-retry
|
|
315
|
+
sentry-rails!
|
|
316
|
+
sentry-ruby!
|
|
317
|
+
sequel
|
|
318
|
+
simplecov
|
|
319
|
+
simplecov-cobertura (~> 3.0)
|
|
320
|
+
solid_queue
|
|
321
|
+
sprockets-rails
|
|
322
|
+
sqlite3 (~> 1.7.3)
|
|
323
|
+
|
|
324
|
+
CHECKSUMS
|
|
325
|
+
actioncable (7.1.6) sha256=ad428d5f0a810452160820ae3cf3d9d68d8f59e7c76de3bd1f1de2a5ad03c3da
|
|
326
|
+
actionmailbox (7.1.6) sha256=ded958ad8ec147a5f14555833541f07063af188777b09b50cfeeaa623bc2f731
|
|
327
|
+
actionmailer (7.1.6) sha256=b07f6420ec66bd299a9da5a35c075849fbd5504e82793301b0c275fa4211d273
|
|
328
|
+
actionpack (7.1.6) sha256=3fa42da36fdcfc3690a711ed35ac5d527b87d3d676f8d111238aa399151203eb
|
|
329
|
+
actiontext (7.1.6) sha256=79d657422dd67cc8cb46866a7bec9d89ec8699f7fa5647c0eab3472dc0297e66
|
|
330
|
+
actionview (7.1.6) sha256=11147d81f90465ae062b2a77805c6f8f446e044e309c51bd9449bdbd43edf566
|
|
331
|
+
activejob (7.1.6) sha256=0dd9cd051d494608349dd9223a3e61c3933250db77e35ab6617c26c1d52dccbb
|
|
332
|
+
activemodel (7.1.6) sha256=f72f510018a560b5969e3ffc88214441ff09eed60b310feba678a597b2a2e721
|
|
333
|
+
activerecord (7.1.6) sha256=1aa298cd7fc97ed8639ebb05a46bd17243a1218d89945bdc2bac1e61e673f079
|
|
334
|
+
activerecord-jdbc-adapter (71.0-java) sha256=848621fd1156dcd1839ecb0333c24650935d5ee0ea65166e4932f79163647534
|
|
335
|
+
activerecord-jdbcmysql-adapter (71.0-java) sha256=da50c3d457a0f1d9c82fe100403af821738d589a73b85d0280cfb0a0e27786c5
|
|
336
|
+
activestorage (7.1.6) sha256=2f1acb8e6592ba783d9cbc3da93ac4477d441dffc5d533ceccbbfab39f4bf398
|
|
337
|
+
activesupport (7.1.6) sha256=7f12140a813b1c4922a322663e547129aef1840fc512fa262378f6d7e7fd3a7c
|
|
338
|
+
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
339
|
+
benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
|
|
340
|
+
benchmark-ips (2.5.0) sha256=aa98e9dc420c0dc225f6bf8cea7f112ca015596868e9dcf2e15d4ee4e3eb80ee
|
|
341
|
+
benchmark-ipsa (0.2.0) sha256=8be4820765d575691b2f91f6c988a8a3d90393239bf9d35ea53c8ab0fbca7230
|
|
342
|
+
benchmark-memory (0.1.2) sha256=aa7bfe6776174d0ddefe6fb39945d88fff6d76eac165690188391d9acd441c87
|
|
343
|
+
benchmark_driver (0.16.5) sha256=f675df0fe1de7e18e40df313ae24ebe4c7ee7814a4165f29a1a37b863a685831
|
|
344
|
+
bigdecimal (4.1.2-java) sha256=ccc836eab720a525529f70ed0de26a206fdbc9a9e8ac67b3b4ac7318b03e114d
|
|
345
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
|
346
|
+
cgi (0.5.2-java) sha256=08bbfe06e10e771d36f10db6c1dfb81727ea2a25c3dbcd28d890a1794414a73d
|
|
347
|
+
concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
|
|
348
|
+
connection_pool (2.5.5) sha256=e54ff92855753df1fd7c59fa04a398833355f27dd14c074f8c83a05f72a716ad
|
|
349
|
+
crass (1.0.7) sha256=94868719948664c89ddcaf0a37c65048413dfcb1c869470a5f7a7ceb5390b295
|
|
350
|
+
date (3.5.1-java) sha256=12e09477dc932afe45bf768cd362bf73026804e0db1e6c314186d6cd0bee3344
|
|
351
|
+
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
|
|
352
|
+
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
|
|
353
|
+
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
|
|
354
|
+
erb (4.0.4.1-java) sha256=3e4805edebd25f48cdb43ad4ebf1d61c11538f29373f0a48716b688819e3f7ce
|
|
355
|
+
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
|
|
356
|
+
et-orbi (1.4.1) sha256=007e2685b1d873415a7587ef889336c6dcdf8a47fc9c9a63547582b21660a11b
|
|
357
|
+
fugit (1.13.0) sha256=a4f093fce740da52f216740a5041e2a594ea763cdb89e8b2754ca4399634ab18
|
|
358
|
+
globalid (1.4.0) sha256=037f12fbf1d9d7a014d501c2d5c77356fd4ddd96d7a7991d6700bba96706f427
|
|
359
|
+
i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
|
|
360
|
+
io-console (0.8.2-java) sha256=837efefe96084c13ae91114917986ae6c6d1cf063b27b8419cc564a722a38af8
|
|
361
|
+
irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
|
|
362
|
+
jar-dependencies (0.5.7) sha256=013ce5f4639414ac8cf1169cdbe763da164b81e2d2c983d11042b5ff7bfcce80
|
|
363
|
+
jdbc-mysql (8.4.0.1) sha256=429cb7999d11c4f46a7153a382b6ac07935a4c10ddc52dd98e2d52b22c17fa13
|
|
364
|
+
jdbc-sqlite3 (3.46.1.1) sha256=2498fea7d37c0d51c6bad1b95ffc909173c014ba6bd36825f37910113d0230cf
|
|
365
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
366
|
+
loofah (2.25.2) sha256=2007f746959ac65552456e04b433e83deb22759ab38c838b4445c70e43425918
|
|
367
|
+
mail (2.9.1) sha256=06574eca475253d6c18145dd70af80d0eb970182d55053497c5f4d797ea160e8
|
|
368
|
+
marcel (1.2.1) sha256=1678e9360e32f9eafa917c80029e2f6d10b2715c66a4b87b6d0da9b9cd1f859f
|
|
369
|
+
memory_profiler (0.9.14) sha256=de558cf6525d8d56d2c0ea465b1664517fbe45560f892dc7a898d3b8c2863b12
|
|
370
|
+
mini_magick (5.3.2) sha256=a7ef54b480b15283c396eb8343d9e088471f54b31d9974cb7e523cc57598609f
|
|
371
|
+
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
|
|
372
|
+
minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
|
|
373
|
+
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
|
|
374
|
+
net-imap (0.5.15) sha256=f64dc7f0b456d6a1b62007ead055994034f039f4aa6ff614e35f0b93395c0614
|
|
375
|
+
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
|
|
376
|
+
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
|
|
377
|
+
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
|
|
378
|
+
nio4r (2.7.5-java) sha256=d14779d2a9b012ec0148a53344fbb2ed2a3c4d90c5dd923bf281135ab983b2c9
|
|
379
|
+
nokogiri (1.18.10-java) sha256=cd431a09c45d84a2f870ba0b7e8f571199b3727d530f2b4888a73639f76510b5
|
|
380
|
+
pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
|
|
381
|
+
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
|
|
382
|
+
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
383
|
+
psych (4.0.6-java) sha256=78f8708f8b139ee9b258c2f51b4d55dcccc8e7f567f728ba2f9868685bec8623
|
|
384
|
+
raabro (1.5.0) sha256=3f998a7bc84f9c84df3ab580634d2e0a5bda4f0841168d56035f529c9877440a
|
|
385
|
+
racc (1.8.1-java) sha256=54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98
|
|
386
|
+
rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
|
|
387
|
+
rack-session (2.1.2) sha256=595434f8c0c3473ae7d7ac56ecda6cc6dfd9d37c0b2b5255330aa1576967ffe8
|
|
388
|
+
rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463
|
|
389
|
+
rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868
|
|
390
|
+
rails (7.1.6) sha256=9a0a335e510de3daad7542cd791af3d8ff710c644e1da17ed12e96d2f28a7470
|
|
391
|
+
rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d
|
|
392
|
+
rails-html-sanitizer (1.7.1) sha256=e797a7c9b01e567307e317c576b49ab4168017e63eea4dba9ce3cb587e2f22c2
|
|
393
|
+
railties (7.1.6) sha256=2a10e97f2eaca66d11f0fef4b1f4d826e6ee28d4cf01ff16624420dd45e7de1c
|
|
394
|
+
rake (12.3.3) sha256=f7694adb4fe638da35452300cee6c545e9c377a0e3190018ac04d590b3c26ab3
|
|
395
|
+
rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
|
|
396
|
+
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
|
|
397
|
+
rexml (3.4.1) sha256=c74527a9a0a04b4ec31dbe0dc4ed6004b960af943d8db42e539edde3a871abca
|
|
398
|
+
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
|
|
399
|
+
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
|
|
400
|
+
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
|
|
401
|
+
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
|
|
402
|
+
rspec-rails (7.1.1) sha256=e15dccabed211e2fd92f21330c819adcbeb1591c1d66c580d8f2d8288557e331
|
|
403
|
+
rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858
|
|
404
|
+
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
|
|
405
|
+
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
|
|
406
|
+
sentry-rails (6.6.2)
|
|
407
|
+
sentry-ruby (6.6.2)
|
|
408
|
+
sequel (5.107.0) sha256=019629313205295b007f6df2c5eab19ddc40710d549fd445ac300f2853a370db
|
|
409
|
+
simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
|
|
410
|
+
simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740
|
|
411
|
+
simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
|
|
412
|
+
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
|
|
413
|
+
solid_queue (1.4.0) sha256=e6a18d196f0b27cb6e3c77c5b31258b05fb634f8ed64fb1866ed164047216c2a
|
|
414
|
+
sprockets (4.2.2) sha256=761e5a49f1c288704763f73139763564c845a8f856d52fba013458f8af1b59b1
|
|
415
|
+
sprockets-rails (3.5.2) sha256=a9e88e6ce9f8c912d349aa5401509165ec42326baf9e942a85de4b76dbc4119e
|
|
416
|
+
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
|
|
417
|
+
timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
|
|
418
|
+
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
|
|
419
|
+
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
|
|
420
|
+
websocket-driver (0.8.2-java) sha256=f60120d1377cccf24100bcd1ebc25ceea6f3d5a013fc8e9d16b721016200946e
|
|
421
|
+
websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241
|
|
422
|
+
zeitwerk (2.6.18) sha256=bd2d213996ff7b3b364cd342a585fbee9797dbc1c0c6d868dc4150cc75739781
|
|
423
|
+
|
|
424
|
+
BUNDLED WITH
|
|
425
|
+
2.6.9
|
|
@@ -1,17 +1,66 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "set"
|
|
4
|
+
require "sentry/rails/serializer"
|
|
5
|
+
require "sentry/rails/error_reporter_context"
|
|
4
6
|
|
|
5
7
|
module Sentry
|
|
6
8
|
module Rails
|
|
7
9
|
module ActiveJobExtensions
|
|
10
|
+
SENTRY_PAYLOAD_KEY = "_sentry"
|
|
11
|
+
|
|
12
|
+
USER_FIELDS_ALLOWLIST = %w[id email username].freeze
|
|
13
|
+
|
|
14
|
+
def self.prepended(base)
|
|
15
|
+
base.attr_accessor :_sentry
|
|
16
|
+
end
|
|
17
|
+
|
|
8
18
|
def perform_now
|
|
9
19
|
if !Sentry.initialized? || already_supported_by_sentry_integration?
|
|
10
20
|
super
|
|
11
21
|
else
|
|
12
|
-
|
|
13
|
-
|
|
22
|
+
data = _sentry || {}
|
|
23
|
+
SentryReporter.record(
|
|
24
|
+
self,
|
|
25
|
+
trace_headers: data["trace_propagation_headers"],
|
|
26
|
+
user: data["user"]
|
|
27
|
+
) { super }
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def serialize
|
|
32
|
+
payload = super
|
|
33
|
+
return payload if !Sentry.initialized? || already_supported_by_sentry_integration?
|
|
34
|
+
|
|
35
|
+
begin
|
|
36
|
+
sentry_data = {}
|
|
37
|
+
if Sentry.configuration.rails.active_job_propagate_traces
|
|
38
|
+
headers = Sentry.get_trace_propagation_headers
|
|
39
|
+
sentry_data["trace_propagation_headers"] = headers if headers && !headers.empty?
|
|
14
40
|
end
|
|
41
|
+
|
|
42
|
+
if Sentry.configuration.send_default_pii
|
|
43
|
+
user = Sentry.get_current_scope.user
|
|
44
|
+
allowed = user.transform_keys(&:to_s).slice(*USER_FIELDS_ALLOWLIST)
|
|
45
|
+
sentry_data["user"] = allowed unless allowed.empty?
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
payload[SENTRY_PAYLOAD_KEY] = sentry_data unless sentry_data.empty?
|
|
49
|
+
rescue StandardError => e
|
|
50
|
+
Sentry.sdk_logger&.error("sentry-rails: failed to inject _sentry payload: #{e.class}: #{e.message}\n #{Array(e.backtrace).first(5).join("\n ")}")
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
payload
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def deserialize(job_data)
|
|
57
|
+
super
|
|
58
|
+
return if !Sentry.initialized? || already_supported_by_sentry_integration?
|
|
59
|
+
|
|
60
|
+
begin
|
|
61
|
+
self._sentry = job_data[SENTRY_PAYLOAD_KEY]
|
|
62
|
+
rescue StandardError => e
|
|
63
|
+
Sentry.sdk_logger&.error("sentry-rails: failed to extract _sentry payload: #{e.class}: #{e.message}\n #{Array(e.backtrace).first(5).join("\n ")}")
|
|
15
64
|
end
|
|
16
65
|
end
|
|
17
66
|
|
|
@@ -20,27 +69,104 @@ module Sentry
|
|
|
20
69
|
end
|
|
21
70
|
|
|
22
71
|
class SentryReporter
|
|
23
|
-
OP_NAME = "queue.
|
|
72
|
+
OP_NAME = "queue.process"
|
|
24
73
|
SPAN_ORIGIN = "auto.queue.active_job"
|
|
25
74
|
|
|
75
|
+
# Emitted as messaging.system when the configured queue adapter's
|
|
76
|
+
# identity cannot be resolved from the job. ActiveJob is adapter-agnostic
|
|
77
|
+
# and supports arbitrary third-party backends, so the concrete value is
|
|
78
|
+
# normally derived from the adapter itself; this is only the last resort.
|
|
79
|
+
MESSAGING_SYSTEM_FALLBACK = "activejob"
|
|
80
|
+
|
|
26
81
|
EVENT_HANDLERS = {
|
|
27
82
|
"enqueue_retry.active_job" => :retry_handler
|
|
28
83
|
}
|
|
29
84
|
|
|
30
85
|
class << self
|
|
31
|
-
|
|
86
|
+
include ErrorReporterContext
|
|
87
|
+
|
|
88
|
+
def producer_callback_registered?
|
|
89
|
+
@producer_callback_registered ||= false
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def producer_callback_registered!
|
|
93
|
+
@producer_callback_registered = true
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def record_producer_span(job, &enqueue)
|
|
97
|
+
return yield if !Sentry.initialized? || job.already_supported_by_sentry_integration?
|
|
98
|
+
|
|
99
|
+
enqueued = false
|
|
100
|
+
|
|
101
|
+
run_enqueue = lambda do
|
|
102
|
+
enqueued = true
|
|
103
|
+
enqueue.call
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
begin
|
|
107
|
+
Sentry.with_child_span(op: "queue.publish", description: job.class.name) do |span|
|
|
108
|
+
if span
|
|
109
|
+
span.set_origin(SPAN_ORIGIN)
|
|
110
|
+
span.set_data(Sentry::Span::DataConventions::MESSAGING_SYSTEM, messaging_system(job))
|
|
111
|
+
span.set_data(Sentry::Span::DataConventions::MESSAGING_MESSAGE_ID, job.job_id)
|
|
112
|
+
span.set_data(Sentry::Span::DataConventions::MESSAGING_DESTINATION_NAME, job.queue_name)
|
|
113
|
+
|
|
114
|
+
if (count = retry_count(job))
|
|
115
|
+
span.set_data(Sentry::Span::DataConventions::MESSAGING_MESSAGE_RETRY_COUNT, count)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
run_enqueue.call
|
|
120
|
+
end
|
|
121
|
+
rescue StandardError => e
|
|
122
|
+
raise if enqueued
|
|
123
|
+
|
|
124
|
+
log_producer_span_error(e)
|
|
125
|
+
|
|
126
|
+
run_enqueue.call
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def log_producer_span_error(e)
|
|
131
|
+
Sentry.sdk_logger&.error("sentry-rails: failed to record producer span: #{e.class}: #{e.message}\n #{Array(e.backtrace).first(5).join("\n ")}")
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def record(job, trace_headers: nil, user: nil, &block)
|
|
135
|
+
original_hub = Sentry.get_current_hub_internal
|
|
136
|
+
Sentry.clone_hub_to_current_thread
|
|
137
|
+
|
|
32
138
|
Sentry.with_scope do |scope|
|
|
33
139
|
begin
|
|
140
|
+
scope.set_user(user.transform_keys(&:to_sym)) if user && !user.empty?
|
|
141
|
+
|
|
34
142
|
scope.set_transaction_name(job.class.name, source: :task)
|
|
143
|
+
scope.set_tags(queue: job.queue_name)
|
|
144
|
+
|
|
145
|
+
scope.set_contexts(active_job: {
|
|
146
|
+
job_class: job.class.name,
|
|
147
|
+
job_id: job.job_id,
|
|
148
|
+
queue: job.queue_name,
|
|
149
|
+
provider_job_id: job.provider_job_id
|
|
150
|
+
})
|
|
35
151
|
|
|
36
|
-
|
|
152
|
+
transaction_options = {
|
|
37
153
|
name: scope.transaction_name,
|
|
38
154
|
source: scope.transaction_source,
|
|
39
155
|
op: OP_NAME,
|
|
40
156
|
origin: SPAN_ORIGIN
|
|
41
|
-
|
|
157
|
+
}
|
|
42
158
|
|
|
43
|
-
|
|
159
|
+
transaction = if trace_headers && !trace_headers.empty?
|
|
160
|
+
continued = Sentry.continue_trace(trace_headers, **transaction_options)
|
|
161
|
+
Sentry.start_transaction(transaction: continued, **transaction_options)
|
|
162
|
+
else
|
|
163
|
+
Sentry.start_transaction(**transaction_options)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
if transaction
|
|
167
|
+
set_messaging_data(transaction, job)
|
|
168
|
+
scope.set_span(transaction)
|
|
169
|
+
end
|
|
44
170
|
|
|
45
171
|
yield.tap do
|
|
46
172
|
finish_sentry_transaction(transaction, 200)
|
|
@@ -53,6 +179,44 @@ module Sentry
|
|
|
53
179
|
raise
|
|
54
180
|
end
|
|
55
181
|
end
|
|
182
|
+
ensure
|
|
183
|
+
Sentry.set_current_hub_internal(original_hub)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def set_messaging_data(transaction, job)
|
|
187
|
+
transaction.set_data(Sentry::Span::DataConventions::MESSAGING_SYSTEM, messaging_system(job))
|
|
188
|
+
transaction.set_data(Sentry::Span::DataConventions::MESSAGING_MESSAGE_ID, job.job_id)
|
|
189
|
+
transaction.set_data(Sentry::Span::DataConventions::MESSAGING_DESTINATION_NAME, job.queue_name)
|
|
190
|
+
if (count = retry_count(job))
|
|
191
|
+
transaction.set_data(Sentry::Span::DataConventions::MESSAGING_MESSAGE_RETRY_COUNT, count)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
if (latency = compute_latency(job))
|
|
195
|
+
transaction.set_data(Sentry::Span::DataConventions::MESSAGING_MESSAGE_RECEIVE_LATENCY, latency)
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def messaging_system(job)
|
|
200
|
+
name = job.class.queue_adapter_name if job.class.respond_to?(:queue_adapter_name)
|
|
201
|
+
name = name.to_s
|
|
202
|
+
name.empty? ? MESSAGING_SYSTEM_FALLBACK : name
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
# Number of retries the job has already gone through, as observed at
|
|
206
|
+
# the moment the span is opened. On the consumer the span opens before
|
|
207
|
+
# ActiveJob increments +executions+, so a job's first attempt reads 0,
|
|
208
|
+
# its first retry reads 1, and so on. On the producer the retry enqueue
|
|
209
|
+
# runs after the failed attempt bumped +executions+, so it observes the
|
|
210
|
+
# same progression.
|
|
211
|
+
def retry_count(job)
|
|
212
|
+
job.executions.to_i if job.respond_to?(:executions)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def compute_latency(job)
|
|
216
|
+
return unless job.respond_to?(:enqueued_at) && job.enqueued_at
|
|
217
|
+
|
|
218
|
+
enqueued_time = job.enqueued_at.is_a?(String) ? Time.parse(job.enqueued_at) : job.enqueued_at
|
|
219
|
+
(Time.now.to_f - enqueued_time.to_f) * 1000.0
|
|
56
220
|
end
|
|
57
221
|
|
|
58
222
|
def capture_exception(job, e)
|
|
@@ -62,7 +226,11 @@ module Sentry
|
|
|
62
226
|
tags: {
|
|
63
227
|
job_id: job.job_id,
|
|
64
228
|
provider_job_id: job.provider_job_id
|
|
65
|
-
}
|
|
229
|
+
},
|
|
230
|
+
contexts: execution_context,
|
|
231
|
+
# Send synchronously: a worker process may exit before the async
|
|
232
|
+
# background worker flushes its queue, which would drop the event.
|
|
233
|
+
hint: { background: false }
|
|
66
234
|
)
|
|
67
235
|
end
|
|
68
236
|
|
|
@@ -115,22 +283,7 @@ module Sentry
|
|
|
115
283
|
end
|
|
116
284
|
|
|
117
285
|
def sentry_serialize_arguments(argument)
|
|
118
|
-
|
|
119
|
-
when Range
|
|
120
|
-
if (argument.begin || argument.end).is_a?(ActiveSupport::TimeWithZone)
|
|
121
|
-
argument.to_s
|
|
122
|
-
else
|
|
123
|
-
argument.map { |v| sentry_serialize_arguments(v) }
|
|
124
|
-
end
|
|
125
|
-
when Hash
|
|
126
|
-
argument.transform_values { |v| sentry_serialize_arguments(v) }
|
|
127
|
-
when Array, Enumerable
|
|
128
|
-
argument.map { |v| sentry_serialize_arguments(v) }
|
|
129
|
-
when ->(v) { v.respond_to?(:to_global_id) }
|
|
130
|
-
argument.to_global_id.to_s rescue argument
|
|
131
|
-
else
|
|
132
|
-
argument
|
|
133
|
-
end
|
|
286
|
+
Sentry::Rails::Serializer.serialize(argument)
|
|
134
287
|
end
|
|
135
288
|
|
|
136
289
|
private
|