sentry-ruby 5.16.1 → 5.18.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +10 -10
- data/Rakefile +1 -1
- data/bin/console +1 -0
- data/lib/sentry/background_worker.rb +1 -1
- data/lib/sentry/backpressure_monitor.rb +2 -32
- data/lib/sentry/backtrace.rb +7 -3
- data/lib/sentry/check_in_event.rb +1 -1
- data/lib/sentry/client.rb +42 -9
- data/lib/sentry/configuration.rb +20 -12
- data/lib/sentry/cron/monitor_schedule.rb +1 -1
- data/lib/sentry/dsn.rb +1 -1
- data/lib/sentry/envelope.rb +18 -1
- data/lib/sentry/error_event.rb +2 -2
- data/lib/sentry/event.rb +8 -8
- data/lib/sentry/graphql.rb +9 -0
- data/lib/sentry/hub.rb +13 -2
- 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 +2 -2
- data/lib/sentry/interfaces/single_exception.rb +6 -4
- data/lib/sentry/interfaces/stacktrace_builder.rb +8 -0
- 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 +2 -1
- data/lib/sentry/propagation_context.rb +9 -8
- data/lib/sentry/puma.rb +1 -1
- data/lib/sentry/rack/capture_exceptions.rb +14 -2
- data/lib/sentry/rake.rb +3 -1
- data/lib/sentry/redis.rb +2 -1
- data/lib/sentry/scope.rb +21 -26
- data/lib/sentry/session.rb +2 -2
- data/lib/sentry/session_flusher.rb +6 -38
- data/lib/sentry/span.rb +39 -5
- data/lib/sentry/test_helper.rb +1 -1
- data/lib/sentry/threaded_periodic_worker.rb +39 -0
- data/lib/sentry/transaction.rb +15 -14
- data/lib/sentry/transaction_event.rb +5 -0
- data/lib/sentry/transport/configuration.rb +0 -1
- data/lib/sentry/transport.rb +8 -22
- data/lib/sentry/utils/argument_checking_helper.rb +6 -0
- data/lib/sentry/utils/logging_helper.rb +0 -4
- data/lib/sentry/utils/real_ip.rb +1 -1
- data/lib/sentry/utils/request_id.rb +1 -1
- data/lib/sentry/version.rb +1 -1
- data/lib/sentry-ruby.rb +26 -3
- data/sentry-ruby.gemspec +1 -0
- metadata +30 -3
@@ -3,7 +3,7 @@
|
|
3
3
|
module Sentry
|
4
4
|
module Utils
|
5
5
|
module RequestId
|
6
|
-
REQUEST_ID_HEADERS = %w
|
6
|
+
REQUEST_ID_HEADERS = %w[action_dispatch.request_id HTTP_X_REQUEST_ID].freeze
|
7
7
|
|
8
8
|
# Request ID based on ActionDispatch::RequestId
|
9
9
|
def self.read_from(env)
|
data/lib/sentry/version.rb
CHANGED
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
|
@@ -222,8 +228,9 @@ module Sentry
|
|
222
228
|
Thread.current.thread_variable_set(THREAD_LOCAL, hub)
|
223
229
|
@main_hub = hub
|
224
230
|
@background_worker = Sentry::BackgroundWorker.new(config)
|
225
|
-
@session_flusher = config.
|
231
|
+
@session_flusher = config.session_tracking? ? Sentry::SessionFlusher.new(config, client) : nil
|
226
232
|
@backpressure_monitor = config.enable_backpressure_handling ? Sentry::BackpressureMonitor.new(config, client) : nil
|
233
|
+
@metrics_aggregator = config.metrics.enabled ? Sentry::Metrics::Aggregator.new(config, client) : nil
|
227
234
|
exception_locals_tp.enable if config.include_local_variables
|
228
235
|
at_exit { close }
|
229
236
|
end
|
@@ -244,8 +251,14 @@ module Sentry
|
|
244
251
|
@backpressure_monitor = nil
|
245
252
|
end
|
246
253
|
|
254
|
+
if @metrics_aggregator
|
255
|
+
@metrics_aggregator.flush(force: true)
|
256
|
+
@metrics_aggregator.kill
|
257
|
+
@metrics_aggregator = nil
|
258
|
+
end
|
259
|
+
|
247
260
|
if client = get_current_client
|
248
|
-
client.
|
261
|
+
client.flush
|
249
262
|
|
250
263
|
if client.configuration.include_local_variables
|
251
264
|
exception_locals_tp.disable
|
@@ -538,6 +551,15 @@ module Sentry
|
|
538
551
|
get_current_hub.get_trace_propagation_headers
|
539
552
|
end
|
540
553
|
|
554
|
+
# Returns the a Hash containing sentry-trace and baggage.
|
555
|
+
# Can be either from the currently active span or the propagation context.
|
556
|
+
#
|
557
|
+
# @return [String]
|
558
|
+
def get_trace_propagation_meta
|
559
|
+
return '' unless initialized?
|
560
|
+
get_current_hub.get_trace_propagation_meta
|
561
|
+
end
|
562
|
+
|
541
563
|
# Continue an incoming trace from a rack env like hash.
|
542
564
|
#
|
543
565
|
# @param env [Hash]
|
@@ -578,3 +600,4 @@ end
|
|
578
600
|
require "sentry/net/http"
|
579
601
|
require "sentry/redis"
|
580
602
|
require "sentry/puma"
|
603
|
+
require "sentry/graphql"
|
data/sentry-ruby.gemspec
CHANGED
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.18.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-07-02 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: []
|
@@ -71,10 +85,12 @@ files:
|
|
71
85
|
- lib/sentry/error_event.rb
|
72
86
|
- lib/sentry/event.rb
|
73
87
|
- lib/sentry/exceptions.rb
|
88
|
+
- lib/sentry/graphql.rb
|
74
89
|
- lib/sentry/hub.rb
|
75
90
|
- lib/sentry/integrable.rb
|
76
91
|
- lib/sentry/interface.rb
|
77
92
|
- lib/sentry/interfaces/exception.rb
|
93
|
+
- lib/sentry/interfaces/mechanism.rb
|
78
94
|
- lib/sentry/interfaces/request.rb
|
79
95
|
- lib/sentry/interfaces/single_exception.rb
|
80
96
|
- lib/sentry/interfaces/stacktrace.rb
|
@@ -82,6 +98,16 @@ files:
|
|
82
98
|
- lib/sentry/interfaces/threads.rb
|
83
99
|
- lib/sentry/linecache.rb
|
84
100
|
- lib/sentry/logger.rb
|
101
|
+
- lib/sentry/metrics.rb
|
102
|
+
- lib/sentry/metrics/aggregator.rb
|
103
|
+
- lib/sentry/metrics/configuration.rb
|
104
|
+
- lib/sentry/metrics/counter_metric.rb
|
105
|
+
- lib/sentry/metrics/distribution_metric.rb
|
106
|
+
- lib/sentry/metrics/gauge_metric.rb
|
107
|
+
- lib/sentry/metrics/local_aggregator.rb
|
108
|
+
- lib/sentry/metrics/metric.rb
|
109
|
+
- lib/sentry/metrics/set_metric.rb
|
110
|
+
- lib/sentry/metrics/timing.rb
|
85
111
|
- lib/sentry/net/http.rb
|
86
112
|
- lib/sentry/profiler.rb
|
87
113
|
- lib/sentry/propagation_context.rb
|
@@ -96,6 +122,7 @@ files:
|
|
96
122
|
- lib/sentry/session_flusher.rb
|
97
123
|
- lib/sentry/span.rb
|
98
124
|
- lib/sentry/test_helper.rb
|
125
|
+
- lib/sentry/threaded_periodic_worker.rb
|
99
126
|
- lib/sentry/transaction.rb
|
100
127
|
- lib/sentry/transaction_event.rb
|
101
128
|
- lib/sentry/transport.rb
|
@@ -135,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
162
|
- !ruby/object:Gem::Version
|
136
163
|
version: '0'
|
137
164
|
requirements: []
|
138
|
-
rubygems_version: 3.
|
165
|
+
rubygems_version: 3.5.11
|
139
166
|
signing_key:
|
140
167
|
specification_version: 4
|
141
168
|
summary: A gem that provides a client interface for the Sentry error logger
|