sentry-ruby 6.7.0 → 7.1.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/gemfiles/ruby-2.7_rack-2_redis-4.gemfile.lock +9 -9
  3. data/gemfiles/ruby-2.7_rack-3.1_redis-4.gemfile.lock +9 -9
  4. data/gemfiles/ruby-2.7_rack-3_redis-4.gemfile.lock +9 -9
  5. data/gemfiles/ruby-3.0_rack-2_redis-4.gemfile.lock +12 -12
  6. data/gemfiles/ruby-3.0_rack-3.1_redis-4.gemfile.lock +12 -12
  7. data/gemfiles/ruby-3.0_rack-3_redis-4.gemfile.lock +12 -12
  8. data/gemfiles/ruby-3.1_rack-2_redis-4.gemfile.lock +24 -24
  9. data/gemfiles/ruby-3.1_rack-3.1_redis-4.gemfile.lock +24 -24
  10. data/gemfiles/ruby-3.1_rack-3_redis-4.gemfile.lock +24 -24
  11. data/gemfiles/ruby-3.2_rack-0_redis-5.gemfile.lock +24 -24
  12. data/gemfiles/ruby-3.2_rack-2_redis-4.gemfile.lock +26 -26
  13. data/gemfiles/ruby-3.2_rack-2_redis-5.gemfile.lock +26 -26
  14. data/gemfiles/ruby-3.2_rack-3.1_redis-4.gemfile.lock +26 -26
  15. data/gemfiles/ruby-3.2_rack-3_redis-4.gemfile.lock +26 -26
  16. data/gemfiles/ruby-3.2_rack-3_redis-5.gemfile.lock +26 -26
  17. data/gemfiles/ruby-3.3_rack-2_redis-4.gemfile.lock +30 -30
  18. data/gemfiles/ruby-3.3_rack-3.1_redis-4.gemfile.lock +30 -30
  19. data/gemfiles/ruby-3.3_rack-3.1_redis-5.3.gemfile.lock +30 -30
  20. data/gemfiles/ruby-3.3_rack-3_redis-4.gemfile.lock +30 -30
  21. data/gemfiles/ruby-3.4_rack-2_redis-4.gemfile.lock +30 -30
  22. data/gemfiles/ruby-3.4_rack-3.1_redis-4.gemfile.lock +30 -30
  23. data/gemfiles/ruby-3.4_rack-3.1_redis-5.3.gemfile.lock +30 -30
  24. data/gemfiles/ruby-3.4_rack-3_redis-4.gemfile.lock +30 -30
  25. data/gemfiles/ruby-4.0_rack-2_redis-4.gemfile.lock +30 -30
  26. data/gemfiles/ruby-4.0_rack-3.1_redis-4.gemfile.lock +30 -30
  27. data/gemfiles/ruby-4.0_rack-3_redis-4.gemfile.lock +30 -30
  28. data/gemfiles/ruby-jruby-9.4.14.0_rack-2_redis-4.gemfile.lock +24 -24
  29. data/gemfiles/ruby-jruby-9.4.14.0_rack-3.1_redis-4.gemfile.lock +24 -24
  30. data/gemfiles/ruby-jruby-9.4.14.0_rack-3_redis-4.gemfile.lock +24 -24
  31. data/lib/sentry/backtrace.rb +10 -1
  32. data/lib/sentry/client.rb +21 -12
  33. data/lib/sentry/configuration.rb +35 -13
  34. data/lib/sentry/data_collection/key_value_collection.rb +136 -0
  35. data/lib/sentry/data_collection.rb +203 -0
  36. data/lib/sentry/debug_structured_logger.rb +2 -15
  37. data/lib/sentry/error_event.rb +6 -1
  38. data/lib/sentry/event.rb +8 -4
  39. data/lib/sentry/excon/middleware.rb +3 -8
  40. data/lib/sentry/faraday.rb +7 -5
  41. data/lib/sentry/hub.rb +11 -4
  42. data/lib/sentry/integrable.rb +12 -0
  43. data/lib/sentry/interfaces/exception.rb +8 -2
  44. data/lib/sentry/interfaces/request.rb +42 -46
  45. data/lib/sentry/interfaces/single_exception.rb +2 -2
  46. data/lib/sentry/log_event_buffer.rb +1 -1
  47. data/lib/sentry/metric_event.rb +4 -2
  48. data/lib/sentry/metric_event_buffer.rb +1 -1
  49. data/lib/sentry/metrics.rb +12 -6
  50. data/lib/sentry/net/http.rb +3 -4
  51. data/lib/sentry/redis.rb +1 -1
  52. data/lib/sentry/scope.rb +7 -3
  53. data/lib/sentry/session_flusher.rb +7 -0
  54. data/lib/sentry/std_lib_logger.rb +10 -8
  55. data/lib/sentry/telemetry_event_buffer.rb +57 -31
  56. data/lib/sentry/test_helper.rb +6 -4
  57. data/lib/sentry/threaded_periodic_worker.rb +90 -13
  58. data/lib/sentry/transaction.rb +7 -1
  59. data/lib/sentry/utils/callback_helper.rb +27 -0
  60. data/lib/sentry/utils/http_tracing.rb +42 -26
  61. data/lib/sentry/version.rb +1 -1
  62. data/lib/sentry-ruby.rb +7 -18
  63. metadata +9 -6
@@ -6,7 +6,7 @@ GIT
6
6
  PATH
7
7
  remote: ..
8
8
  specs:
9
- sentry-ruby (6.6.2)
9
+ sentry-ruby (7.0.0)
10
10
  bigdecimal
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  logger
@@ -48,7 +48,7 @@ GEM
48
48
  benchmark-memory (0.1.2)
49
49
  memory_profiler (~> 0.9)
50
50
  benchmark_driver (0.16.5)
51
- bigdecimal (4.1.2-java)
51
+ bigdecimal (4.1.3-java)
52
52
  cgi (0.5.2-java)
53
53
  concurrent-ruby (1.3.8)
54
54
  connection_pool (2.5.5)
@@ -63,30 +63,30 @@ GEM
63
63
  cgi (>= 0.3.3)
64
64
  excon (1.6.0)
65
65
  logger
66
- faraday (2.14.3)
66
+ faraday (2.14.4)
67
67
  faraday-net_http (>= 2.0, < 3.5)
68
68
  json
69
69
  logger
70
70
  faraday-net_http (3.4.4)
71
71
  net-http (~> 0.5)
72
72
  fiber-storage (1.0.1)
73
- graphql (2.6.7)
73
+ graphql (2.6.10)
74
74
  base64
75
75
  fiber-storage
76
76
  logger
77
77
  hashdiff (1.2.1)
78
78
  i18n (1.15.2)
79
79
  concurrent-ruby (~> 1.0)
80
- io-console (0.8.2-java)
80
+ io-console (0.9.4-java)
81
81
  irb (1.18.0)
82
82
  pp (>= 0.6.0)
83
83
  prism (>= 1.3.0)
84
84
  rdoc (>= 4.0.0)
85
85
  reline (>= 0.4.2)
86
- jar-dependencies (0.5.7)
86
+ jar-dependencies (0.6.1-java)
87
87
  jdbc-mysql (8.4.0.1)
88
88
  jdbc-sqlite3 (3.46.1.1)
89
- json (2.21.2-java)
89
+ json (3.0.2-java)
90
90
  logger (1.7.0)
91
91
  memory_profiler (0.9.14)
92
92
  minitest (5.27.0)
@@ -97,20 +97,20 @@ GEM
97
97
  prettyprint
98
98
  prettyprint (0.2.0)
99
99
  prism (1.9.0)
100
- psych (5.4.0-java)
100
+ psych (5.5.0-java)
101
101
  date
102
102
  jar-dependencies (>= 0.1.7)
103
103
  public_suffix (6.0.2)
104
104
  puma (8.0.2-java)
105
105
  nio4r (~> 2.0)
106
- rack (3.2.6)
106
+ rack (3.2.7)
107
107
  rake (12.3.3)
108
108
  rdoc (7.2.0)
109
109
  erb
110
110
  psych (>= 4.0.0)
111
111
  tsort
112
112
  redis (4.8.1)
113
- reline (0.6.3)
113
+ reline (0.7.0)
114
114
  io-console (~> 0.5)
115
115
  rexml (3.4.1)
116
116
  rspec (3.13.2)
@@ -129,7 +129,7 @@ GEM
129
129
  rspec-core (> 3.3)
130
130
  rspec-support (3.13.7)
131
131
  securerandom (0.4.1)
132
- sequel (5.107.0)
132
+ sequel (5.108.0)
133
133
  bigdecimal
134
134
  simplecov (0.22.0)
135
135
  docile (~> 1.1)
@@ -146,7 +146,7 @@ GEM
146
146
  tzinfo (2.0.6)
147
147
  concurrent-ruby (~> 1.0)
148
148
  uri (1.1.1)
149
- webmock (3.26.2)
149
+ webmock (3.26.4)
150
150
  addressable (>= 2.8.0)
151
151
  crack (>= 0.3.2)
152
152
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -200,7 +200,7 @@ CHECKSUMS
200
200
  benchmark-ipsa (0.2.0) sha256=8be4820765d575691b2f91f6c988a8a3d90393239bf9d35ea53c8ab0fbca7230
201
201
  benchmark-memory (0.1.2) sha256=aa7bfe6776174d0ddefe6fb39945d88fff6d76eac165690188391d9acd441c87
202
202
  benchmark_driver (0.16.5) sha256=f675df0fe1de7e18e40df313ae24ebe4c7ee7814a4165f29a1a37b863a685831
203
- bigdecimal (4.1.2-java) sha256=ccc836eab720a525529f70ed0de26a206fdbc9a9e8ac67b3b4ac7318b03e114d
203
+ bigdecimal (4.1.3-java) sha256=9a6a1fa67723a27ab1b3a6d5526322d8c82170af03199da7c915b8d9a1770532
204
204
  cgi (0.5.2-java) sha256=08bbfe06e10e771d36f10db6c1dfb81727ea2a25c3dbcd28d890a1794414a73d
205
205
  concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
206
206
  connection_pool (2.5.5) sha256=e54ff92855753df1fd7c59fa04a398833355f27dd14c074f8c83a05f72a716ad
@@ -211,18 +211,18 @@ CHECKSUMS
211
211
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
212
212
  erb (4.0.4.1-java) sha256=3e4805edebd25f48cdb43ad4ebf1d61c11538f29373f0a48716b688819e3f7ce
213
213
  excon (1.6.0) sha256=ebe2ab83c055ef8e117c62c91a3535b966a59a64868188219d49ab90cd83b65f
214
- faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
214
+ faraday (2.14.4) sha256=9bb4408c44621b0dbaaaa39e5dbfc4dbe58cc6751b6eb94d16ae9e1f2f2fab6e
215
215
  faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
216
216
  fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1
217
- graphql (2.6.7) sha256=759755ce5819c965b6459c5039605cf2e4d876bb8ba5e03451676870ea787c45
217
+ graphql (2.6.10) sha256=9b7c8633767f516ff9d48a8d6305b2a00a2101c82aa871b92e69086944f9f83e
218
218
  hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
219
219
  i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
220
- io-console (0.8.2-java) sha256=837efefe96084c13ae91114917986ae6c6d1cf063b27b8419cc564a722a38af8
220
+ io-console (0.9.4-java) sha256=789188c38b937fc2d04400e35fd3b2838ffdf061e846571e51524036bc1bc185
221
221
  irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
222
- jar-dependencies (0.5.7) sha256=013ce5f4639414ac8cf1169cdbe763da164b81e2d2c983d11042b5ff7bfcce80
222
+ jar-dependencies (0.6.1-java) sha256=2746643482d139fd9cecb524b57df63b71d9b5d734c7275171701201e3164f23
223
223
  jdbc-mysql (8.4.0.1) sha256=429cb7999d11c4f46a7153a382b6ac07935a4c10ddc52dd98e2d52b22c17fa13
224
224
  jdbc-sqlite3 (3.46.1.1) sha256=2498fea7d37c0d51c6bad1b95ffc909173c014ba6bd36825f37910113d0230cf
225
- json (2.21.2-java) sha256=f01521cd90639cc26b63040fb00d2b949f18f41ecaab5c82b02fb31d0b8b736c
225
+ json (3.0.2-java) sha256=2afafb9c82faabfb60ed2f37707973fdcb766dba2c99f0b9ed85f073d1d4c3d0
226
226
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
227
227
  memory_profiler (0.9.14) sha256=de558cf6525d8d56d2c0ea465b1664517fbe45560f892dc7a898d3b8c2863b12
228
228
  minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
@@ -231,14 +231,14 @@ CHECKSUMS
231
231
  pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
232
232
  prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
233
233
  prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
234
- psych (5.4.0-java) sha256=5f948b27c94be491e6ae3e19484700fe87b7bea75f91a5ab8cdf18bb215b1a3b
234
+ psych (5.5.0-java) sha256=3b7cf3684c44d049c3dee87ec4118ec9cd6ac714cbdcfba386997f96dbbd36ab
235
235
  public_suffix (6.0.2) sha256=bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394
236
236
  puma (8.0.2-java) sha256=37392e0dbd01e2a157748b92b818bfacf801bb32628e41680e9ab1171dea2b3d
237
- rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
237
+ rack (3.2.7) sha256=93e13e1c24f93556671d85d2d79fa228c3485815c50d7e2f265b5330c6528fb7
238
238
  rake (12.3.3) sha256=f7694adb4fe638da35452300cee6c545e9c377a0e3190018ac04d590b3c26ab3
239
239
  rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
240
240
  redis (4.8.1) sha256=387ee086694fffc9632aaeb1efe4a7b1627ca783bf373320346a8a20cd93333a
241
- reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
241
+ reline (0.7.0) sha256=5b012d8e55dbf9d450f12bde2cf7d15ff546ae80b3f8f3b30e570d431815583d
242
242
  rexml (3.4.1) sha256=c74527a9a0a04b4ec31dbe0dc4ed6004b960af943d8db42e539edde3a871abca
243
243
  rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
244
244
  rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
@@ -247,8 +247,8 @@ CHECKSUMS
247
247
  rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858
248
248
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
249
249
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
250
- sentry-ruby (6.6.2)
251
- sequel (5.107.0) sha256=019629313205295b007f6df2c5eab19ddc40710d549fd445ac300f2853a370db
250
+ sentry-ruby (7.0.0)
251
+ sequel (5.108.0) sha256=ae5996d1196775427916a2fa36e02f99762ead9affb8ea9b1aec2c0b16bdb3a3
252
252
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
253
253
  simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740
254
254
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
@@ -258,7 +258,7 @@ CHECKSUMS
258
258
  tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
259
259
  tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
260
260
  uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
261
- webmock (3.26.2) sha256=774556f2ea6371846cca68c01769b2eac0d134492d21f6d0ab5dd643965a4c90
261
+ webmock (3.26.4) sha256=8d8da206d217ebe6968cfb09c77f4533c23074e1432bad865f3994eacbaad50d
262
262
  webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131
263
263
  yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
264
264
 
@@ -6,7 +6,7 @@ GIT
6
6
  PATH
7
7
  remote: ..
8
8
  specs:
9
- sentry-ruby (6.6.2)
9
+ sentry-ruby (7.0.0)
10
10
  bigdecimal
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  logger
@@ -48,7 +48,7 @@ GEM
48
48
  benchmark-memory (0.1.2)
49
49
  memory_profiler (~> 0.9)
50
50
  benchmark_driver (0.16.5)
51
- bigdecimal (4.1.2-java)
51
+ bigdecimal (4.1.3-java)
52
52
  cgi (0.5.2-java)
53
53
  concurrent-ruby (1.3.8)
54
54
  connection_pool (2.5.5)
@@ -63,30 +63,30 @@ GEM
63
63
  cgi (>= 0.3.3)
64
64
  excon (1.6.0)
65
65
  logger
66
- faraday (2.14.3)
66
+ faraday (2.14.4)
67
67
  faraday-net_http (>= 2.0, < 3.5)
68
68
  json
69
69
  logger
70
70
  faraday-net_http (3.4.4)
71
71
  net-http (~> 0.5)
72
72
  fiber-storage (1.0.1)
73
- graphql (2.6.7)
73
+ graphql (2.6.10)
74
74
  base64
75
75
  fiber-storage
76
76
  logger
77
77
  hashdiff (1.2.1)
78
78
  i18n (1.15.2)
79
79
  concurrent-ruby (~> 1.0)
80
- io-console (0.8.2-java)
80
+ io-console (0.9.4-java)
81
81
  irb (1.18.0)
82
82
  pp (>= 0.6.0)
83
83
  prism (>= 1.3.0)
84
84
  rdoc (>= 4.0.0)
85
85
  reline (>= 0.4.2)
86
- jar-dependencies (0.5.7)
86
+ jar-dependencies (0.6.1-java)
87
87
  jdbc-mysql (8.4.0.1)
88
88
  jdbc-sqlite3 (3.46.1.1)
89
- json (2.21.2-java)
89
+ json (3.0.2-java)
90
90
  logger (1.7.0)
91
91
  memory_profiler (0.9.14)
92
92
  minitest (5.27.0)
@@ -97,20 +97,20 @@ GEM
97
97
  prettyprint
98
98
  prettyprint (0.2.0)
99
99
  prism (1.9.0)
100
- psych (5.4.0-java)
100
+ psych (5.5.0-java)
101
101
  date
102
102
  jar-dependencies (>= 0.1.7)
103
103
  public_suffix (6.0.2)
104
104
  puma (8.0.2-java)
105
105
  nio4r (~> 2.0)
106
- rack (3.2.6)
106
+ rack (3.2.7)
107
107
  rake (12.3.3)
108
108
  rdoc (7.2.0)
109
109
  erb
110
110
  psych (>= 4.0.0)
111
111
  tsort
112
112
  redis (4.8.1)
113
- reline (0.6.3)
113
+ reline (0.7.0)
114
114
  io-console (~> 0.5)
115
115
  rexml (3.4.1)
116
116
  rspec (3.13.2)
@@ -129,7 +129,7 @@ GEM
129
129
  rspec-core (> 3.3)
130
130
  rspec-support (3.13.7)
131
131
  securerandom (0.4.1)
132
- sequel (5.107.0)
132
+ sequel (5.108.0)
133
133
  bigdecimal
134
134
  simplecov (0.22.0)
135
135
  docile (~> 1.1)
@@ -146,7 +146,7 @@ GEM
146
146
  tzinfo (2.0.6)
147
147
  concurrent-ruby (~> 1.0)
148
148
  uri (1.1.1)
149
- webmock (3.26.2)
149
+ webmock (3.26.4)
150
150
  addressable (>= 2.8.0)
151
151
  crack (>= 0.3.2)
152
152
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -200,7 +200,7 @@ CHECKSUMS
200
200
  benchmark-ipsa (0.2.0) sha256=8be4820765d575691b2f91f6c988a8a3d90393239bf9d35ea53c8ab0fbca7230
201
201
  benchmark-memory (0.1.2) sha256=aa7bfe6776174d0ddefe6fb39945d88fff6d76eac165690188391d9acd441c87
202
202
  benchmark_driver (0.16.5) sha256=f675df0fe1de7e18e40df313ae24ebe4c7ee7814a4165f29a1a37b863a685831
203
- bigdecimal (4.1.2-java) sha256=ccc836eab720a525529f70ed0de26a206fdbc9a9e8ac67b3b4ac7318b03e114d
203
+ bigdecimal (4.1.3-java) sha256=9a6a1fa67723a27ab1b3a6d5526322d8c82170af03199da7c915b8d9a1770532
204
204
  cgi (0.5.2-java) sha256=08bbfe06e10e771d36f10db6c1dfb81727ea2a25c3dbcd28d890a1794414a73d
205
205
  concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
206
206
  connection_pool (2.5.5) sha256=e54ff92855753df1fd7c59fa04a398833355f27dd14c074f8c83a05f72a716ad
@@ -211,18 +211,18 @@ CHECKSUMS
211
211
  drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
212
212
  erb (4.0.4.1-java) sha256=3e4805edebd25f48cdb43ad4ebf1d61c11538f29373f0a48716b688819e3f7ce
213
213
  excon (1.6.0) sha256=ebe2ab83c055ef8e117c62c91a3535b966a59a64868188219d49ab90cd83b65f
214
- faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
214
+ faraday (2.14.4) sha256=9bb4408c44621b0dbaaaa39e5dbfc4dbe58cc6751b6eb94d16ae9e1f2f2fab6e
215
215
  faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
216
216
  fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1
217
- graphql (2.6.7) sha256=759755ce5819c965b6459c5039605cf2e4d876bb8ba5e03451676870ea787c45
217
+ graphql (2.6.10) sha256=9b7c8633767f516ff9d48a8d6305b2a00a2101c82aa871b92e69086944f9f83e
218
218
  hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
219
219
  i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
220
- io-console (0.8.2-java) sha256=837efefe96084c13ae91114917986ae6c6d1cf063b27b8419cc564a722a38af8
220
+ io-console (0.9.4-java) sha256=789188c38b937fc2d04400e35fd3b2838ffdf061e846571e51524036bc1bc185
221
221
  irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3
222
- jar-dependencies (0.5.7) sha256=013ce5f4639414ac8cf1169cdbe763da164b81e2d2c983d11042b5ff7bfcce80
222
+ jar-dependencies (0.6.1-java) sha256=2746643482d139fd9cecb524b57df63b71d9b5d734c7275171701201e3164f23
223
223
  jdbc-mysql (8.4.0.1) sha256=429cb7999d11c4f46a7153a382b6ac07935a4c10ddc52dd98e2d52b22c17fa13
224
224
  jdbc-sqlite3 (3.46.1.1) sha256=2498fea7d37c0d51c6bad1b95ffc909173c014ba6bd36825f37910113d0230cf
225
- json (2.21.2-java) sha256=f01521cd90639cc26b63040fb00d2b949f18f41ecaab5c82b02fb31d0b8b736c
225
+ json (3.0.2-java) sha256=2afafb9c82faabfb60ed2f37707973fdcb766dba2c99f0b9ed85f073d1d4c3d0
226
226
  logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
227
227
  memory_profiler (0.9.14) sha256=de558cf6525d8d56d2c0ea465b1664517fbe45560f892dc7a898d3b8c2863b12
228
228
  minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
@@ -231,14 +231,14 @@ CHECKSUMS
231
231
  pp (0.6.4) sha256=dfcb0fce700c41456265922884f9fe195d7fbb0674a3578e6c0f69588e82b570
232
232
  prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
233
233
  prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
234
- psych (5.4.0-java) sha256=5f948b27c94be491e6ae3e19484700fe87b7bea75f91a5ab8cdf18bb215b1a3b
234
+ psych (5.5.0-java) sha256=3b7cf3684c44d049c3dee87ec4118ec9cd6ac714cbdcfba386997f96dbbd36ab
235
235
  public_suffix (6.0.2) sha256=bfa7cd5108066f8c9602e0d6d4114999a5df5839a63149d3e8b0f9c1d3558394
236
236
  puma (8.0.2-java) sha256=37392e0dbd01e2a157748b92b818bfacf801bb32628e41680e9ab1171dea2b3d
237
- rack (3.2.6) sha256=5ed78e1f73b2e25679bec7d45ee2d4483cc4146eb1be0264fc4d94cb5ef212c2
237
+ rack (3.2.7) sha256=93e13e1c24f93556671d85d2d79fa228c3485815c50d7e2f265b5330c6528fb7
238
238
  rake (12.3.3) sha256=f7694adb4fe638da35452300cee6c545e9c377a0e3190018ac04d590b3c26ab3
239
239
  rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
240
240
  redis (4.8.1) sha256=387ee086694fffc9632aaeb1efe4a7b1627ca783bf373320346a8a20cd93333a
241
- reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
241
+ reline (0.7.0) sha256=5b012d8e55dbf9d450f12bde2cf7d15ff546ae80b3f8f3b30e570d431815583d
242
242
  rexml (3.4.1) sha256=c74527a9a0a04b4ec31dbe0dc4ed6004b960af943d8db42e539edde3a871abca
243
243
  rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
244
244
  rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
@@ -247,8 +247,8 @@ CHECKSUMS
247
247
  rspec-retry (0.6.2) sha256=6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858
248
248
  rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
249
249
  securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
250
- sentry-ruby (6.6.2)
251
- sequel (5.107.0) sha256=019629313205295b007f6df2c5eab19ddc40710d549fd445ac300f2853a370db
250
+ sentry-ruby (7.0.0)
251
+ sequel (5.108.0) sha256=ae5996d1196775427916a2fa36e02f99762ead9affb8ea9b1aec2c0b16bdb3a3
252
252
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
253
253
  simplecov-cobertura (3.2.0) sha256=70d702658677fcb20e5aceb6915ccf8bc62ff2ccd38b62b3ad5c9db5c0888740
254
254
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
@@ -258,7 +258,7 @@ CHECKSUMS
258
258
  tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
259
259
  tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
260
260
  uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
261
- webmock (3.26.2) sha256=774556f2ea6371846cca68c01769b2eac0d134492d21f6d0ab5dd643965a4c90
261
+ webmock (3.26.4) sha256=8d8da206d217ebe6968cfb09c77f4533c23074e1432bad865f3994eacbaad50d
262
262
  webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131
263
263
  yard (0.9.45) sha256=52e211493f7cb8a3ebf7e104a25a1e73937a3103092545d34cb88fafebb3dc51
264
264
 
@@ -7,6 +7,8 @@ require "sentry/backtrace/line"
7
7
  module Sentry
8
8
  # @api private
9
9
  class Backtrace
10
+ extend CallbackHelper
11
+
10
12
  # holder for an Array of Backtrace::Line instances
11
13
  attr_reader :lines
12
14
 
@@ -15,7 +17,14 @@ module Sentry
15
17
  def self.parse(backtrace, project_root, app_dirs_pattern, in_app_pattern: nil, &backtrace_cleanup_callback)
16
18
  ruby_lines = backtrace.is_a?(Array) ? backtrace : backtrace.split(/\n\s*/)
17
19
 
18
- ruby_lines = backtrace_cleanup_callback.call(ruby_lines) if backtrace_cleanup_callback
20
+ if backtrace_cleanup_callback
21
+ ruby_lines = safe_dispatch_callback(
22
+ "backtrace_cleanup_callback",
23
+ backtrace_cleanup_callback,
24
+ [ruby_lines],
25
+ fallback: ruby_lines
26
+ )
27
+ end
19
28
 
20
29
  # in_app_pattern is now passed in from StacktraceBuilder, so this regex won't be triggered
21
30
  # only here for backwards compat and will be deleted
data/lib/sentry/client.rb CHANGED
@@ -11,6 +11,7 @@ require "sentry/utils/encoding_helper"
11
11
  module Sentry
12
12
  class Client
13
13
  include LoggingHelper
14
+ include CallbackHelper
14
15
 
15
16
  # The Transport object that'll send events for the client.
16
17
  # @return [Transport]
@@ -48,13 +49,9 @@ module Sentry
48
49
 
49
50
  @spotlight_transport = SpotlightTransport.new(configuration) if configuration.spotlight
50
51
 
51
- if configuration.enable_logs
52
- @log_event_buffer = LogEventBuffer.new(configuration, self)
53
- end
52
+ @log_event_buffer = LogEventBuffer.new(configuration, self)
54
53
 
55
- if configuration.enable_metrics
56
- @metric_event_buffer = MetricEventBuffer.new(configuration, self)
57
- end
54
+ @metric_event_buffer = MetricEventBuffer.new(configuration, self)
58
55
  end
59
56
 
60
57
  # Applies the given scope's data to the event and sends it to Sentry.
@@ -93,7 +90,7 @@ module Sentry
93
90
  transport.record_lost_event(:queue_overflow, "span", num: spans_before + 1) if is_transaction
94
91
  end
95
92
  else
96
- send_event(event, hint)
93
+ event = send_event(event, hint)
97
94
  end
98
95
 
99
96
  event
@@ -133,8 +130,8 @@ module Sentry
133
130
  def flush
134
131
  transport.flush if configuration.sending_to_dsn_allowed?
135
132
  spotlight_transport.flush if spotlight_transport
136
- @log_event_buffer&.flush
137
- @metric_event_buffer&.flush
133
+ @log_event_buffer.flush
134
+ @metric_event_buffer.flush
138
135
  end
139
136
 
140
137
  # Initializes an Event object with the given exception. Returns `nil` if the exception's class is excluded from reporting.
@@ -241,7 +238,11 @@ module Sentry
241
238
  spans_before = event.is_a?(TransactionEvent) ? event.spans.size : 0
242
239
 
243
240
  if event.is_a?(ErrorEvent) && configuration.before_send
244
- event = configuration.before_send.call(event, hint)
241
+ event = safe_dispatch_callback(
242
+ "before_send",
243
+ configuration.before_send,
244
+ [event, hint]
245
+ )
245
246
 
246
247
  if !event.is_a?(ErrorEvent)
247
248
  # Avoid serializing the event object in this case because we aren't sure what it is and what it contains
@@ -254,7 +255,11 @@ module Sentry
254
255
  end
255
256
 
256
257
  if event.is_a?(TransactionEvent) && configuration.before_send_transaction
257
- event = configuration.before_send_transaction.call(event, hint)
258
+ event = safe_dispatch_callback(
259
+ "before_send_transaction",
260
+ configuration.before_send_transaction,
261
+ [event, hint]
262
+ )
258
263
 
259
264
  if !event.is_a?(TransactionEvent)
260
265
  # Avoid serializing the event object in this case because we aren't sure what it is and what it contains
@@ -272,7 +277,11 @@ module Sentry
272
277
  end
273
278
 
274
279
  if event.is_a?(CheckInEvent) && configuration.before_send_check_in
275
- event = configuration.before_send_check_in.call(event, hint)
280
+ event = safe_dispatch_callback(
281
+ "before_send_check_in",
282
+ configuration.before_send_check_in,
283
+ [event, hint]
284
+ )
276
285
 
277
286
  if !event.is_a?(CheckInEvent)
278
287
  # Avoid serializing the event object in this case because we aren't sure what it is and what it contains
@@ -16,6 +16,7 @@ require "sentry/logger"
16
16
  require "sentry/structured_logger"
17
17
  require "sentry/log_event_buffer"
18
18
  require "sentry/metric_event_buffer"
19
+ require "sentry/data_collection"
19
20
 
20
21
  module Sentry
21
22
  class Configuration
@@ -132,6 +133,7 @@ module Sentry
132
133
  attr_accessor :max_breadcrumbs
133
134
 
134
135
  # Number of lines of code context to capture, or nil for none
136
+ # @deprecated Use {#data_collection} and `frame_context_lines` instead.
135
137
  # @return [Integer, nil]
136
138
  attr_accessor :context_lines
137
139
 
@@ -167,8 +169,14 @@ module Sentry
167
169
  alias inspect_exception_causes_for_exclusion? inspect_exception_causes_for_exclusion
168
170
 
169
171
  # Whether to capture local variables from the raised exception's frame. Default is false.
172
+ # @deprecated Use {#data_collection} and `stack_frame_variables` instead.
170
173
  # @return [Boolean]
171
- attr_accessor :include_local_variables
174
+ attr_reader :include_local_variables
175
+
176
+ def include_local_variables=(value)
177
+ @include_local_variables = value
178
+ @data_collection.backfill_stack_frame_variables(self)
179
+ end
172
180
 
173
181
  # Whether to capture events and traces into Spotlight. Default is false.
174
182
  # If you set this to true, Sentry will send events and traces to the local
@@ -209,6 +217,7 @@ module Sentry
209
217
  attr_accessor :propagate_traces
210
218
 
211
219
  # Array of rack env parameters to be included in the event sent to sentry.
220
+ # @deprecated Use `data_collection.http_headers.request` to control request data collection instead.
212
221
  # @return [Array<String>]
213
222
  attr_accessor :rack_env_whitelist
214
223
 
@@ -232,8 +241,14 @@ module Sentry
232
241
  # - request body
233
242
  # - query string
234
243
  # will not be sent to Sentry.
244
+ # @deprecated Use {#data_collection} instead.
235
245
  # @return [Boolean]
236
- attr_accessor :send_default_pii
246
+ attr_reader :send_default_pii
247
+
248
+ # Controls which categories of data may be collected.
249
+ # Replacement for send_default_pii.
250
+ # @return [DataCollection]
251
+ attr_accessor :data_collection
237
252
 
238
253
  # Capture queue time from X-Request-Start header set by reverse proxies.
239
254
  # Works with any Rack app behind Nginx, HAProxy, Heroku router, etc.
@@ -273,10 +288,6 @@ module Sentry
273
288
  # @return [Proc]
274
289
  attr_accessor :traces_sampler
275
290
 
276
- # Enable Structured Logging
277
- # @return [Boolean]
278
- attr_accessor :enable_logs
279
-
280
291
  # Structured logging configuration.
281
292
  # @return [StructuredLoggingConfiguration]
282
293
  attr_reader :structured_logging
@@ -345,10 +356,6 @@ module Sentry
345
356
  # @return [Integer]
346
357
  attr_accessor :max_log_events
347
358
 
348
- # Enable metrics collection, defaults to true
349
- # @return [Boolean]
350
- attr_accessor :enable_metrics
351
-
352
359
  # Maximum number of metric events to buffer before sending
353
360
  # @return [Integer]
354
361
  attr_accessor :max_metric_events
@@ -435,7 +442,7 @@ module Sentry
435
442
  SERVER_PORT
436
443
  ].freeze
437
444
 
438
- TRACE_IGNORE_STATUS_CODES_DEFAULT = [(301..303), (305..399), (401..404)]
445
+ TRACE_IGNORE_STATUS_CODES_DEFAULT = [301, (305..399), (401..404)]
439
446
 
440
447
  HEROKU_DYNO_METADATA_MESSAGE = "You are running on Heroku but haven't enabled Dyno Metadata. For Sentry's "\
441
448
  "release detection to work correctly, please run `heroku labs:enable runtime-dyno-metadata`"
@@ -527,6 +534,7 @@ module Sentry
527
534
  def initialize
528
535
  run_callbacks(:before, :initialize)
529
536
 
537
+ self.data_collection = DataCollection.new
530
538
  self.app_dirs_pattern = APP_DIRS_PATTERN
531
539
  self.debug = Sentry::Utils::EnvHelper.env_to_bool(ENV["SENTRY_DEBUG"])
532
540
  self.background_worker_threads = (processor_count / 2.0).ceil
@@ -537,6 +545,7 @@ module Sentry
537
545
  self.breadcrumbs_logger = []
538
546
  self.context_lines = 3
539
547
  self.include_local_variables = false
548
+
540
549
  self.environment = environment_from_env
541
550
  self.enabled_environments = nil
542
551
  self.exclude_loggers = []
@@ -578,8 +587,6 @@ module Sentry
578
587
  self.std_lib_logger_filter = nil
579
588
  self.rack_env_whitelist = RACK_ENV_WHITELIST_DEFAULT
580
589
  self.traces_sampler = nil
581
- self.enable_logs = false
582
- self.enable_metrics = true
583
590
 
584
591
  self.profiler_class = Sentry::Profiler
585
592
  self.profiles_sample_interval = DEFAULT_PROFILES_SAMPLE_INTERVAL
@@ -596,6 +603,8 @@ module Sentry
596
603
 
597
604
  yield(self) if block_given?
598
605
 
606
+ log_deprecations
607
+
599
608
  run_callbacks(:after, :configured)
600
609
  end
601
610
 
@@ -621,6 +630,11 @@ module Sentry
621
630
  @dsn = init_dsn(value)
622
631
  end
623
632
 
633
+ def send_default_pii=(value)
634
+ @send_default_pii = value
635
+ self.data_collection = DataCollection.backfill(self)
636
+ end
637
+
624
638
  alias server= dsn=
625
639
 
626
640
  def release=(value)
@@ -804,6 +818,14 @@ module Sentry
804
818
  end
805
819
  end
806
820
 
821
+ # @api private
822
+ def log_deprecations
823
+ log_warn("`send_default_pii` is deprecated; use `data_collection` instead.") if self.send_default_pii
824
+ log_warn("`include_local_variables` is deprecated; use `data_collection.stack_frame_variables` instead.") if include_local_variables
825
+ log_warn("`context_lines` is deprecated; use `data_collection.frame_context_lines` instead.") if context_lines != 3
826
+ log_warn("`rack_env_whitelist` is deprecated; use `data_collection.http_headers.request` to control request data collection instead.") if rack_env_whitelist != RACK_ENV_WHITELIST_DEFAULT
827
+ end
828
+
807
829
  # @api private
808
830
  def stacktrace_builder
809
831
  @stacktrace_builder ||= StacktraceBuilder.new(