sentry-ruby-core 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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/bin/test +15 -0
  3. data/gemfiles/ruby-2.7_rack-2_redis-4.gemfile.lock +159 -0
  4. data/gemfiles/ruby-2.7_rack-3.1_redis-4.gemfile.lock +159 -0
  5. data/gemfiles/ruby-2.7_rack-3_redis-4.gemfile.lock +159 -0
  6. data/gemfiles/ruby-3.0_rack-2_redis-4.gemfile.lock +173 -0
  7. data/gemfiles/ruby-3.0_rack-3.1_redis-4.gemfile.lock +173 -0
  8. data/gemfiles/ruby-3.0_rack-3_redis-4.gemfile.lock +173 -0
  9. data/gemfiles/ruby-3.1_rack-2_redis-4.gemfile.lock +241 -0
  10. data/gemfiles/ruby-3.1_rack-3.1_redis-4.gemfile.lock +241 -0
  11. data/gemfiles/ruby-3.1_rack-3_redis-4.gemfile.lock +241 -0
  12. data/gemfiles/ruby-3.2_rack-0_redis-5.gemfile.lock +263 -0
  13. data/gemfiles/ruby-3.2_rack-2_redis-4.gemfile.lock +260 -0
  14. data/gemfiles/ruby-3.2_rack-2_redis-5.gemfile.lock +266 -0
  15. data/gemfiles/ruby-3.2_rack-3.1_redis-4.gemfile.lock +260 -0
  16. data/gemfiles/ruby-3.2_rack-3_redis-4.gemfile.lock +260 -0
  17. data/gemfiles/ruby-3.2_rack-3_redis-5.gemfile.lock +266 -0
  18. data/gemfiles/ruby-3.3_rack-2_redis-4.gemfile.lock +263 -0
  19. data/gemfiles/ruby-3.3_rack-3.1_redis-4.gemfile.lock +263 -0
  20. data/gemfiles/ruby-3.3_rack-3.1_redis-5.3.gemfile.lock +269 -0
  21. data/gemfiles/ruby-3.3_rack-3_redis-4.gemfile.lock +263 -0
  22. data/gemfiles/ruby-3.4_rack-2_redis-4.gemfile.lock +254 -0
  23. data/gemfiles/ruby-3.4_rack-3.1_redis-4.gemfile.lock +254 -0
  24. data/gemfiles/ruby-3.4_rack-3.1_redis-5.3.gemfile.lock +260 -0
  25. data/gemfiles/ruby-3.4_rack-3_redis-4.gemfile.lock +254 -0
  26. data/gemfiles/ruby-4.0_rack-2_redis-4.gemfile.lock +254 -0
  27. data/gemfiles/ruby-4.0_rack-3.1_redis-4.gemfile.lock +254 -0
  28. data/gemfiles/ruby-4.0_rack-3_redis-4.gemfile.lock +254 -0
  29. data/gemfiles/ruby-jruby-9.4.14.0_rack-2_redis-4.gemfile.lock +266 -0
  30. data/gemfiles/ruby-jruby-9.4.14.0_rack-3.1_redis-4.gemfile.lock +266 -0
  31. data/gemfiles/ruby-jruby-9.4.14.0_rack-3_redis-4.gemfile.lock +266 -0
  32. data/lib/sentry/client.rb +7 -2
  33. data/lib/sentry/configuration.rb +40 -0
  34. data/lib/sentry/envelope/item.rb +21 -0
  35. data/lib/sentry/scope.rb +42 -3
  36. data/lib/sentry/span.rb +1 -0
  37. data/lib/sentry/telemetry_event_buffer.rb +9 -2
  38. data/lib/sentry/test_helper.rb +6 -3
  39. data/lib/sentry/threaded_periodic_worker.rb +8 -3
  40. data/lib/sentry/transport.rb +14 -3
  41. data/lib/sentry/utils/telemetry_attributes.rb +26 -14
  42. data/lib/sentry/version.rb +1 -1
  43. data/lib/sentry-ruby.rb +90 -5
  44. data/sentry-ruby-core.gemspec +1 -1
  45. data/sentry-ruby.gemspec +1 -1
  46. metadata +33 -3
@@ -0,0 +1,266 @@
1
+ GIT
2
+ remote: https://github.com/ruby/debug.git
3
+ revision: 6510cfbc7496c55ebbefa437a25c17ca58f7c5eb
4
+ specs:
5
+
6
+ PATH
7
+ remote: ..
8
+ specs:
9
+ sentry-ruby (6.6.2)
10
+ bigdecimal
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ logger
13
+
14
+ GEM
15
+ remote: https://rubygems.org/
16
+ specs:
17
+ activemodel (7.2.3.2)
18
+ activesupport (= 7.2.3.2)
19
+ activerecord (7.2.3.2)
20
+ activemodel (= 7.2.3.2)
21
+ activesupport (= 7.2.3.2)
22
+ timeout (>= 0.4.0)
23
+ activerecord-jdbc-adapter (72.1-java)
24
+ activerecord (~> 7.2.2)
25
+ activerecord-jdbcmysql-adapter (72.1-java)
26
+ activerecord-jdbc-adapter (= 72.1)
27
+ jdbc-mysql (>= 5.1.36, < 9)
28
+ activesupport (7.2.3.2)
29
+ base64
30
+ benchmark (>= 0.3)
31
+ bigdecimal
32
+ concurrent-ruby (~> 1.0, >= 1.3.1)
33
+ connection_pool (>= 2.2.5)
34
+ drb
35
+ i18n (>= 1.6, < 2)
36
+ logger (>= 1.4.2)
37
+ minitest (>= 5.1, < 6)
38
+ securerandom (>= 0.3)
39
+ tzinfo (~> 2.0, >= 2.0.5)
40
+ addressable (2.9.0)
41
+ public_suffix (>= 2.0.2, < 8.0)
42
+ base64 (0.3.0)
43
+ benchmark (0.5.0)
44
+ benchmark-ips (2.5.0)
45
+ benchmark-ipsa (0.2.0)
46
+ benchmark-ips (~> 2.5.0)
47
+ memory_profiler (~> 0.9.6)
48
+ benchmark-memory (0.1.2)
49
+ memory_profiler (~> 0.9)
50
+ benchmark_driver (0.16.5)
51
+ bigdecimal (4.1.2-java)
52
+ cgi (0.5.2-java)
53
+ concurrent-ruby (1.3.8)
54
+ connection_pool (2.5.5)
55
+ crack (1.0.1)
56
+ bigdecimal
57
+ rexml
58
+ date (3.5.1-java)
59
+ diff-lcs (1.6.2)
60
+ docile (1.4.1)
61
+ drb (2.2.3)
62
+ erb (4.0.4.1-java)
63
+ cgi (>= 0.3.3)
64
+ excon (1.6.0)
65
+ logger
66
+ faraday (2.14.3)
67
+ faraday-net_http (>= 2.0, < 3.5)
68
+ json
69
+ logger
70
+ faraday-net_http (3.4.4)
71
+ net-http (~> 0.5)
72
+ fiber-storage (1.0.1)
73
+ graphql (2.6.7)
74
+ base64
75
+ fiber-storage
76
+ logger
77
+ hashdiff (1.2.1)
78
+ i18n (1.15.2)
79
+ concurrent-ruby (~> 1.0)
80
+ io-console (0.8.2-java)
81
+ irb (1.18.0)
82
+ pp (>= 0.6.0)
83
+ prism (>= 1.3.0)
84
+ rdoc (>= 4.0.0)
85
+ reline (>= 0.4.2)
86
+ jar-dependencies (0.5.7)
87
+ jdbc-mysql (8.4.0.1)
88
+ jdbc-sqlite3 (3.46.1.1)
89
+ json (2.21.2-java)
90
+ logger (1.7.0)
91
+ memory_profiler (0.9.14)
92
+ minitest (5.27.0)
93
+ net-http (0.9.1)
94
+ uri (>= 0.11.1)
95
+ nio4r (2.7.5-java)
96
+ pp (0.6.4)
97
+ prettyprint
98
+ prettyprint (0.2.0)
99
+ prism (1.9.0)
100
+ psych (5.4.0-java)
101
+ date
102
+ jar-dependencies (>= 0.1.7)
103
+ public_suffix (6.0.2)
104
+ puma (8.0.2-java)
105
+ nio4r (~> 2.0)
106
+ rack (3.2.6)
107
+ rake (12.3.3)
108
+ rdoc (7.2.0)
109
+ erb
110
+ psych (>= 4.0.0)
111
+ tsort
112
+ redis (4.8.1)
113
+ reline (0.6.3)
114
+ io-console (~> 0.5)
115
+ rexml (3.4.1)
116
+ rspec (3.13.2)
117
+ rspec-core (~> 3.13.0)
118
+ rspec-expectations (~> 3.13.0)
119
+ rspec-mocks (~> 3.13.0)
120
+ rspec-core (3.13.6)
121
+ rspec-support (~> 3.13.0)
122
+ rspec-expectations (3.13.5)
123
+ diff-lcs (>= 1.2.0, < 2.0)
124
+ rspec-support (~> 3.13.0)
125
+ rspec-mocks (3.13.8)
126
+ diff-lcs (>= 1.2.0, < 2.0)
127
+ rspec-support (~> 3.13.0)
128
+ rspec-retry (0.6.2)
129
+ rspec-core (> 3.3)
130
+ rspec-support (3.13.7)
131
+ securerandom (0.4.1)
132
+ sequel (5.107.0)
133
+ bigdecimal
134
+ simplecov (0.22.0)
135
+ docile (~> 1.1)
136
+ simplecov-html (~> 0.11)
137
+ simplecov_json_formatter (~> 0.1)
138
+ simplecov-cobertura (3.2.0)
139
+ rexml
140
+ simplecov (~> 0.19)
141
+ simplecov-html (0.13.2)
142
+ simplecov_json_formatter (0.1.4)
143
+ timecop (0.9.11)
144
+ timeout (0.6.1)
145
+ tsort (0.2.0)
146
+ tzinfo (2.0.6)
147
+ concurrent-ruby (~> 1.0)
148
+ uri (1.1.1)
149
+ webmock (3.26.2)
150
+ addressable (>= 2.8.0)
151
+ crack (>= 0.3.2)
152
+ hashdiff (>= 0.4.0, < 2.0.0)
153
+ webrick (1.9.2)
154
+ yard (0.9.45)
155
+
156
+ PLATFORMS
157
+ universal-java-21
158
+
159
+ DEPENDENCIES
160
+ activerecord-jdbcmysql-adapter
161
+ benchmark-ips
162
+ benchmark-ipsa
163
+ benchmark-memory
164
+ benchmark_driver
165
+ cgi
166
+ debug!
167
+ excon
168
+ faraday
169
+ graphql (>= 2.2.6)
170
+ irb
171
+ jar-dependencies
172
+ jdbc-sqlite3
173
+ puma
174
+ rack (~> 3.1)
175
+ rake (~> 12.0)
176
+ redis (~> 4)
177
+ rexml (= 3.4.1)
178
+ rspec
179
+ rspec-retry
180
+ sentry-ruby!
181
+ sequel
182
+ simplecov
183
+ simplecov-cobertura (~> 3.0)
184
+ sqlite3 (~> 1.4.0)
185
+ timecop
186
+ webmock
187
+ webrick
188
+ yard
189
+
190
+ CHECKSUMS
191
+ activemodel (7.2.3.2) sha256=3777c67cd8dd1560f30387523013dacb370a0a1cf532037410887819e4416927
192
+ activerecord (7.2.3.2) sha256=e62d24ba7e5f820d24ed122eb9225491b0aaa8398778783b400067c3467285c7
193
+ activerecord-jdbc-adapter (72.1-java) sha256=4487cb4606b5d76913b5abaaf681ef21b7aa9478ed201918f48da6b3f7fcec70
194
+ activerecord-jdbcmysql-adapter (72.1-java) sha256=094d6e074e23668dff143f5c69cda0f0fc29468d9634b3c5e5884a3345e3d166
195
+ activesupport (7.2.3.2) sha256=ddc90d11dd88086d78ace03407fe3c2a3f5c8853c3c3046313db5ed823ef3312
196
+ addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
197
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
198
+ benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
199
+ benchmark-ips (2.5.0) sha256=aa98e9dc420c0dc225f6bf8cea7f112ca015596868e9dcf2e15d4ee4e3eb80ee
200
+ benchmark-ipsa (0.2.0) sha256=8be4820765d575691b2f91f6c988a8a3d90393239bf9d35ea53c8ab0fbca7230
201
+ benchmark-memory (0.1.2) sha256=aa7bfe6776174d0ddefe6fb39945d88fff6d76eac165690188391d9acd441c87
202
+ benchmark_driver (0.16.5) sha256=f675df0fe1de7e18e40df313ae24ebe4c7ee7814a4165f29a1a37b863a685831
203
+ bigdecimal (4.1.2-java) sha256=ccc836eab720a525529f70ed0de26a206fdbc9a9e8ac67b3b4ac7318b03e114d
204
+ cgi (0.5.2-java) sha256=08bbfe06e10e771d36f10db6c1dfb81727ea2a25c3dbcd28d890a1794414a73d
205
+ concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
206
+ connection_pool (2.5.5) sha256=e54ff92855753df1fd7c59fa04a398833355f27dd14c074f8c83a05f72a716ad
207
+ crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
208
+ date (3.5.1-java) sha256=12e09477dc932afe45bf768cd362bf73026804e0db1e6c314186d6cd0bee3344
209
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
210
+ docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
211
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
212
+ erb (4.0.4.1-java) sha256=3e4805edebd25f48cdb43ad4ebf1d61c11538f29373f0a48716b688819e3f7ce
213
+ excon (1.6.0) sha256=ebe2ab83c055ef8e117c62c91a3535b966a59a64868188219d49ab90cd83b65f
214
+ faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
215
+ faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
216
+ fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1
217
+ graphql (2.6.7) sha256=759755ce5819c965b6459c5039605cf2e4d876bb8ba5e03451676870ea787c45
218
+ hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
219
+ i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
220
+ io-console (0.8.2-java) sha256=837efefe96084c13ae91114917986ae6c6d1cf063b27b8419cc564a722a38af8
221
+ irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
222
+ jar-dependencies (0.5.7) sha256=013ce5f4639414ac8cf1169cdbe763da164b81e2d2c983d11042b5ff7bfcce80
223
+ jdbc-mysql (8.4.0.1) sha256=429cb7999d11c4f46a7153a382b6ac07935a4c10ddc52dd98e2d52b22c17fa13
224
+ jdbc-sqlite3 (3.46.1.1) sha256=2498fea7d37c0d51c6bad1b95ffc909173c014ba6bd36825f37910113d0230cf
225
+ json (2.21.2-java) sha256=f01521cd90639cc26b63040fb00d2b949f18f41ecaab5c82b02fb31d0b8b736c
226
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
227
+ memory_profiler (0.9.14) sha256=de558cf6525d8d56d2c0ea465b1664517fbe45560f892dc7a898d3b8c2863b12
228
+ minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
229
+ net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
230
+ nio4r (2.7.5-java) sha256=d14779d2a9b012ec0148a53344fbb2ed2a3c4d90c5dd923bf281135ab983b2c9
231
+ pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
232
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
233
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
234
+ psych (5.4.0-java) sha256=5f948b27c94be491e6ae3e19484700fe87b7bea75f91a5ab8cdf18bb215b1a3b
235
+ public_suffix (6.0.2) sha256=bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394
236
+ puma (8.0.2-java) sha256=37392e0dbd01e2a157748b92b818bfacf801bb32628e41680e9ab1171dea2b3d
237
+ rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
238
+ rake (12.3.3) sha256=f7694adb4fe638da35452300cee6c545e9c377a0e3190018ac04d590b3c26ab3
239
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
240
+ redis (4.8.1) sha256=387ee086694fffc9632aaeb1efe4a7b1627ca783bf373320346a8a20cd93333a
241
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
242
+ rexml (3.4.1) sha256=c74527a9a0a04b4ec31dbe0dc4ed6004b960af943d8db42e539edde3a871abca
243
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
244
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
245
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
246
+ rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
247
+ rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858
248
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
249
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
250
+ sentry-ruby (6.6.2)
251
+ sequel (5.107.0) sha256=019629313205295b007f6df2c5eab19ddc40710d549fd445ac300f2853a370db
252
+ simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
253
+ simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740
254
+ simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
255
+ simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
256
+ timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542
257
+ timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
258
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
259
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
260
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
261
+ webmock (3.26.2) sha256=774556f2ea6371846cca68c01769b2eac0d134492d21f6d0ab5dd643965a4c90
262
+ webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131
263
+ yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
264
+
265
+ BUNDLED WITH
266
+ 2.6.9
@@ -0,0 +1,266 @@
1
+ GIT
2
+ remote: https://github.com/ruby/debug.git
3
+ revision: 6510cfbc7496c55ebbefa437a25c17ca58f7c5eb
4
+ specs:
5
+
6
+ PATH
7
+ remote: ..
8
+ specs:
9
+ sentry-ruby (6.6.2)
10
+ bigdecimal
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ logger
13
+
14
+ GEM
15
+ remote: https://rubygems.org/
16
+ specs:
17
+ activemodel (7.2.3.2)
18
+ activesupport (= 7.2.3.2)
19
+ activerecord (7.2.3.2)
20
+ activemodel (= 7.2.3.2)
21
+ activesupport (= 7.2.3.2)
22
+ timeout (>= 0.4.0)
23
+ activerecord-jdbc-adapter (72.1-java)
24
+ activerecord (~> 7.2.2)
25
+ activerecord-jdbcmysql-adapter (72.1-java)
26
+ activerecord-jdbc-adapter (= 72.1)
27
+ jdbc-mysql (>= 5.1.36, < 9)
28
+ activesupport (7.2.3.2)
29
+ base64
30
+ benchmark (>= 0.3)
31
+ bigdecimal
32
+ concurrent-ruby (~> 1.0, >= 1.3.1)
33
+ connection_pool (>= 2.2.5)
34
+ drb
35
+ i18n (>= 1.6, < 2)
36
+ logger (>= 1.4.2)
37
+ minitest (>= 5.1, < 6)
38
+ securerandom (>= 0.3)
39
+ tzinfo (~> 2.0, >= 2.0.5)
40
+ addressable (2.9.0)
41
+ public_suffix (>= 2.0.2, < 8.0)
42
+ base64 (0.3.0)
43
+ benchmark (0.5.0)
44
+ benchmark-ips (2.5.0)
45
+ benchmark-ipsa (0.2.0)
46
+ benchmark-ips (~> 2.5.0)
47
+ memory_profiler (~> 0.9.6)
48
+ benchmark-memory (0.1.2)
49
+ memory_profiler (~> 0.9)
50
+ benchmark_driver (0.16.5)
51
+ bigdecimal (4.1.2-java)
52
+ cgi (0.5.2-java)
53
+ concurrent-ruby (1.3.8)
54
+ connection_pool (2.5.5)
55
+ crack (1.0.1)
56
+ bigdecimal
57
+ rexml
58
+ date (3.5.1-java)
59
+ diff-lcs (1.6.2)
60
+ docile (1.4.1)
61
+ drb (2.2.3)
62
+ erb (4.0.4.1-java)
63
+ cgi (>= 0.3.3)
64
+ excon (1.6.0)
65
+ logger
66
+ faraday (2.14.3)
67
+ faraday-net_http (>= 2.0, < 3.5)
68
+ json
69
+ logger
70
+ faraday-net_http (3.4.4)
71
+ net-http (~> 0.5)
72
+ fiber-storage (1.0.1)
73
+ graphql (2.6.7)
74
+ base64
75
+ fiber-storage
76
+ logger
77
+ hashdiff (1.2.1)
78
+ i18n (1.15.2)
79
+ concurrent-ruby (~> 1.0)
80
+ io-console (0.8.2-java)
81
+ irb (1.18.0)
82
+ pp (>= 0.6.0)
83
+ prism (>= 1.3.0)
84
+ rdoc (>= 4.0.0)
85
+ reline (>= 0.4.2)
86
+ jar-dependencies (0.5.7)
87
+ jdbc-mysql (8.4.0.1)
88
+ jdbc-sqlite3 (3.46.1.1)
89
+ json (2.21.2-java)
90
+ logger (1.7.0)
91
+ memory_profiler (0.9.14)
92
+ minitest (5.27.0)
93
+ net-http (0.9.1)
94
+ uri (>= 0.11.1)
95
+ nio4r (2.7.5-java)
96
+ pp (0.6.4)
97
+ prettyprint
98
+ prettyprint (0.2.0)
99
+ prism (1.9.0)
100
+ psych (5.4.0-java)
101
+ date
102
+ jar-dependencies (>= 0.1.7)
103
+ public_suffix (6.0.2)
104
+ puma (8.0.2-java)
105
+ nio4r (~> 2.0)
106
+ rack (3.2.6)
107
+ rake (12.3.3)
108
+ rdoc (7.2.0)
109
+ erb
110
+ psych (>= 4.0.0)
111
+ tsort
112
+ redis (4.8.1)
113
+ reline (0.6.3)
114
+ io-console (~> 0.5)
115
+ rexml (3.4.1)
116
+ rspec (3.13.2)
117
+ rspec-core (~> 3.13.0)
118
+ rspec-expectations (~> 3.13.0)
119
+ rspec-mocks (~> 3.13.0)
120
+ rspec-core (3.13.6)
121
+ rspec-support (~> 3.13.0)
122
+ rspec-expectations (3.13.5)
123
+ diff-lcs (>= 1.2.0, < 2.0)
124
+ rspec-support (~> 3.13.0)
125
+ rspec-mocks (3.13.8)
126
+ diff-lcs (>= 1.2.0, < 2.0)
127
+ rspec-support (~> 3.13.0)
128
+ rspec-retry (0.6.2)
129
+ rspec-core (> 3.3)
130
+ rspec-support (3.13.7)
131
+ securerandom (0.4.1)
132
+ sequel (5.107.0)
133
+ bigdecimal
134
+ simplecov (0.22.0)
135
+ docile (~> 1.1)
136
+ simplecov-html (~> 0.11)
137
+ simplecov_json_formatter (~> 0.1)
138
+ simplecov-cobertura (3.2.0)
139
+ rexml
140
+ simplecov (~> 0.19)
141
+ simplecov-html (0.13.2)
142
+ simplecov_json_formatter (0.1.4)
143
+ timecop (0.9.11)
144
+ timeout (0.6.1)
145
+ tsort (0.2.0)
146
+ tzinfo (2.0.6)
147
+ concurrent-ruby (~> 1.0)
148
+ uri (1.1.1)
149
+ webmock (3.26.2)
150
+ addressable (>= 2.8.0)
151
+ crack (>= 0.3.2)
152
+ hashdiff (>= 0.4.0, < 2.0.0)
153
+ webrick (1.9.2)
154
+ yard (0.9.45)
155
+
156
+ PLATFORMS
157
+ universal-java-21
158
+
159
+ DEPENDENCIES
160
+ activerecord-jdbcmysql-adapter
161
+ benchmark-ips
162
+ benchmark-ipsa
163
+ benchmark-memory
164
+ benchmark_driver
165
+ cgi
166
+ debug!
167
+ excon
168
+ faraday
169
+ graphql (>= 2.2.6)
170
+ irb
171
+ jar-dependencies
172
+ jdbc-sqlite3
173
+ puma
174
+ rack (~> 3)
175
+ rake (~> 12.0)
176
+ redis (~> 4)
177
+ rexml (= 3.4.1)
178
+ rspec
179
+ rspec-retry
180
+ sentry-ruby!
181
+ sequel
182
+ simplecov
183
+ simplecov-cobertura (~> 3.0)
184
+ sqlite3 (~> 1.4.0)
185
+ timecop
186
+ webmock
187
+ webrick
188
+ yard
189
+
190
+ CHECKSUMS
191
+ activemodel (7.2.3.2) sha256=3777c67cd8dd1560f30387523013dacb370a0a1cf532037410887819e4416927
192
+ activerecord (7.2.3.2) sha256=e62d24ba7e5f820d24ed122eb9225491b0aaa8398778783b400067c3467285c7
193
+ activerecord-jdbc-adapter (72.1-java) sha256=4487cb4606b5d76913b5abaaf681ef21b7aa9478ed201918f48da6b3f7fcec70
194
+ activerecord-jdbcmysql-adapter (72.1-java) sha256=094d6e074e23668dff143f5c69cda0f0fc29468d9634b3c5e5884a3345e3d166
195
+ activesupport (7.2.3.2) sha256=ddc90d11dd88086d78ace03407fe3c2a3f5c8853c3c3046313db5ed823ef3312
196
+ addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af
197
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
198
+ benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
199
+ benchmark-ips (2.5.0) sha256=aa98e9dc420c0dc225f6bf8cea7f112ca015596868e9dcf2e15d4ee4e3eb80ee
200
+ benchmark-ipsa (0.2.0) sha256=8be4820765d575691b2f91f6c988a8a3d90393239bf9d35ea53c8ab0fbca7230
201
+ benchmark-memory (0.1.2) sha256=aa7bfe6776174d0ddefe6fb39945d88fff6d76eac165690188391d9acd441c87
202
+ benchmark_driver (0.16.5) sha256=f675df0fe1de7e18e40df313ae24ebe4c7ee7814a4165f29a1a37b863a685831
203
+ bigdecimal (4.1.2-java) sha256=ccc836eab720a525529f70ed0de26a206fdbc9a9e8ac67b3b4ac7318b03e114d
204
+ cgi (0.5.2-java) sha256=08bbfe06e10e771d36f10db6c1dfb81727ea2a25c3dbcd28d890a1794414a73d
205
+ concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
206
+ connection_pool (2.5.5) sha256=e54ff92855753df1fd7c59fa04a398833355f27dd14c074f8c83a05f72a716ad
207
+ crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
208
+ date (3.5.1-java) sha256=12e09477dc932afe45bf768cd362bf73026804e0db1e6c314186d6cd0bee3344
209
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
210
+ docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
211
+ drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
212
+ erb (4.0.4.1-java) sha256=3e4805edebd25f48cdb43ad4ebf1d61c11538f29373f0a48716b688819e3f7ce
213
+ excon (1.6.0) sha256=ebe2ab83c055ef8e117c62c91a3535b966a59a64868188219d49ab90cd83b65f
214
+ faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
215
+ faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
216
+ fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1
217
+ graphql (2.6.7) sha256=759755ce5819c965b6459c5039605cf2e4d876bb8ba5e03451676870ea787c45
218
+ hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
219
+ i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
220
+ io-console (0.8.2-java) sha256=837efefe96084c13ae91114917986ae6c6d1cf063b27b8419cc564a722a38af8
221
+ irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
222
+ jar-dependencies (0.5.7) sha256=013ce5f4639414ac8cf1169cdbe763da164b81e2d2c983d11042b5ff7bfcce80
223
+ jdbc-mysql (8.4.0.1) sha256=429cb7999d11c4f46a7153a382b6ac07935a4c10ddc52dd98e2d52b22c17fa13
224
+ jdbc-sqlite3 (3.46.1.1) sha256=2498fea7d37c0d51c6bad1b95ffc909173c014ba6bd36825f37910113d0230cf
225
+ json (2.21.2-java) sha256=f01521cd90639cc26b63040fb00d2b949f18f41ecaab5c82b02fb31d0b8b736c
226
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
227
+ memory_profiler (0.9.14) sha256=de558cf6525d8d56d2c0ea465b1664517fbe45560f892dc7a898d3b8c2863b12
228
+ minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
229
+ net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
230
+ nio4r (2.7.5-java) sha256=d14779d2a9b012ec0148a53344fbb2ed2a3c4d90c5dd923bf281135ab983b2c9
231
+ pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
232
+ prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
233
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
234
+ psych (5.4.0-java) sha256=5f948b27c94be491e6ae3e19484700fe87b7bea75f91a5ab8cdf18bb215b1a3b
235
+ public_suffix (6.0.2) sha256=bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394
236
+ puma (8.0.2-java) sha256=37392e0dbd01e2a157748b92b818bfacf801bb32628e41680e9ab1171dea2b3d
237
+ rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
238
+ rake (12.3.3) sha256=f7694adb4fe638da35452300cee6c545e9c377a0e3190018ac04d590b3c26ab3
239
+ rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
240
+ redis (4.8.1) sha256=387ee086694fffc9632aaeb1efe4a7b1627ca783bf373320346a8a20cd93333a
241
+ reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
242
+ rexml (3.4.1) sha256=c74527a9a0a04b4ec31dbe0dc4ed6004b960af943d8db42e539edde3a871abca
243
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
244
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
245
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
246
+ rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
247
+ rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858
248
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
249
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
250
+ sentry-ruby (6.6.2)
251
+ sequel (5.107.0) sha256=019629313205295b007f6df2c5eab19ddc40710d549fd445ac300f2853a370db
252
+ simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
253
+ simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740
254
+ simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
255
+ simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
256
+ timecop (0.9.11) sha256=41284dc6e5041f2184f781ace766f942108c842f8d8c1386a26e6343decc7542
257
+ timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
258
+ tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
259
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
260
+ uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
261
+ webmock (3.26.2) sha256=774556f2ea6371846cca68c01769b2eac0d134492d21f6d0ab5dd643965a4c90
262
+ webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131
263
+ yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
264
+
265
+ BUNDLED WITH
266
+ 2.6.9
data/lib/sentry/client.rb CHANGED
@@ -304,8 +304,13 @@ module Sentry
304
304
  rescue => e
305
305
  log_error("Envelope sending failed", e, debug: configuration.debug)
306
306
 
307
- envelope.items.map(&:data_category).each do |data_category|
308
- transport.record_lost_event(:network_error, data_category)
307
+ envelope.items.each do |item|
308
+ transport.record_lost_event(
309
+ :network_error,
310
+ item.data_category,
311
+ num: item.item_count,
312
+ num_bytes: item.lost_event_byte_size
313
+ )
309
314
  end
310
315
 
311
316
  raise
@@ -389,6 +389,24 @@ module Sentry
389
389
  # @return [Boolean]
390
390
  attr_accessor :strict_trace_continuation
391
391
 
392
+ # Which execution primitive owns the SDK's current hub.
393
+ #
394
+ # [+:thread+ (default)] Store the hub in thread-local storage. Correct for
395
+ # thread-based servers (Puma, Unicorn) and background processors (Sidekiq,
396
+ # Resque). Every fiber on a thread shares one hub.
397
+ # [+:fiber+] Store the hub in Fiber Storage (Ruby 3.2+). Each fiber gets its
398
+ # own hub, so concurrent requests on a fiber-based server (Falcon/async)
399
+ # are isolated instead of sharing and corrupting one another's scope. A
400
+ # fiber or thread started from another inherits its context and trace, but
401
+ # its own scope changes stay local. Requested on a Ruby without Fiber
402
+ # Storage (< 3.2), the SDK logs a warning and falls back to +:thread+.
403
+ #
404
+ # @return [Symbol]
405
+ attr_reader :hub_isolation_level
406
+
407
+ # Isolation levels the SDK understands for hub storage.
408
+ ISOLATION_LEVELS = %i[thread fiber].freeze
409
+
392
410
  # these are not config options
393
411
  # @!visibility private
394
412
  attr_reader :errors, :gem_specs
@@ -541,6 +559,7 @@ module Sentry
541
559
  self.capture_queue_time = true
542
560
  self.org_id = nil
543
561
  self.strict_trace_continuation = false
562
+ self.hub_isolation_level = :thread
544
563
 
545
564
  spotlight_env = ENV["SENTRY_SPOTLIGHT"]
546
565
  spotlight_bool = Sentry::Utils::EnvHelper.env_to_bool(spotlight_env, strict: true)
@@ -610,6 +629,23 @@ module Sentry
610
629
  @release = value
611
630
  end
612
631
 
632
+ def hub_isolation_level=(level)
633
+ level = level.to_sym if level.respond_to?(:to_sym)
634
+
635
+ unless ISOLATION_LEVELS.include?(level)
636
+ raise ArgumentError, "hub_isolation_level must be one of #{ISOLATION_LEVELS.inspect}, got #{level.inspect}"
637
+ end
638
+
639
+ # :fiber relies on Fiber Storage (Ruby 3.2+); downgrade so the hub is never
640
+ # asked to call Fiber[] on a Ruby that lacks it.
641
+ if level == :fiber && !fiber_storage_available?
642
+ log_warn("hub_isolation_level :fiber requires Ruby 3.2+ Fiber Storage; falling back to :thread on Ruby #{RUBY_VERSION}.")
643
+ level = :thread
644
+ end
645
+
646
+ @hub_isolation_level = level
647
+ end
648
+
613
649
  def breadcrumbs_logger=(logger)
614
650
  loggers =
615
651
  if logger.is_a?(Array)
@@ -806,6 +842,10 @@ module Sentry
806
842
 
807
843
  private
808
844
 
845
+ def fiber_storage_available?
846
+ ::Fiber.respond_to?(:[]) && ::Fiber.respond_to?(:[]=)
847
+ end
848
+
809
849
  def init_dsn(dsn_string)
810
850
  return if dsn_string.nil? || dsn_string.empty?
811
851
 
@@ -25,6 +25,13 @@ module Sentry
25
25
  end
26
26
  end
27
27
 
28
+ def self.byte_data_category(data_category)
29
+ case data_category
30
+ when "log_item" then "log_byte"
31
+ when "trace_metric" then "trace_metric_byte"
32
+ end
33
+ end
34
+
28
35
  def initialize(headers, payload)
29
36
  @headers = headers
30
37
  @payload = payload
@@ -33,6 +40,20 @@ module Sentry
33
40
  @size_limit = SIZE_LIMITS[type]
34
41
  end
35
42
 
43
+ def byte_data_category
44
+ self.class.byte_data_category(data_category)
45
+ end
46
+
47
+ def item_count
48
+ headers[:item_count] || 1
49
+ end
50
+
51
+ def lost_event_byte_size
52
+ return unless byte_data_category
53
+
54
+ (payload.is_a?(String) ? payload : JSON.generate(payload)).bytesize
55
+ end
56
+
36
57
  def to_s
37
58
  [JSON.generate(@headers), @payload.is_a?(String) ? @payload : JSON.generate(@payload)].join("\n")
38
59
  end