sentry-ruby 5.10.0 → 5.26.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/.rspec +3 -1
- data/Gemfile +12 -13
- data/README.md +26 -11
- data/Rakefile +9 -11
- data/bin/console +2 -0
- data/lib/sentry/attachment.rb +40 -0
- data/lib/sentry/background_worker.rb +11 -5
- data/lib/sentry/backpressure_monitor.rb +45 -0
- data/lib/sentry/backtrace.rb +12 -9
- data/lib/sentry/baggage.rb +7 -7
- data/lib/sentry/breadcrumb/sentry_logger.rb +6 -6
- data/lib/sentry/breadcrumb.rb +13 -6
- data/lib/sentry/check_in_event.rb +61 -0
- data/lib/sentry/client.rb +214 -25
- data/lib/sentry/configuration.rb +221 -38
- data/lib/sentry/core_ext/object/deep_dup.rb +1 -1
- data/lib/sentry/cron/configuration.rb +23 -0
- data/lib/sentry/cron/monitor_check_ins.rb +77 -0
- data/lib/sentry/cron/monitor_config.rb +53 -0
- data/lib/sentry/cron/monitor_schedule.rb +42 -0
- data/lib/sentry/dsn.rb +4 -4
- data/lib/sentry/envelope/item.rb +88 -0
- data/lib/sentry/envelope.rb +2 -68
- data/lib/sentry/error_event.rb +2 -2
- data/lib/sentry/event.rb +28 -47
- data/lib/sentry/excon/middleware.rb +77 -0
- data/lib/sentry/excon.rb +10 -0
- data/lib/sentry/faraday.rb +77 -0
- data/lib/sentry/graphql.rb +9 -0
- data/lib/sentry/hub.rb +138 -6
- data/lib/sentry/integrable.rb +10 -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 +8 -8
- data/lib/sentry/interfaces/single_exception.rb +13 -9
- data/lib/sentry/interfaces/stacktrace.rb +3 -1
- data/lib/sentry/interfaces/stacktrace_builder.rb +23 -2
- data/lib/sentry/linecache.rb +3 -3
- data/lib/sentry/log_event.rb +206 -0
- data/lib/sentry/log_event_buffer.rb +75 -0
- 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 +51 -0
- data/lib/sentry/metrics.rb +56 -0
- data/lib/sentry/net/http.rb +27 -44
- data/lib/sentry/profiler/helpers.rb +46 -0
- data/lib/sentry/profiler.rb +41 -60
- data/lib/sentry/propagation_context.rb +135 -0
- data/lib/sentry/puma.rb +12 -5
- data/lib/sentry/rack/capture_exceptions.rb +17 -8
- data/lib/sentry/rack.rb +2 -2
- data/lib/sentry/rake.rb +4 -15
- data/lib/sentry/redis.rb +10 -4
- data/lib/sentry/release_detector.rb +5 -5
- data/lib/sentry/rspec.rb +91 -0
- data/lib/sentry/scope.rb +75 -39
- data/lib/sentry/session.rb +2 -2
- data/lib/sentry/session_flusher.rb +15 -43
- data/lib/sentry/span.rb +92 -8
- data/lib/sentry/std_lib_logger.rb +50 -0
- data/lib/sentry/structured_logger.rb +138 -0
- data/lib/sentry/test_helper.rb +42 -13
- data/lib/sentry/threaded_periodic_worker.rb +39 -0
- data/lib/sentry/transaction.rb +44 -43
- data/lib/sentry/transaction_event.rb +10 -6
- data/lib/sentry/transport/configuration.rb +73 -1
- data/lib/sentry/transport/http_transport.rb +71 -41
- data/lib/sentry/transport/spotlight_transport.rb +50 -0
- data/lib/sentry/transport.rb +53 -49
- data/lib/sentry/utils/argument_checking_helper.rb +12 -0
- data/lib/sentry/utils/env_helper.rb +21 -0
- data/lib/sentry/utils/http_tracing.rb +74 -0
- data/lib/sentry/utils/logging_helper.rb +10 -7
- data/lib/sentry/utils/real_ip.rb +2 -2
- data/lib/sentry/utils/request_id.rb +1 -1
- data/lib/sentry/utils/uuid.rb +13 -0
- data/lib/sentry/vernier/output.rb +89 -0
- data/lib/sentry/vernier/profiler.rb +132 -0
- data/lib/sentry/version.rb +1 -1
- data/lib/sentry-ruby.rb +206 -35
- data/sentry-ruby-core.gemspec +3 -1
- data/sentry-ruby.gemspec +15 -6
- metadata +61 -11
data/lib/sentry-ruby.rb
CHANGED
@@ -11,19 +11,25 @@ require "sentry/utils/argument_checking_helper"
|
|
11
11
|
require "sentry/utils/encoding_helper"
|
12
12
|
require "sentry/utils/logging_helper"
|
13
13
|
require "sentry/configuration"
|
14
|
-
require "sentry/
|
14
|
+
require "sentry/structured_logger"
|
15
15
|
require "sentry/event"
|
16
16
|
require "sentry/error_event"
|
17
17
|
require "sentry/transaction_event"
|
18
|
+
require "sentry/check_in_event"
|
18
19
|
require "sentry/span"
|
19
20
|
require "sentry/transaction"
|
20
21
|
require "sentry/hub"
|
21
22
|
require "sentry/background_worker"
|
23
|
+
require "sentry/threaded_periodic_worker"
|
22
24
|
require "sentry/session_flusher"
|
25
|
+
require "sentry/backpressure_monitor"
|
26
|
+
require "sentry/cron/monitor_check_ins"
|
27
|
+
require "sentry/metrics"
|
28
|
+
require "sentry/vernier/profiler"
|
23
29
|
|
24
30
|
[
|
25
31
|
"sentry/rake",
|
26
|
-
"sentry/rack"
|
32
|
+
"sentry/rack"
|
27
33
|
].each do |lib|
|
28
34
|
begin
|
29
35
|
require lib
|
@@ -36,14 +42,25 @@ module Sentry
|
|
36
42
|
|
37
43
|
CAPTURED_SIGNATURE = :@__sentry_captured
|
38
44
|
|
39
|
-
LOGGER_PROGNAME = "sentry"
|
45
|
+
LOGGER_PROGNAME = "sentry"
|
40
46
|
|
41
|
-
SENTRY_TRACE_HEADER_NAME = "sentry-trace"
|
47
|
+
SENTRY_TRACE_HEADER_NAME = "sentry-trace"
|
42
48
|
|
43
|
-
BAGGAGE_HEADER_NAME = "baggage"
|
49
|
+
BAGGAGE_HEADER_NAME = "baggage"
|
44
50
|
|
45
51
|
THREAD_LOCAL = :sentry_hub
|
46
52
|
|
53
|
+
MUTEX = Mutex.new
|
54
|
+
|
55
|
+
GLOBALS = %i[
|
56
|
+
main_hub
|
57
|
+
logger
|
58
|
+
session_flusher
|
59
|
+
backpressure_monitor
|
60
|
+
metrics_aggregator
|
61
|
+
exception_locals_tp
|
62
|
+
].freeze
|
63
|
+
|
47
64
|
class << self
|
48
65
|
# @!visibility private
|
49
66
|
def exception_locals_tp
|
@@ -63,25 +80,33 @@ module Sentry
|
|
63
80
|
end
|
64
81
|
|
65
82
|
# @!attribute [rw] background_worker
|
66
|
-
# @return [BackgroundWorker
|
83
|
+
# @return [BackgroundWorker]
|
67
84
|
attr_accessor :background_worker
|
68
85
|
|
69
86
|
# @!attribute [r] session_flusher
|
70
87
|
# @return [SessionFlusher, nil]
|
71
88
|
attr_reader :session_flusher
|
72
89
|
|
90
|
+
# @!attribute [r] backpressure_monitor
|
91
|
+
# @return [BackpressureMonitor, nil]
|
92
|
+
attr_reader :backpressure_monitor
|
93
|
+
|
94
|
+
# @!attribute [r] metrics_aggregator
|
95
|
+
# @return [Metrics::Aggregator, nil]
|
96
|
+
attr_reader :metrics_aggregator
|
97
|
+
|
73
98
|
##### Patch Registration #####
|
74
99
|
|
75
100
|
# @!visibility private
|
76
|
-
def register_patch(patch = nil, target = nil, &block)
|
101
|
+
def register_patch(key, patch = nil, target = nil, &block)
|
77
102
|
if patch && block
|
78
103
|
raise ArgumentError.new("Please provide either a patch and its target OR a block, but not both")
|
79
104
|
end
|
80
105
|
|
81
106
|
if block
|
82
|
-
registered_patches
|
107
|
+
registered_patches[key] = block
|
83
108
|
else
|
84
|
-
registered_patches
|
109
|
+
registered_patches[key] = proc do
|
85
110
|
target.send(:prepend, patch) unless target.ancestors.include?(patch)
|
86
111
|
end
|
87
112
|
end
|
@@ -89,14 +114,14 @@ module Sentry
|
|
89
114
|
|
90
115
|
# @!visibility private
|
91
116
|
def apply_patches(config)
|
92
|
-
registered_patches.each do |patch|
|
93
|
-
patch.call(config)
|
117
|
+
registered_patches.each do |key, patch|
|
118
|
+
patch.call(config) if config.enabled_patches.include?(key)
|
94
119
|
end
|
95
120
|
end
|
96
121
|
|
97
122
|
# @!visibility private
|
98
123
|
def registered_patches
|
99
|
-
@registered_patches ||=
|
124
|
+
@registered_patches ||= {}
|
100
125
|
end
|
101
126
|
|
102
127
|
##### Integrations #####
|
@@ -114,7 +139,7 @@ module Sentry
|
|
114
139
|
# @param version [String] version of the integration
|
115
140
|
def register_integration(name, version)
|
116
141
|
if initialized?
|
117
|
-
|
142
|
+
sdk_logger.warn(LOGGER_PROGNAME) do
|
118
143
|
<<~MSG
|
119
144
|
Integration '#{name}' is loaded after the SDK is initialized, which can cause unexpected behavior. Please make sure all integrations are loaded before SDK initialization.
|
120
145
|
MSG
|
@@ -198,6 +223,13 @@ module Sentry
|
|
198
223
|
get_current_scope.set_context(*args)
|
199
224
|
end
|
200
225
|
|
226
|
+
# @!method add_attachment
|
227
|
+
# @!macro add_attachment
|
228
|
+
def add_attachment(**opts)
|
229
|
+
return unless initialized?
|
230
|
+
get_current_scope.add_attachment(**opts)
|
231
|
+
end
|
232
|
+
|
201
233
|
##### Main APIs #####
|
202
234
|
|
203
235
|
# Initializes the SDK with given configuration.
|
@@ -207,25 +239,20 @@ module Sentry
|
|
207
239
|
def init(&block)
|
208
240
|
config = Configuration.new
|
209
241
|
yield(config) if block_given?
|
242
|
+
|
210
243
|
config.detect_release
|
211
244
|
apply_patches(config)
|
245
|
+
config.validate
|
212
246
|
client = Client.new(config)
|
213
247
|
scope = Scope.new(max_breadcrumbs: config.max_breadcrumbs)
|
214
248
|
hub = Hub.new(client, scope)
|
215
249
|
Thread.current.thread_variable_set(THREAD_LOCAL, hub)
|
216
250
|
@main_hub = hub
|
217
251
|
@background_worker = Sentry::BackgroundWorker.new(config)
|
218
|
-
|
219
|
-
@
|
220
|
-
|
221
|
-
|
222
|
-
nil
|
223
|
-
end
|
224
|
-
|
225
|
-
if config.include_local_variables
|
226
|
-
exception_locals_tp.enable
|
227
|
-
end
|
228
|
-
|
252
|
+
@session_flusher = config.session_tracking? ? Sentry::SessionFlusher.new(config, client) : nil
|
253
|
+
@backpressure_monitor = config.enable_backpressure_handling ? Sentry::BackpressureMonitor.new(config, client) : nil
|
254
|
+
@metrics_aggregator = config.metrics.enabled ? Sentry::Metrics::Aggregator.new(config, client) : nil
|
255
|
+
exception_locals_tp.enable if config.include_local_variables
|
229
256
|
at_exit { close }
|
230
257
|
end
|
231
258
|
|
@@ -234,22 +261,37 @@ module Sentry
|
|
234
261
|
#
|
235
262
|
# @return [void]
|
236
263
|
def close
|
237
|
-
if @background_worker
|
238
|
-
@background_worker.shutdown
|
239
|
-
@background_worker = nil
|
240
|
-
end
|
241
|
-
|
242
264
|
if @session_flusher
|
265
|
+
@session_flusher.flush
|
243
266
|
@session_flusher.kill
|
244
267
|
@session_flusher = nil
|
245
268
|
end
|
246
269
|
|
247
|
-
if
|
248
|
-
|
270
|
+
if @backpressure_monitor
|
271
|
+
@backpressure_monitor.kill
|
272
|
+
@backpressure_monitor = nil
|
273
|
+
end
|
274
|
+
|
275
|
+
if @metrics_aggregator
|
276
|
+
@metrics_aggregator.flush(force: true)
|
277
|
+
@metrics_aggregator.kill
|
278
|
+
@metrics_aggregator = nil
|
249
279
|
end
|
250
280
|
|
251
|
-
|
252
|
-
|
281
|
+
if client = get_current_client
|
282
|
+
client.flush
|
283
|
+
|
284
|
+
if client.configuration.include_local_variables
|
285
|
+
exception_locals_tp.disable
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
289
|
+
@background_worker.shutdown
|
290
|
+
|
291
|
+
MUTEX.synchronize do
|
292
|
+
@main_hub = nil
|
293
|
+
Thread.current.thread_variable_set(THREAD_LOCAL, nil)
|
294
|
+
end
|
253
295
|
end
|
254
296
|
|
255
297
|
# Returns true if the SDK is initialized.
|
@@ -276,6 +318,9 @@ module Sentry
|
|
276
318
|
#
|
277
319
|
# @return [Hub]
|
278
320
|
def get_main_hub
|
321
|
+
MUTEX.synchronize { @main_hub }
|
322
|
+
rescue ThreadError
|
323
|
+
# In some rare cases this may be called in a trap context so we need to handle it gracefully
|
279
324
|
@main_hub
|
280
325
|
end
|
281
326
|
|
@@ -430,6 +475,41 @@ module Sentry
|
|
430
475
|
get_current_hub.capture_event(event)
|
431
476
|
end
|
432
477
|
|
478
|
+
# Captures a check-in and sends it to Sentry via the currently active hub.
|
479
|
+
#
|
480
|
+
# @param slug [String] identifier of this monitor
|
481
|
+
# @param status [Symbol] status of this check-in, one of {CheckInEvent::VALID_STATUSES}
|
482
|
+
#
|
483
|
+
# @param [Hash] options extra check-in options
|
484
|
+
# @option options [String] check_in_id for updating the status of an existing monitor
|
485
|
+
# @option options [Integer] duration seconds elapsed since this monitor started
|
486
|
+
# @option options [Cron::MonitorConfig] monitor_config configuration for this monitor
|
487
|
+
#
|
488
|
+
# @return [String, nil] The {CheckInEvent#check_in_id} to use for later updates on the same slug
|
489
|
+
def capture_check_in(slug, status, **options)
|
490
|
+
return unless initialized?
|
491
|
+
get_current_hub.capture_check_in(slug, status, **options)
|
492
|
+
end
|
493
|
+
|
494
|
+
# Captures a log event and sends it to Sentry via the currently active hub.
|
495
|
+
# This is the underlying method used by the StructuredLogger class.
|
496
|
+
#
|
497
|
+
# @param message [String] the log message
|
498
|
+
# @param [Hash] options Extra log event options
|
499
|
+
# @option options [Symbol] level The log level (:trace, :debug, :info, :warn, :error, :fatal)
|
500
|
+
# @option options [Integer] severity The severity number according to the Sentry Logs Protocol
|
501
|
+
# @option options [Hash] Additional attributes to include with the log
|
502
|
+
#
|
503
|
+
# @example Direct usage (prefer using Sentry.logger instead)
|
504
|
+
# Sentry.capture_log("User logged in", level: :info, user_id: 123)
|
505
|
+
#
|
506
|
+
# @see https://develop.sentry.dev/sdk/telemetry/logs/ Sentry SDK Telemetry Logs Protocol
|
507
|
+
# @return [LogEvent, nil] The created log event or nil if logging is disabled
|
508
|
+
def capture_log(message, **options)
|
509
|
+
return unless initialized?
|
510
|
+
get_current_hub.capture_log_event(message, **options)
|
511
|
+
end
|
512
|
+
|
433
513
|
# Takes or initializes a new Sentry::Transaction and makes a sampling decision for it.
|
434
514
|
#
|
435
515
|
# @return [Transaction, nil]
|
@@ -489,6 +569,88 @@ module Sentry
|
|
489
569
|
Scope.add_global_event_processor(&block)
|
490
570
|
end
|
491
571
|
|
572
|
+
# Returns the traceparent (sentry-trace) header for distributed tracing.
|
573
|
+
# Can be either from the currently active span or the propagation context.
|
574
|
+
#
|
575
|
+
# @return [String, nil]
|
576
|
+
def get_traceparent
|
577
|
+
return nil unless initialized?
|
578
|
+
get_current_hub.get_traceparent
|
579
|
+
end
|
580
|
+
|
581
|
+
# Returns the baggage header for distributed tracing.
|
582
|
+
# Can be either from the currently active span or the propagation context.
|
583
|
+
#
|
584
|
+
# @return [String, nil]
|
585
|
+
def get_baggage
|
586
|
+
return nil unless initialized?
|
587
|
+
get_current_hub.get_baggage
|
588
|
+
end
|
589
|
+
|
590
|
+
# Returns the a Hash containing sentry-trace and baggage.
|
591
|
+
# Can be either from the currently active span or the propagation context.
|
592
|
+
#
|
593
|
+
# @return [Hash, nil]
|
594
|
+
def get_trace_propagation_headers
|
595
|
+
return nil unless initialized?
|
596
|
+
get_current_hub.get_trace_propagation_headers
|
597
|
+
end
|
598
|
+
|
599
|
+
# Returns the a Hash containing sentry-trace and baggage.
|
600
|
+
# Can be either from the currently active span or the propagation context.
|
601
|
+
#
|
602
|
+
# @return [String]
|
603
|
+
def get_trace_propagation_meta
|
604
|
+
return "" unless initialized?
|
605
|
+
get_current_hub.get_trace_propagation_meta
|
606
|
+
end
|
607
|
+
|
608
|
+
# Continue an incoming trace from a rack env like hash.
|
609
|
+
#
|
610
|
+
# @param env [Hash]
|
611
|
+
# @return [Transaction, nil]
|
612
|
+
def continue_trace(env, **options)
|
613
|
+
return nil unless initialized?
|
614
|
+
get_current_hub.continue_trace(env, **options)
|
615
|
+
end
|
616
|
+
|
617
|
+
# Returns the structured logger instance that implements Sentry's SDK telemetry logs protocol.
|
618
|
+
#
|
619
|
+
# This logger is only available when logs are enabled in the configuration.
|
620
|
+
#
|
621
|
+
# @example Enable logs in configuration
|
622
|
+
# Sentry.init do |config|
|
623
|
+
# config.dsn = "YOUR_DSN"
|
624
|
+
# config.enable_logs = true
|
625
|
+
# end
|
626
|
+
#
|
627
|
+
# @example Basic usage
|
628
|
+
# Sentry.logger.info("User logged in successfully", user_id: 123)
|
629
|
+
# Sentry.logger.error("Failed to process payment",
|
630
|
+
# transaction_id: "tx_123",
|
631
|
+
# error_code: "PAYMENT_FAILED"
|
632
|
+
# )
|
633
|
+
#
|
634
|
+
# @see https://develop.sentry.dev/sdk/telemetry/logs/ Sentry SDK Telemetry Logs Protocol
|
635
|
+
#
|
636
|
+
# @return [StructuredLogger, nil] The structured logger instance or nil if logs are disabled
|
637
|
+
def logger
|
638
|
+
@logger ||=
|
639
|
+
if configuration.enable_logs
|
640
|
+
# Initialize the public-facing Structured Logger if logs are enabled
|
641
|
+
# This creates a StructuredLogger instance that implements Sentry's SDK telemetry logs protocol
|
642
|
+
# @see https://develop.sentry.dev/sdk/telemetry/logs/
|
643
|
+
StructuredLogger.new(configuration)
|
644
|
+
else
|
645
|
+
warn <<~STR
|
646
|
+
[sentry] `Sentry.logger` will no longer be used as internal SDK logger when `enable_logs` feature is turned on.
|
647
|
+
Use Sentry.configuration.sdk_logger for SDK-specific logging needs."
|
648
|
+
STR
|
649
|
+
|
650
|
+
configuration.sdk_logger
|
651
|
+
end
|
652
|
+
end
|
653
|
+
|
492
654
|
##### Helpers #####
|
493
655
|
|
494
656
|
# @!visibility private
|
@@ -500,8 +662,8 @@ module Sentry
|
|
500
662
|
end
|
501
663
|
|
502
664
|
# @!visibility private
|
503
|
-
def
|
504
|
-
configuration.
|
665
|
+
def sdk_logger
|
666
|
+
configuration.sdk_logger
|
505
667
|
end
|
506
668
|
|
507
669
|
# @!visibility private
|
@@ -513,6 +675,11 @@ module Sentry
|
|
513
675
|
def utc_now
|
514
676
|
Time.now.utc
|
515
677
|
end
|
678
|
+
|
679
|
+
# @!visibility private
|
680
|
+
def dependency_installed?(name)
|
681
|
+
Object.const_defined?(name)
|
682
|
+
end
|
516
683
|
end
|
517
684
|
end
|
518
685
|
|
@@ -520,3 +687,7 @@ end
|
|
520
687
|
require "sentry/net/http"
|
521
688
|
require "sentry/redis"
|
522
689
|
require "sentry/puma"
|
690
|
+
require "sentry/graphql"
|
691
|
+
require "sentry/faraday"
|
692
|
+
require "sentry/excon"
|
693
|
+
require "sentry/std_lib_logger"
|
data/sentry-ruby-core.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative "lib/sentry/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |spec|
|
@@ -12,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
12
14
|
spec.platform = Gem::Platform::RUBY
|
13
15
|
spec.required_ruby_version = '>= 2.4'
|
14
16
|
spec.extra_rdoc_files = ["README.md", "LICENSE.txt"]
|
15
|
-
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
|
17
|
+
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples|\.rubocop\.yml)'`.split("\n")
|
16
18
|
|
17
19
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
20
|
spec.metadata["source_code_uri"] = spec.homepage
|
data/sentry-ruby.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative "lib/sentry/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |spec|
|
@@ -7,18 +9,25 @@ Gem::Specification.new do |spec|
|
|
7
9
|
spec.description = spec.summary = "A gem that provides a client interface for the Sentry error logger"
|
8
10
|
spec.email = "accounts@sentry.io"
|
9
11
|
spec.license = 'MIT'
|
10
|
-
spec.homepage = "https://github.com/getsentry/sentry-ruby"
|
11
12
|
|
12
13
|
spec.platform = Gem::Platform::RUBY
|
13
14
|
spec.required_ruby_version = '>= 2.4'
|
14
15
|
spec.extra_rdoc_files = ["README.md", "LICENSE.txt"]
|
15
|
-
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
|
16
|
+
spec.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples|\.rubocop\.yml)'`.split("\n")
|
17
|
+
|
18
|
+
github_root_uri = 'https://github.com/getsentry/sentry-ruby'
|
19
|
+
spec.homepage = "#{github_root_uri}/tree/#{spec.version}/#{spec.name}"
|
16
20
|
|
17
|
-
spec.metadata
|
18
|
-
|
19
|
-
|
21
|
+
spec.metadata = {
|
22
|
+
"homepage_uri" => spec.homepage,
|
23
|
+
"source_code_uri" => spec.homepage,
|
24
|
+
"changelog_uri" => "#{github_root_uri}/blob/#{spec.version}/CHANGELOG.md",
|
25
|
+
"bug_tracker_uri" => "#{github_root_uri}/issues",
|
26
|
+
"documentation_uri" => "http://www.rubydoc.info/gems/#{spec.name}/#{spec.version}"
|
27
|
+
}
|
20
28
|
|
21
29
|
spec.require_paths = ["lib"]
|
22
30
|
|
23
|
-
spec.add_dependency "concurrent-ruby",
|
31
|
+
spec.add_dependency "concurrent-ruby", "~> 1.0", ">= 1.0.2"
|
32
|
+
spec.add_dependency "bigdecimal"
|
24
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sentry-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sentry Team
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: concurrent-ruby
|
@@ -30,13 +29,27 @@ dependencies:
|
|
30
29
|
- - ">="
|
31
30
|
- !ruby/object:Gem::Version
|
32
31
|
version: 1.0.2
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: bigdecimal
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
type: :runtime
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
33
46
|
description: A gem that provides a client interface for the Sentry error logger
|
34
47
|
email: accounts@sentry.io
|
35
48
|
executables: []
|
36
49
|
extensions: []
|
37
50
|
extra_rdoc_files:
|
38
|
-
- README.md
|
39
51
|
- LICENSE.txt
|
52
|
+
- README.md
|
40
53
|
files:
|
41
54
|
- ".gitignore"
|
42
55
|
- ".rspec"
|
@@ -50,69 +63,107 @@ files:
|
|
50
63
|
- bin/console
|
51
64
|
- bin/setup
|
52
65
|
- lib/sentry-ruby.rb
|
66
|
+
- lib/sentry/attachment.rb
|
53
67
|
- lib/sentry/background_worker.rb
|
68
|
+
- lib/sentry/backpressure_monitor.rb
|
54
69
|
- lib/sentry/backtrace.rb
|
55
70
|
- lib/sentry/baggage.rb
|
56
71
|
- lib/sentry/breadcrumb.rb
|
57
72
|
- lib/sentry/breadcrumb/sentry_logger.rb
|
58
73
|
- lib/sentry/breadcrumb_buffer.rb
|
74
|
+
- lib/sentry/check_in_event.rb
|
59
75
|
- lib/sentry/client.rb
|
60
76
|
- lib/sentry/configuration.rb
|
61
77
|
- lib/sentry/core_ext/object/deep_dup.rb
|
62
78
|
- lib/sentry/core_ext/object/duplicable.rb
|
79
|
+
- lib/sentry/cron/configuration.rb
|
80
|
+
- lib/sentry/cron/monitor_check_ins.rb
|
81
|
+
- lib/sentry/cron/monitor_config.rb
|
82
|
+
- lib/sentry/cron/monitor_schedule.rb
|
63
83
|
- lib/sentry/dsn.rb
|
64
84
|
- lib/sentry/envelope.rb
|
85
|
+
- lib/sentry/envelope/item.rb
|
65
86
|
- lib/sentry/error_event.rb
|
66
87
|
- lib/sentry/event.rb
|
67
88
|
- lib/sentry/exceptions.rb
|
89
|
+
- lib/sentry/excon.rb
|
90
|
+
- lib/sentry/excon/middleware.rb
|
91
|
+
- lib/sentry/faraday.rb
|
92
|
+
- lib/sentry/graphql.rb
|
68
93
|
- lib/sentry/hub.rb
|
69
94
|
- lib/sentry/integrable.rb
|
70
95
|
- lib/sentry/interface.rb
|
71
96
|
- lib/sentry/interfaces/exception.rb
|
97
|
+
- lib/sentry/interfaces/mechanism.rb
|
72
98
|
- lib/sentry/interfaces/request.rb
|
73
99
|
- lib/sentry/interfaces/single_exception.rb
|
74
100
|
- lib/sentry/interfaces/stacktrace.rb
|
75
101
|
- lib/sentry/interfaces/stacktrace_builder.rb
|
76
102
|
- lib/sentry/interfaces/threads.rb
|
77
103
|
- lib/sentry/linecache.rb
|
104
|
+
- lib/sentry/log_event.rb
|
105
|
+
- lib/sentry/log_event_buffer.rb
|
78
106
|
- lib/sentry/logger.rb
|
107
|
+
- lib/sentry/metrics.rb
|
108
|
+
- lib/sentry/metrics/aggregator.rb
|
109
|
+
- lib/sentry/metrics/configuration.rb
|
110
|
+
- lib/sentry/metrics/counter_metric.rb
|
111
|
+
- lib/sentry/metrics/distribution_metric.rb
|
112
|
+
- lib/sentry/metrics/gauge_metric.rb
|
113
|
+
- lib/sentry/metrics/local_aggregator.rb
|
114
|
+
- lib/sentry/metrics/metric.rb
|
115
|
+
- lib/sentry/metrics/set_metric.rb
|
116
|
+
- lib/sentry/metrics/timing.rb
|
79
117
|
- lib/sentry/net/http.rb
|
80
118
|
- lib/sentry/profiler.rb
|
119
|
+
- lib/sentry/profiler/helpers.rb
|
120
|
+
- lib/sentry/propagation_context.rb
|
81
121
|
- lib/sentry/puma.rb
|
82
122
|
- lib/sentry/rack.rb
|
83
123
|
- lib/sentry/rack/capture_exceptions.rb
|
84
124
|
- lib/sentry/rake.rb
|
85
125
|
- lib/sentry/redis.rb
|
86
126
|
- lib/sentry/release_detector.rb
|
127
|
+
- lib/sentry/rspec.rb
|
87
128
|
- lib/sentry/scope.rb
|
88
129
|
- lib/sentry/session.rb
|
89
130
|
- lib/sentry/session_flusher.rb
|
90
131
|
- lib/sentry/span.rb
|
132
|
+
- lib/sentry/std_lib_logger.rb
|
133
|
+
- lib/sentry/structured_logger.rb
|
91
134
|
- lib/sentry/test_helper.rb
|
135
|
+
- lib/sentry/threaded_periodic_worker.rb
|
92
136
|
- lib/sentry/transaction.rb
|
93
137
|
- lib/sentry/transaction_event.rb
|
94
138
|
- lib/sentry/transport.rb
|
95
139
|
- lib/sentry/transport/configuration.rb
|
96
140
|
- lib/sentry/transport/dummy_transport.rb
|
97
141
|
- lib/sentry/transport/http_transport.rb
|
142
|
+
- lib/sentry/transport/spotlight_transport.rb
|
98
143
|
- lib/sentry/utils/argument_checking_helper.rb
|
99
144
|
- lib/sentry/utils/custom_inspection.rb
|
100
145
|
- lib/sentry/utils/encoding_helper.rb
|
146
|
+
- lib/sentry/utils/env_helper.rb
|
101
147
|
- lib/sentry/utils/exception_cause_chain.rb
|
148
|
+
- lib/sentry/utils/http_tracing.rb
|
102
149
|
- lib/sentry/utils/logging_helper.rb
|
103
150
|
- lib/sentry/utils/real_ip.rb
|
104
151
|
- lib/sentry/utils/request_id.rb
|
152
|
+
- lib/sentry/utils/uuid.rb
|
153
|
+
- lib/sentry/vernier/output.rb
|
154
|
+
- lib/sentry/vernier/profiler.rb
|
105
155
|
- lib/sentry/version.rb
|
106
156
|
- sentry-ruby-core.gemspec
|
107
157
|
- sentry-ruby.gemspec
|
108
|
-
homepage: https://github.com/getsentry/sentry-ruby
|
158
|
+
homepage: https://github.com/getsentry/sentry-ruby/tree/5.26.0/sentry-ruby
|
109
159
|
licenses:
|
110
160
|
- MIT
|
111
161
|
metadata:
|
112
|
-
homepage_uri: https://github.com/getsentry/sentry-ruby
|
113
|
-
source_code_uri: https://github.com/getsentry/sentry-ruby
|
114
|
-
changelog_uri: https://github.com/getsentry/sentry-ruby/blob/
|
115
|
-
|
162
|
+
homepage_uri: https://github.com/getsentry/sentry-ruby/tree/5.26.0/sentry-ruby
|
163
|
+
source_code_uri: https://github.com/getsentry/sentry-ruby/tree/5.26.0/sentry-ruby
|
164
|
+
changelog_uri: https://github.com/getsentry/sentry-ruby/blob/5.26.0/CHANGELOG.md
|
165
|
+
bug_tracker_uri: https://github.com/getsentry/sentry-ruby/issues
|
166
|
+
documentation_uri: http://www.rubydoc.info/gems/sentry-ruby/5.26.0
|
116
167
|
rdoc_options: []
|
117
168
|
require_paths:
|
118
169
|
- lib
|
@@ -127,8 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
178
|
- !ruby/object:Gem::Version
|
128
179
|
version: '0'
|
129
180
|
requirements: []
|
130
|
-
rubygems_version: 3.
|
131
|
-
signing_key:
|
181
|
+
rubygems_version: 3.6.7
|
132
182
|
specification_version: 4
|
133
183
|
summary: A gem that provides a client interface for the Sentry error logger
|
134
184
|
test_files: []
|