lapsoss 0.1.0 → 0.3.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/README.md +153 -733
- data/lib/lapsoss/adapters/appsignal_adapter.rb +7 -8
- data/lib/lapsoss/adapters/base.rb +0 -3
- data/lib/lapsoss/adapters/bugsnag_adapter.rb +12 -0
- data/lib/lapsoss/adapters/insight_hub_adapter.rb +102 -101
- data/lib/lapsoss/adapters/logger_adapter.rb +7 -7
- data/lib/lapsoss/adapters/rollbar_adapter.rb +93 -54
- data/lib/lapsoss/adapters/sentry_adapter.rb +11 -17
- data/lib/lapsoss/backtrace_frame.rb +35 -214
- data/lib/lapsoss/backtrace_frame_factory.rb +228 -0
- data/lib/lapsoss/backtrace_processor.rb +37 -37
- data/lib/lapsoss/client.rb +2 -6
- data/lib/lapsoss/configuration.rb +25 -22
- data/lib/lapsoss/current.rb +9 -1
- data/lib/lapsoss/event.rb +30 -6
- data/lib/lapsoss/exception_backtrace_frame.rb +39 -0
- data/lib/lapsoss/exclusion_configuration.rb +30 -0
- data/lib/lapsoss/exclusion_filter.rb +156 -0
- data/lib/lapsoss/{exclusions.rb → exclusion_presets.rb} +1 -181
- data/lib/lapsoss/fingerprinter.rb +9 -13
- data/lib/lapsoss/http_client.rb +42 -8
- data/lib/lapsoss/merged_scope.rb +63 -0
- data/lib/lapsoss/middleware/base.rb +15 -0
- data/lib/lapsoss/middleware/conditional_filter.rb +18 -0
- data/lib/lapsoss/middleware/event_enricher.rb +19 -0
- data/lib/lapsoss/middleware/event_transformer.rb +19 -0
- data/lib/lapsoss/middleware/exception_filter.rb +43 -0
- data/lib/lapsoss/middleware/metrics_collector.rb +44 -0
- data/lib/lapsoss/middleware/rate_limiter.rb +31 -0
- data/lib/lapsoss/middleware/release_tracker.rb +117 -0
- data/lib/lapsoss/middleware/sample_filter.rb +23 -0
- data/lib/lapsoss/middleware/sampling_middleware.rb +18 -0
- data/lib/lapsoss/middleware/user_context_enhancer.rb +46 -0
- data/lib/lapsoss/middleware.rb +0 -347
- data/lib/lapsoss/pipeline.rb +1 -73
- data/lib/lapsoss/pipeline_builder.rb +69 -0
- data/lib/lapsoss/rails_error_subscriber.rb +42 -0
- data/lib/lapsoss/rails_middleware.rb +78 -0
- data/lib/lapsoss/railtie.rb +22 -50
- data/lib/lapsoss/registry.rb +34 -20
- data/lib/lapsoss/release_providers.rb +110 -0
- data/lib/lapsoss/release_tracker.rb +112 -207
- data/lib/lapsoss/router.rb +3 -5
- data/lib/lapsoss/sampling/adaptive_sampler.rb +46 -0
- data/lib/lapsoss/sampling/base.rb +11 -0
- data/lib/lapsoss/sampling/composite_sampler.rb +26 -0
- data/lib/lapsoss/sampling/consistent_hash_sampler.rb +30 -0
- data/lib/lapsoss/sampling/exception_type_sampler.rb +44 -0
- data/lib/lapsoss/sampling/health_based_sampler.rb +19 -0
- data/lib/lapsoss/sampling/rate_limiter.rb +32 -0
- data/lib/lapsoss/sampling/sampling_factory.rb +69 -0
- data/lib/lapsoss/sampling/time_based_sampler.rb +44 -0
- data/lib/lapsoss/sampling/uniform_sampler.rb +15 -0
- data/lib/lapsoss/sampling/user_based_sampler.rb +42 -0
- data/lib/lapsoss/sampling.rb +0 -326
- data/lib/lapsoss/scope.rb +17 -57
- data/lib/lapsoss/scrubber.rb +16 -18
- data/lib/lapsoss/user_context.rb +18 -198
- data/lib/lapsoss/user_context_integrations.rb +39 -0
- data/lib/lapsoss/user_context_middleware.rb +50 -0
- data/lib/lapsoss/user_context_provider.rb +93 -0
- data/lib/lapsoss/utils.rb +13 -0
- data/lib/lapsoss/validators.rb +14 -27
- data/lib/lapsoss/version.rb +1 -1
- data/lib/lapsoss.rb +12 -25
- metadata +106 -21
data/lib/lapsoss.rb
CHANGED
@@ -1,22 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
require_relative "lapsoss/
|
11
|
-
require_relative "lapsoss/fingerprinter"
|
12
|
-
require_relative "lapsoss/backtrace_processor"
|
13
|
-
require_relative "lapsoss/scrubber"
|
14
|
-
require_relative "lapsoss/pipeline"
|
15
|
-
require_relative "lapsoss/sampling"
|
16
|
-
require_relative "lapsoss/user_context"
|
17
|
-
require_relative "lapsoss/exclusions"
|
18
|
-
require_relative "lapsoss/release_tracker"
|
19
|
-
require_relative "lapsoss/railtie" if defined?(Rails)
|
3
|
+
require "zeitwerk"
|
4
|
+
require "active_support/core_ext/module/delegation"
|
5
|
+
|
6
|
+
loader = Zeitwerk::Loader.for_gem
|
7
|
+
loader.do_not_eager_load("#{__dir__}/lapsoss/adapters")
|
8
|
+
loader.setup
|
9
|
+
|
10
|
+
require_relative "lapsoss/railtie" if defined?(Rails::Railtie)
|
20
11
|
|
21
12
|
module Lapsoss
|
22
13
|
class Error < StandardError; end
|
@@ -57,20 +48,16 @@ module Lapsoss
|
|
57
48
|
client.add_breadcrumb(message, type: type, **metadata)
|
58
49
|
end
|
59
50
|
|
60
|
-
def with_scope(context = {}, &
|
61
|
-
client.with_scope(context, &
|
51
|
+
def with_scope(context = {}, &)
|
52
|
+
client.with_scope(context, &)
|
62
53
|
end
|
63
54
|
|
64
|
-
|
65
|
-
client.current_scope
|
66
|
-
end
|
55
|
+
delegate :current_scope, to: :client
|
67
56
|
|
68
57
|
def flush(timeout: 2)
|
69
58
|
client.flush(timeout: timeout)
|
70
59
|
end
|
71
60
|
|
72
|
-
|
73
|
-
client.shutdown
|
74
|
-
end
|
61
|
+
delegate :shutdown, to: :client
|
75
62
|
end
|
76
63
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lapsoss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdelkader Boudih
|
@@ -10,33 +10,33 @@ cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
|
-
name:
|
13
|
+
name: activesupport
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- - "
|
16
|
+
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '
|
18
|
+
version: '7.2'
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
|
-
- - "
|
23
|
+
- - ">="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: '
|
25
|
+
version: '7.2'
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
27
|
+
name: concurrent-ruby
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 1.3.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
39
|
+
version: 1.3.1
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: faraday
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,47 +66,53 @@ dependencies:
|
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '2.0'
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
|
-
name:
|
69
|
+
name: zeitwerk
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
75
|
-
type: :
|
74
|
+
version: '2.6'
|
75
|
+
type: :runtime
|
76
76
|
prerelease: false
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '2.6'
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
83
|
+
name: async-http-faraday
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
89
|
-
|
88
|
+
version: '0.19'
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 0.19.0
|
92
|
+
type: :runtime
|
90
93
|
prerelease: false
|
91
94
|
version_requirements: !ruby/object:Gem::Requirement
|
92
95
|
requirements:
|
93
96
|
- - "~>"
|
94
97
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
98
|
+
version: '0.19'
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.19.0
|
96
102
|
- !ruby/object:Gem::Dependency
|
97
|
-
name:
|
103
|
+
name: dotenv
|
98
104
|
requirement: !ruby/object:Gem::Requirement
|
99
105
|
requirements:
|
100
106
|
- - "~>"
|
101
107
|
- !ruby/object:Gem::Version
|
102
|
-
version: '3.
|
108
|
+
version: '3.0'
|
103
109
|
type: :development
|
104
110
|
prerelease: false
|
105
111
|
version_requirements: !ruby/object:Gem::Requirement
|
106
112
|
requirements:
|
107
113
|
- - "~>"
|
108
114
|
- !ruby/object:Gem::Version
|
109
|
-
version: '3.
|
115
|
+
version: '3.0'
|
110
116
|
- !ruby/object:Gem::Dependency
|
111
117
|
name: rake
|
112
118
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,6 +141,20 @@ dependencies:
|
|
135
141
|
- - "~>"
|
136
142
|
- !ruby/object:Gem::Version
|
137
143
|
version: '1.0'
|
144
|
+
- !ruby/object:Gem::Dependency
|
145
|
+
name: rubocop-rails-omakase
|
146
|
+
requirement: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - "~>"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '1.0'
|
151
|
+
type: :development
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - "~>"
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '1.0'
|
138
158
|
- !ruby/object:Gem::Dependency
|
139
159
|
name: steep
|
140
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,6 +169,34 @@ dependencies:
|
|
149
169
|
- - "~>"
|
150
170
|
- !ruby/object:Gem::Version
|
151
171
|
version: '1.0'
|
172
|
+
- !ruby/object:Gem::Dependency
|
173
|
+
name: vcr
|
174
|
+
requirement: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '6.0'
|
179
|
+
type: :development
|
180
|
+
prerelease: false
|
181
|
+
version_requirements: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '6.0'
|
186
|
+
- !ruby/object:Gem::Dependency
|
187
|
+
name: webmock
|
188
|
+
requirement: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '3.18'
|
193
|
+
type: :development
|
194
|
+
prerelease: false
|
195
|
+
version_requirements: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '3.18'
|
152
200
|
description: Lapsoss provides a clean, adapter-based approach to error reporting that
|
153
201
|
doesn't monkey patch your application. Send errors to any error tracking service
|
154
202
|
or custom backend through a unified API.
|
@@ -164,29 +212,65 @@ files:
|
|
164
212
|
- lib/lapsoss.rb
|
165
213
|
- lib/lapsoss/adapters/appsignal_adapter.rb
|
166
214
|
- lib/lapsoss/adapters/base.rb
|
215
|
+
- lib/lapsoss/adapters/bugsnag_adapter.rb
|
167
216
|
- lib/lapsoss/adapters/insight_hub_adapter.rb
|
168
217
|
- lib/lapsoss/adapters/logger_adapter.rb
|
169
218
|
- lib/lapsoss/adapters/rollbar_adapter.rb
|
170
219
|
- lib/lapsoss/adapters/sentry_adapter.rb
|
171
220
|
- lib/lapsoss/backtrace_frame.rb
|
221
|
+
- lib/lapsoss/backtrace_frame_factory.rb
|
172
222
|
- lib/lapsoss/backtrace_processor.rb
|
173
223
|
- lib/lapsoss/client.rb
|
174
224
|
- lib/lapsoss/configuration.rb
|
175
225
|
- lib/lapsoss/current.rb
|
176
226
|
- lib/lapsoss/event.rb
|
177
|
-
- lib/lapsoss/
|
227
|
+
- lib/lapsoss/exception_backtrace_frame.rb
|
228
|
+
- lib/lapsoss/exclusion_configuration.rb
|
229
|
+
- lib/lapsoss/exclusion_filter.rb
|
230
|
+
- lib/lapsoss/exclusion_presets.rb
|
178
231
|
- lib/lapsoss/fingerprinter.rb
|
179
232
|
- lib/lapsoss/http_client.rb
|
233
|
+
- lib/lapsoss/merged_scope.rb
|
180
234
|
- lib/lapsoss/middleware.rb
|
235
|
+
- lib/lapsoss/middleware/base.rb
|
236
|
+
- lib/lapsoss/middleware/conditional_filter.rb
|
237
|
+
- lib/lapsoss/middleware/event_enricher.rb
|
238
|
+
- lib/lapsoss/middleware/event_transformer.rb
|
239
|
+
- lib/lapsoss/middleware/exception_filter.rb
|
240
|
+
- lib/lapsoss/middleware/metrics_collector.rb
|
241
|
+
- lib/lapsoss/middleware/rate_limiter.rb
|
242
|
+
- lib/lapsoss/middleware/release_tracker.rb
|
243
|
+
- lib/lapsoss/middleware/sample_filter.rb
|
244
|
+
- lib/lapsoss/middleware/sampling_middleware.rb
|
245
|
+
- lib/lapsoss/middleware/user_context_enhancer.rb
|
181
246
|
- lib/lapsoss/pipeline.rb
|
247
|
+
- lib/lapsoss/pipeline_builder.rb
|
248
|
+
- lib/lapsoss/rails_error_subscriber.rb
|
249
|
+
- lib/lapsoss/rails_middleware.rb
|
182
250
|
- lib/lapsoss/railtie.rb
|
183
251
|
- lib/lapsoss/registry.rb
|
252
|
+
- lib/lapsoss/release_providers.rb
|
184
253
|
- lib/lapsoss/release_tracker.rb
|
185
254
|
- lib/lapsoss/router.rb
|
186
255
|
- lib/lapsoss/sampling.rb
|
256
|
+
- lib/lapsoss/sampling/adaptive_sampler.rb
|
257
|
+
- lib/lapsoss/sampling/base.rb
|
258
|
+
- lib/lapsoss/sampling/composite_sampler.rb
|
259
|
+
- lib/lapsoss/sampling/consistent_hash_sampler.rb
|
260
|
+
- lib/lapsoss/sampling/exception_type_sampler.rb
|
261
|
+
- lib/lapsoss/sampling/health_based_sampler.rb
|
262
|
+
- lib/lapsoss/sampling/rate_limiter.rb
|
263
|
+
- lib/lapsoss/sampling/sampling_factory.rb
|
264
|
+
- lib/lapsoss/sampling/time_based_sampler.rb
|
265
|
+
- lib/lapsoss/sampling/uniform_sampler.rb
|
266
|
+
- lib/lapsoss/sampling/user_based_sampler.rb
|
187
267
|
- lib/lapsoss/scope.rb
|
188
268
|
- lib/lapsoss/scrubber.rb
|
189
269
|
- lib/lapsoss/user_context.rb
|
270
|
+
- lib/lapsoss/user_context_integrations.rb
|
271
|
+
- lib/lapsoss/user_context_middleware.rb
|
272
|
+
- lib/lapsoss/user_context_provider.rb
|
273
|
+
- lib/lapsoss/utils.rb
|
190
274
|
- lib/lapsoss/validators.rb
|
191
275
|
- lib/lapsoss/version.rb
|
192
276
|
homepage: https://github.com/seuros/lapsoss
|
@@ -197,6 +281,7 @@ metadata:
|
|
197
281
|
homepage_uri: https://github.com/seuros/lapsoss
|
198
282
|
source_code_uri: https://github.com/seuros/lapsoss
|
199
283
|
changelog_uri: https://github.com/seuros/lapsoss/blob/main/CHANGELOG.md
|
284
|
+
rubygems_mfa_required: 'true'
|
200
285
|
rdoc_options: []
|
201
286
|
require_paths:
|
202
287
|
- lib
|