sentry-ruby 5.16.1 → 5.20.1
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/Gemfile +3 -0
- data/README.md +20 -10
- data/Rakefile +1 -1
- data/bin/console +1 -0
- data/lib/sentry/attachment.rb +40 -0
- data/lib/sentry/background_worker.rb +1 -1
- data/lib/sentry/backpressure_monitor.rb +2 -32
- data/lib/sentry/backtrace.rb +8 -6
- data/lib/sentry/baggage.rb +6 -6
- data/lib/sentry/breadcrumb/sentry_logger.rb +6 -6
- data/lib/sentry/check_in_event.rb +5 -5
- data/lib/sentry/client.rb +61 -11
- data/lib/sentry/configuration.rb +53 -25
- data/lib/sentry/core_ext/object/deep_dup.rb +1 -1
- data/lib/sentry/cron/monitor_check_ins.rb +1 -1
- data/lib/sentry/cron/monitor_config.rb +1 -1
- data/lib/sentry/cron/monitor_schedule.rb +1 -1
- data/lib/sentry/dsn.rb +4 -4
- data/lib/sentry/envelope.rb +19 -2
- data/lib/sentry/error_event.rb +2 -2
- data/lib/sentry/event.rb +20 -18
- data/lib/sentry/faraday.rb +77 -0
- data/lib/sentry/graphql.rb +9 -0
- data/lib/sentry/hub.rb +23 -3
- data/lib/sentry/integrable.rb +4 -0
- data/lib/sentry/interface.rb +1 -0
- data/lib/sentry/interfaces/exception.rb +5 -3
- data/lib/sentry/interfaces/mechanism.rb +20 -0
- data/lib/sentry/interfaces/request.rb +7 -7
- data/lib/sentry/interfaces/single_exception.rb +7 -5
- data/lib/sentry/interfaces/stacktrace.rb +3 -1
- data/lib/sentry/interfaces/stacktrace_builder.rb +23 -2
- data/lib/sentry/logger.rb +1 -1
- data/lib/sentry/metrics/aggregator.rb +248 -0
- data/lib/sentry/metrics/configuration.rb +47 -0
- data/lib/sentry/metrics/counter_metric.rb +25 -0
- data/lib/sentry/metrics/distribution_metric.rb +25 -0
- data/lib/sentry/metrics/gauge_metric.rb +35 -0
- data/lib/sentry/metrics/local_aggregator.rb +53 -0
- data/lib/sentry/metrics/metric.rb +19 -0
- data/lib/sentry/metrics/set_metric.rb +28 -0
- data/lib/sentry/metrics/timing.rb +43 -0
- data/lib/sentry/metrics.rb +56 -0
- data/lib/sentry/net/http.rb +18 -39
- data/lib/sentry/profiler.rb +19 -20
- data/lib/sentry/propagation_context.rb +10 -9
- data/lib/sentry/puma.rb +1 -1
- data/lib/sentry/rack/capture_exceptions.rb +15 -3
- data/lib/sentry/rack.rb +2 -2
- data/lib/sentry/rake.rb +4 -2
- data/lib/sentry/redis.rb +2 -1
- data/lib/sentry/release_detector.rb +4 -4
- data/lib/sentry/scope.rb +36 -26
- data/lib/sentry/session.rb +2 -2
- data/lib/sentry/session_flusher.rb +7 -39
- data/lib/sentry/span.rb +46 -5
- data/lib/sentry/test_helper.rb +3 -2
- data/lib/sentry/threaded_periodic_worker.rb +39 -0
- data/lib/sentry/transaction.rb +17 -15
- data/lib/sentry/transaction_event.rb +6 -1
- data/lib/sentry/transport/configuration.rb +0 -1
- data/lib/sentry/transport/http_transport.rb +12 -12
- data/lib/sentry/transport.rb +18 -26
- data/lib/sentry/utils/argument_checking_helper.rb +6 -0
- data/lib/sentry/utils/env_helper.rb +21 -0
- data/lib/sentry/utils/http_tracing.rb +41 -0
- data/lib/sentry/utils/logging_helper.rb +0 -4
- data/lib/sentry/utils/real_ip.rb +2 -2
- data/lib/sentry/utils/request_id.rb +1 -1
- data/lib/sentry/version.rb +1 -1
- data/lib/sentry-ruby.rb +34 -3
- data/sentry-ruby-core.gemspec +1 -1
- data/sentry-ruby.gemspec +13 -6
- metadata +40 -7
data/lib/sentry-ruby.rb
CHANGED
@@ -20,13 +20,15 @@ require "sentry/span"
|
|
20
20
|
require "sentry/transaction"
|
21
21
|
require "sentry/hub"
|
22
22
|
require "sentry/background_worker"
|
23
|
+
require "sentry/threaded_periodic_worker"
|
23
24
|
require "sentry/session_flusher"
|
24
25
|
require "sentry/backpressure_monitor"
|
25
26
|
require "sentry/cron/monitor_check_ins"
|
27
|
+
require "sentry/metrics"
|
26
28
|
|
27
29
|
[
|
28
30
|
"sentry/rake",
|
29
|
-
"sentry/rack"
|
31
|
+
"sentry/rack"
|
30
32
|
].each do |lib|
|
31
33
|
begin
|
32
34
|
require lib
|
@@ -77,6 +79,10 @@ module Sentry
|
|
77
79
|
# @return [BackpressureMonitor, nil]
|
78
80
|
attr_reader :backpressure_monitor
|
79
81
|
|
82
|
+
# @!attribute [r] metrics_aggregator
|
83
|
+
# @return [Metrics::Aggregator, nil]
|
84
|
+
attr_reader :metrics_aggregator
|
85
|
+
|
80
86
|
##### Patch Registration #####
|
81
87
|
|
82
88
|
# @!visibility private
|
@@ -205,6 +211,13 @@ module Sentry
|
|
205
211
|
get_current_scope.set_context(*args)
|
206
212
|
end
|
207
213
|
|
214
|
+
# @!method add_attachment
|
215
|
+
# @!macro add_attachment
|
216
|
+
def add_attachment(**opts)
|
217
|
+
return unless initialized?
|
218
|
+
get_current_scope.add_attachment(**opts)
|
219
|
+
end
|
220
|
+
|
208
221
|
##### Main APIs #####
|
209
222
|
|
210
223
|
# Initializes the SDK with given configuration.
|
@@ -222,8 +235,9 @@ module Sentry
|
|
222
235
|
Thread.current.thread_variable_set(THREAD_LOCAL, hub)
|
223
236
|
@main_hub = hub
|
224
237
|
@background_worker = Sentry::BackgroundWorker.new(config)
|
225
|
-
@session_flusher = config.
|
238
|
+
@session_flusher = config.session_tracking? ? Sentry::SessionFlusher.new(config, client) : nil
|
226
239
|
@backpressure_monitor = config.enable_backpressure_handling ? Sentry::BackpressureMonitor.new(config, client) : nil
|
240
|
+
@metrics_aggregator = config.metrics.enabled ? Sentry::Metrics::Aggregator.new(config, client) : nil
|
227
241
|
exception_locals_tp.enable if config.include_local_variables
|
228
242
|
at_exit { close }
|
229
243
|
end
|
@@ -244,8 +258,14 @@ module Sentry
|
|
244
258
|
@backpressure_monitor = nil
|
245
259
|
end
|
246
260
|
|
261
|
+
if @metrics_aggregator
|
262
|
+
@metrics_aggregator.flush(force: true)
|
263
|
+
@metrics_aggregator.kill
|
264
|
+
@metrics_aggregator = nil
|
265
|
+
end
|
266
|
+
|
247
267
|
if client = get_current_client
|
248
|
-
client.
|
268
|
+
client.flush
|
249
269
|
|
250
270
|
if client.configuration.include_local_variables
|
251
271
|
exception_locals_tp.disable
|
@@ -538,6 +558,15 @@ module Sentry
|
|
538
558
|
get_current_hub.get_trace_propagation_headers
|
539
559
|
end
|
540
560
|
|
561
|
+
# Returns the a Hash containing sentry-trace and baggage.
|
562
|
+
# Can be either from the currently active span or the propagation context.
|
563
|
+
#
|
564
|
+
# @return [String]
|
565
|
+
def get_trace_propagation_meta
|
566
|
+
return "" unless initialized?
|
567
|
+
get_current_hub.get_trace_propagation_meta
|
568
|
+
end
|
569
|
+
|
541
570
|
# Continue an incoming trace from a rack env like hash.
|
542
571
|
#
|
543
572
|
# @param env [Hash]
|
@@ -578,3 +607,5 @@ end
|
|
578
607
|
require "sentry/net/http"
|
579
608
|
require "sentry/redis"
|
580
609
|
require "sentry/puma"
|
610
|
+
require "sentry/graphql"
|
611
|
+
require "sentry/faraday"
|
data/sentry-ruby-core.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.platform = Gem::Platform::RUBY
|
13
13
|
spec.required_ruby_version = '>= 2.4'
|
14
14
|
spec.extra_rdoc_files = ["README.md", "LICENSE.txt"]
|
15
|
-
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
|
15
|
+
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples|\.rubocop\.yml)'`.split("\n")
|
16
16
|
|
17
17
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
18
|
spec.metadata["source_code_uri"] = spec.homepage
|
data/sentry-ruby.gemspec
CHANGED
@@ -7,18 +7,25 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.description = spec.summary = "A gem that provides a client interface for the Sentry error logger"
|
8
8
|
spec.email = "accounts@sentry.io"
|
9
9
|
spec.license = 'MIT'
|
10
|
-
spec.homepage = "https://github.com/getsentry/sentry-ruby"
|
11
10
|
|
12
11
|
spec.platform = Gem::Platform::RUBY
|
13
12
|
spec.required_ruby_version = '>= 2.4'
|
14
13
|
spec.extra_rdoc_files = ["README.md", "LICENSE.txt"]
|
15
|
-
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
|
14
|
+
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples|\.rubocop\.yml)'`.split("\n")
|
16
15
|
|
17
|
-
|
18
|
-
spec.
|
19
|
-
|
16
|
+
github_root_uri = 'https://github.com/getsentry/sentry-ruby'
|
17
|
+
spec.homepage = "#{github_root_uri}/tree/#{spec.version}/#{spec.name}"
|
18
|
+
|
19
|
+
spec.metadata = {
|
20
|
+
"homepage_uri" => spec.homepage,
|
21
|
+
"source_code_uri" => spec.homepage,
|
22
|
+
"changelog_uri" => "#{github_root_uri}/blob/#{spec.version}/CHANGELOG.md",
|
23
|
+
"bug_tracker_uri" => "#{github_root_uri}/issues",
|
24
|
+
"documentation_uri" => "http://www.rubydoc.info/gems/#{spec.name}/#{spec.version}"
|
25
|
+
}
|
20
26
|
|
21
27
|
spec.require_paths = ["lib"]
|
22
28
|
|
23
|
-
spec.add_dependency "concurrent-ruby",
|
29
|
+
spec.add_dependency "concurrent-ruby", "~> 1.0", ">= 1.0.2"
|
30
|
+
spec.add_dependency "bigdecimal"
|
24
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sentry-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sentry Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -30,6 +30,20 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.0.2
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: bigdecimal
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
33
47
|
description: A gem that provides a client interface for the Sentry error logger
|
34
48
|
email: accounts@sentry.io
|
35
49
|
executables: []
|
@@ -50,6 +64,7 @@ files:
|
|
50
64
|
- bin/console
|
51
65
|
- bin/setup
|
52
66
|
- lib/sentry-ruby.rb
|
67
|
+
- lib/sentry/attachment.rb
|
53
68
|
- lib/sentry/background_worker.rb
|
54
69
|
- lib/sentry/backpressure_monitor.rb
|
55
70
|
- lib/sentry/backtrace.rb
|
@@ -71,10 +86,13 @@ files:
|
|
71
86
|
- lib/sentry/error_event.rb
|
72
87
|
- lib/sentry/event.rb
|
73
88
|
- lib/sentry/exceptions.rb
|
89
|
+
- lib/sentry/faraday.rb
|
90
|
+
- lib/sentry/graphql.rb
|
74
91
|
- lib/sentry/hub.rb
|
75
92
|
- lib/sentry/integrable.rb
|
76
93
|
- lib/sentry/interface.rb
|
77
94
|
- lib/sentry/interfaces/exception.rb
|
95
|
+
- lib/sentry/interfaces/mechanism.rb
|
78
96
|
- lib/sentry/interfaces/request.rb
|
79
97
|
- lib/sentry/interfaces/single_exception.rb
|
80
98
|
- lib/sentry/interfaces/stacktrace.rb
|
@@ -82,6 +100,16 @@ files:
|
|
82
100
|
- lib/sentry/interfaces/threads.rb
|
83
101
|
- lib/sentry/linecache.rb
|
84
102
|
- lib/sentry/logger.rb
|
103
|
+
- lib/sentry/metrics.rb
|
104
|
+
- lib/sentry/metrics/aggregator.rb
|
105
|
+
- lib/sentry/metrics/configuration.rb
|
106
|
+
- lib/sentry/metrics/counter_metric.rb
|
107
|
+
- lib/sentry/metrics/distribution_metric.rb
|
108
|
+
- lib/sentry/metrics/gauge_metric.rb
|
109
|
+
- lib/sentry/metrics/local_aggregator.rb
|
110
|
+
- lib/sentry/metrics/metric.rb
|
111
|
+
- lib/sentry/metrics/set_metric.rb
|
112
|
+
- lib/sentry/metrics/timing.rb
|
85
113
|
- lib/sentry/net/http.rb
|
86
114
|
- lib/sentry/profiler.rb
|
87
115
|
- lib/sentry/propagation_context.rb
|
@@ -96,6 +124,7 @@ files:
|
|
96
124
|
- lib/sentry/session_flusher.rb
|
97
125
|
- lib/sentry/span.rb
|
98
126
|
- lib/sentry/test_helper.rb
|
127
|
+
- lib/sentry/threaded_periodic_worker.rb
|
99
128
|
- lib/sentry/transaction.rb
|
100
129
|
- lib/sentry/transaction_event.rb
|
101
130
|
- lib/sentry/transport.rb
|
@@ -106,20 +135,24 @@ files:
|
|
106
135
|
- lib/sentry/utils/argument_checking_helper.rb
|
107
136
|
- lib/sentry/utils/custom_inspection.rb
|
108
137
|
- lib/sentry/utils/encoding_helper.rb
|
138
|
+
- lib/sentry/utils/env_helper.rb
|
109
139
|
- lib/sentry/utils/exception_cause_chain.rb
|
140
|
+
- lib/sentry/utils/http_tracing.rb
|
110
141
|
- lib/sentry/utils/logging_helper.rb
|
111
142
|
- lib/sentry/utils/real_ip.rb
|
112
143
|
- lib/sentry/utils/request_id.rb
|
113
144
|
- lib/sentry/version.rb
|
114
145
|
- sentry-ruby-core.gemspec
|
115
146
|
- sentry-ruby.gemspec
|
116
|
-
homepage: https://github.com/getsentry/sentry-ruby
|
147
|
+
homepage: https://github.com/getsentry/sentry-ruby/tree/5.20.1/sentry-ruby
|
117
148
|
licenses:
|
118
149
|
- MIT
|
119
150
|
metadata:
|
120
|
-
homepage_uri: https://github.com/getsentry/sentry-ruby
|
121
|
-
source_code_uri: https://github.com/getsentry/sentry-ruby
|
122
|
-
changelog_uri: https://github.com/getsentry/sentry-ruby/blob/
|
151
|
+
homepage_uri: https://github.com/getsentry/sentry-ruby/tree/5.20.1/sentry-ruby
|
152
|
+
source_code_uri: https://github.com/getsentry/sentry-ruby/tree/5.20.1/sentry-ruby
|
153
|
+
changelog_uri: https://github.com/getsentry/sentry-ruby/blob/5.20.1/CHANGELOG.md
|
154
|
+
bug_tracker_uri: https://github.com/getsentry/sentry-ruby/issues
|
155
|
+
documentation_uri: http://www.rubydoc.info/gems/sentry-ruby/5.20.1
|
123
156
|
post_install_message:
|
124
157
|
rdoc_options: []
|
125
158
|
require_paths:
|
@@ -135,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
168
|
- !ruby/object:Gem::Version
|
136
169
|
version: '0'
|
137
170
|
requirements: []
|
138
|
-
rubygems_version: 3.
|
171
|
+
rubygems_version: 3.5.16
|
139
172
|
signing_key:
|
140
173
|
specification_version: 4
|
141
174
|
summary: A gem that provides a client interface for the Sentry error logger
|