skylight 4.2.3 → 5.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.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +420 -331
  3. data/CLA.md +1 -1
  4. data/CONTRIBUTING.md +2 -8
  5. data/ERRORS.md +3 -0
  6. data/LICENSE.md +7 -17
  7. data/README.md +1 -1
  8. data/ext/extconf.rb +61 -56
  9. data/ext/libskylight.yml +8 -6
  10. data/ext/skylight_native.c +26 -100
  11. data/lib/skylight/api.rb +32 -21
  12. data/lib/skylight/cli/doctor.rb +64 -65
  13. data/lib/skylight/cli/helpers.rb +19 -19
  14. data/lib/skylight/cli/merger.rb +142 -138
  15. data/lib/skylight/cli.rb +48 -46
  16. data/lib/skylight/config.rb +640 -201
  17. data/lib/skylight/data/cacert.pem +730 -1023
  18. data/lib/skylight/deprecation.rb +17 -0
  19. data/lib/skylight/errors.rb +26 -9
  20. data/lib/skylight/extensions/source_location.rb +291 -0
  21. data/lib/skylight/extensions.rb +95 -0
  22. data/lib/skylight/formatters/http.rb +18 -0
  23. data/lib/skylight/gc.rb +99 -0
  24. data/lib/skylight/helpers.rb +81 -36
  25. data/lib/skylight/instrumenter.rb +336 -18
  26. data/lib/skylight/middleware.rb +147 -1
  27. data/lib/skylight/native.rb +60 -12
  28. data/lib/skylight/native_ext_fetcher.rb +13 -14
  29. data/lib/skylight/normalizers/action_controller/process_action.rb +68 -0
  30. data/lib/skylight/normalizers/action_controller/send_file.rb +51 -0
  31. data/lib/skylight/normalizers/action_dispatch/process_middleware.rb +22 -0
  32. data/lib/skylight/normalizers/action_dispatch/route_set.rb +27 -0
  33. data/lib/skylight/normalizers/action_view/render_collection.rb +24 -0
  34. data/lib/skylight/normalizers/action_view/render_layout.rb +25 -0
  35. data/lib/skylight/normalizers/action_view/render_partial.rb +23 -0
  36. data/lib/skylight/normalizers/action_view/render_template.rb +23 -0
  37. data/lib/skylight/normalizers/active_job/perform.rb +87 -0
  38. data/lib/skylight/normalizers/active_model_serializers/render.rb +32 -0
  39. data/lib/skylight/normalizers/active_record/instantiation.rb +16 -0
  40. data/lib/skylight/normalizers/active_record/sql.rb +20 -0
  41. data/lib/skylight/normalizers/active_storage.rb +28 -0
  42. data/lib/skylight/normalizers/active_support/cache.rb +11 -0
  43. data/lib/skylight/normalizers/active_support/cache_clear.rb +16 -0
  44. data/lib/skylight/normalizers/active_support/cache_decrement.rb +16 -0
  45. data/lib/skylight/normalizers/active_support/cache_delete.rb +16 -0
  46. data/lib/skylight/normalizers/active_support/cache_exist.rb +16 -0
  47. data/lib/skylight/normalizers/active_support/cache_fetch_hit.rb +16 -0
  48. data/lib/skylight/normalizers/active_support/cache_generate.rb +16 -0
  49. data/lib/skylight/normalizers/active_support/cache_increment.rb +16 -0
  50. data/lib/skylight/normalizers/active_support/cache_read.rb +16 -0
  51. data/lib/skylight/normalizers/active_support/cache_read_multi.rb +16 -0
  52. data/lib/skylight/normalizers/active_support/cache_write.rb +16 -0
  53. data/lib/skylight/normalizers/coach/handler_finish.rb +44 -0
  54. data/lib/skylight/normalizers/coach/middleware_finish.rb +33 -0
  55. data/lib/skylight/normalizers/couch_potato/query.rb +20 -0
  56. data/lib/skylight/normalizers/data_mapper/sql.rb +12 -0
  57. data/lib/skylight/normalizers/default.rb +24 -0
  58. data/lib/skylight/normalizers/elasticsearch/request.rb +20 -0
  59. data/lib/skylight/normalizers/faraday/request.rb +38 -0
  60. data/lib/skylight/normalizers/grape/endpoint.rb +28 -0
  61. data/lib/skylight/normalizers/grape/endpoint_render.rb +25 -0
  62. data/lib/skylight/normalizers/grape/endpoint_run.rb +39 -0
  63. data/lib/skylight/normalizers/grape/endpoint_run_filters.rb +20 -0
  64. data/lib/skylight/normalizers/grape/format_response.rb +20 -0
  65. data/lib/skylight/normalizers/graphiti/render.rb +22 -0
  66. data/lib/skylight/normalizers/graphiti/resolve.rb +31 -0
  67. data/lib/skylight/normalizers/graphql/base.rb +127 -0
  68. data/lib/skylight/normalizers/render.rb +79 -0
  69. data/lib/skylight/normalizers/sequel/sql.rb +12 -0
  70. data/lib/skylight/normalizers/shrine.rb +32 -0
  71. data/lib/skylight/normalizers/sql.rb +41 -0
  72. data/lib/skylight/normalizers.rb +157 -0
  73. data/lib/skylight/probes/action_controller.rb +52 -0
  74. data/lib/skylight/probes/action_dispatch/request_id.rb +33 -0
  75. data/lib/skylight/probes/action_dispatch/routing/route_set.rb +30 -0
  76. data/lib/skylight/probes/action_dispatch.rb +2 -0
  77. data/lib/skylight/probes/action_view.rb +42 -0
  78. data/lib/skylight/probes/active_job.rb +27 -0
  79. data/lib/skylight/probes/active_job_enqueue.rb +35 -0
  80. data/lib/skylight/probes/active_model_serializers.rb +50 -0
  81. data/lib/skylight/probes/active_record_async.rb +96 -0
  82. data/lib/skylight/probes/delayed_job.rb +144 -0
  83. data/lib/skylight/probes/elasticsearch.rb +36 -0
  84. data/lib/skylight/probes/excon/middleware.rb +65 -0
  85. data/lib/skylight/probes/excon.rb +25 -0
  86. data/lib/skylight/probes/faraday.rb +23 -0
  87. data/lib/skylight/probes/graphql.rb +38 -0
  88. data/lib/skylight/probes/httpclient.rb +44 -0
  89. data/lib/skylight/probes/middleware.rb +135 -0
  90. data/lib/skylight/probes/mongo.rb +156 -0
  91. data/lib/skylight/probes/mongoid.rb +13 -0
  92. data/lib/skylight/probes/net_http.rb +54 -0
  93. data/lib/skylight/probes/rack_builder.rb +37 -0
  94. data/lib/skylight/probes/redis.rb +51 -0
  95. data/lib/skylight/probes/sequel.rb +29 -0
  96. data/lib/skylight/probes/sinatra.rb +66 -0
  97. data/lib/skylight/probes/sinatra_add_middleware.rb +10 -10
  98. data/lib/skylight/probes/tilt.rb +25 -0
  99. data/lib/skylight/probes.rb +173 -0
  100. data/lib/skylight/railtie.rb +166 -28
  101. data/lib/skylight/sidekiq.rb +47 -0
  102. data/lib/skylight/sinatra.rb +1 -1
  103. data/lib/skylight/subscriber.rb +130 -0
  104. data/lib/skylight/test.rb +147 -0
  105. data/lib/skylight/trace.rb +325 -22
  106. data/lib/skylight/user_config.rb +58 -0
  107. data/lib/skylight/util/allocation_free.rb +26 -0
  108. data/lib/skylight/util/clock.rb +57 -0
  109. data/lib/skylight/util/component.rb +22 -22
  110. data/lib/skylight/util/deploy.rb +19 -24
  111. data/lib/skylight/util/gzip.rb +20 -0
  112. data/lib/skylight/util/http.rb +106 -113
  113. data/lib/skylight/util/instrumenter_method.rb +26 -0
  114. data/lib/skylight/util/logging.rb +136 -0
  115. data/lib/skylight/util/lru_cache.rb +36 -0
  116. data/lib/skylight/util/platform.rb +3 -7
  117. data/lib/skylight/util/ssl.rb +1 -25
  118. data/lib/skylight/util.rb +12 -0
  119. data/lib/skylight/vendor/cli/thor/rake_compat.rb +1 -1
  120. data/lib/skylight/version.rb +5 -1
  121. data/lib/skylight/vm/gc.rb +60 -0
  122. data/lib/skylight.rb +201 -14
  123. metadata +134 -18
data/lib/skylight.rb CHANGED
@@ -1,36 +1,223 @@
1
1
  require "skylight/version"
2
- require "skylight/core"
3
2
  require "skylight/trace"
4
3
  require "skylight/instrumenter"
5
4
  require "skylight/middleware"
6
5
  require "skylight/api"
7
6
  require "skylight/helpers"
8
7
  require "skylight/config"
8
+ require "skylight/user_config"
9
9
  require "skylight/errors"
10
10
  require "skylight/native"
11
+ require "skylight/gc"
12
+ require "skylight/vm/gc"
13
+ require "skylight/util"
14
+ require "skylight/deprecation"
15
+ require "skylight/subscriber"
16
+ require "skylight/sidekiq"
17
+ require "skylight/probes"
11
18
 
12
19
  # For prettier global names
13
20
  require "English"
14
21
 
22
+ require "active_support/notifications"
23
+
24
+ # Specifically check for Railtie since we've had at least one case of a
25
+ # customer having Rails defined without having all of Rails loaded.
26
+ require "skylight/railtie" if defined?(Rails::Railtie)
27
+
15
28
  module Skylight
16
29
  # Used from the CLI
17
30
  autoload :CLI, "skylight/cli"
18
31
 
19
- # Specifically check for Railtie since we've had at least one case of a
20
- # customer having Rails defined without having all of Rails loaded.
21
- if defined?(Rails::Railtie)
22
- require "skylight/railtie"
23
- end
32
+ # Is this autoload even useful?
33
+ autoload :Normalizers, "skylight/normalizers"
24
34
 
25
- include Core::Instrumentable
35
+ extend Util::Logging
26
36
 
27
- def self.instrumenter_class
28
- Instrumenter
29
- end
37
+ LOCK = Mutex.new
30
38
 
31
- def self.config_class
32
- Config
33
- end
39
+ # @api private
40
+ TIERS = %w[rack api app view db noise other].freeze
41
+
42
+ # @api private
43
+ TIER_REGEX = /^(?:#{TIERS.join("|")})(?:\.|$)/u.freeze
44
+
45
+ # @api private
46
+ CATEGORY_REGEX = /^[a-z0-9_-]+(?:\.[a-z0-9_-]+)*$/iu.freeze
47
+
48
+ # @api private
49
+ DEFAULT_CATEGORY = "app.block".freeze
50
+
51
+ # @api private
52
+ DEFAULT_OPTIONS = { category: DEFAULT_CATEGORY }.freeze
53
+
54
+ at_exit { stop! }
55
+
56
+ class << self
57
+ extend Util::InstrumenterMethod
58
+
59
+ def instrumenter
60
+ defined?(@instrumenter) && @instrumenter
61
+ end
62
+
63
+ def probe(*args)
64
+ Probes.probe(*args)
65
+ end
66
+
67
+ def enable_normalizer(*names)
68
+ Normalizers.enable(*names)
69
+ end
70
+
71
+ # Start instrumenting
72
+ def start!(config = nil)
73
+ return instrumenter if instrumenter
74
+
75
+ const_get(:LOCK).synchronize do
76
+ return instrumenter if instrumenter
77
+
78
+ config ||= {}
79
+ config = Config.load(config) unless config.is_a?(Config)
80
+
81
+ Probes.install!
82
+
83
+ @instrumenter = Instrumenter.new(config).start!
84
+ end
85
+ rescue StandardError => e
86
+ level, message =
87
+ if e.is_a?(ConfigError)
88
+ [:warn, format("Unable to start Instrumenter due to a configuration error: %<message>s", message: e.message)]
89
+ else
90
+ [
91
+ :error,
92
+ format("Unable to start Instrumenter; msg=%<message>s; class=%<klass>s", message: e.message, klass: e.class)
93
+ ]
94
+ end
95
+
96
+ if config.respond_to?("log_#{level}") && config.respond_to?(:log_trace)
97
+ config.send("log_#{level}", message)
98
+ config.log_trace e.backtrace.join("\n")
99
+ else
100
+ warn "[#{name.upcase}] #{message}"
101
+ end
102
+ false
103
+ end
104
+
105
+ def started?
106
+ !!instrumenter
107
+ end
108
+
109
+ # Stop instrumenting
110
+ def stop!
111
+ t { "stop!" }
34
112
 
35
- Core::Probes.add_path(File.expand_path("skylight/probes", __dir__))
113
+ const_get(:LOCK).synchronize do
114
+ t { "stop! synchronized" }
115
+ return unless instrumenter
116
+
117
+ # This is only really helpful for getting specs to pass.
118
+ @instrumenter.current_trace = nil
119
+
120
+ @instrumenter.shutdown
121
+ @instrumenter = nil
122
+ end
123
+ end
124
+
125
+ # Check tracing
126
+ def tracing?
127
+ t { "checking tracing?; thread=#{Thread.current.object_id}" }
128
+ instrumenter&.current_trace
129
+ end
130
+
131
+ # Start a trace
132
+ def trace(endpoint = nil, cat = nil, title = nil, meta: nil, segment: nil, component: nil)
133
+ unless instrumenter
134
+ return yield if block_given?
135
+
136
+ return
137
+ end
138
+
139
+ if instrumenter.poisoned?
140
+ spawn_shutdown_thread!
141
+ return yield if block_given?
142
+
143
+ return
144
+ end
145
+
146
+ cat ||= DEFAULT_CATEGORY
147
+
148
+ if block_given?
149
+ instrumenter.trace(endpoint, cat, title, nil, meta: meta, segment: segment, component: component) do |tr|
150
+ yield tr
151
+ end
152
+ else
153
+ instrumenter.trace(endpoint, cat, title, nil, meta: meta, segment: segment, component: component)
154
+ end
155
+ end
156
+
157
+ # @overload instrument(opts)
158
+ # @param [Hash] opts the options for instrumentation.
159
+ # @option opts [String] :category (`DEFAULT_CATEGORY`) The category
160
+ # @option opts [String] :title The title
161
+ # @option opts [String] :description The description
162
+ # @option opts [Hash] :meta The meta
163
+ # @option opts [String] :source_location The source location
164
+ # @option opts [String] :source_file The source file. (Will be sanitized.)
165
+ # @option opts [String] :source_line The source line.
166
+ # @overload instrument(title)
167
+ # Instrument with the specified title and the default category
168
+ # @param [String] title The title
169
+ def instrument(opts = DEFAULT_OPTIONS, &block)
170
+ unless instrumenter
171
+ return yield if block_given?
172
+
173
+ return
174
+ end
175
+
176
+ if opts.is_a?(Hash)
177
+ category = opts[:category] || DEFAULT_CATEGORY
178
+ title = opts[:title]
179
+ desc = opts[:description]
180
+ meta = opts[:meta]
181
+ else
182
+ category = DEFAULT_CATEGORY
183
+ title = opts.to_s
184
+ desc = nil
185
+ meta = nil
186
+ opts = {}
187
+ end
188
+
189
+ # NOTE: unless we have `:internal` (indicating a built-in Skylight instrument block),
190
+ # or we already have a `source_file` or `source_line` (probably set by `instrument_method`),
191
+ # we set the caller location to the second item on the stack
192
+ # (immediate caller of the `instrument` method).
193
+ unless opts[:source_file] || opts[:source_line] || opts[:internal]
194
+ opts = opts.merge(sk_instrument_location: caller_locations(1..1).first)
195
+ end
196
+
197
+ meta ||= {}
198
+
199
+ instrumenter.extensions.process_instrument_options(opts, meta)
200
+ instrumenter.instrument(category, title, desc, meta, &block)
201
+ end
202
+
203
+ instrumenter_method :config
204
+
205
+ instrumenter_method :mute, block: true
206
+ instrumenter_method :unmute, block: true
207
+ instrumenter_method :muted?
208
+
209
+ # End a span
210
+ instrumenter_method :done
211
+
212
+ instrumenter_method :broken!
213
+
214
+ # Temporarily disable
215
+ instrumenter_method :disable, block: true
216
+
217
+ # Runs the shutdown procedure in the background.
218
+ # This should do little more than unsubscribe from all ActiveSupport::Notifications
219
+ def spawn_shutdown_thread!
220
+ @shutdown_thread || const_get(:LOCK).synchronize { @shutdown_thread ||= Thread.new { @instrumenter&.shutdown } }
221
+ end
222
+ end
36
223
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skylight
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.3
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tilde, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-10 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: skylight-core
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.3
19
+ version: 5.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.3
26
+ version: 5.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: beefcake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '10.0'
89
+ version: 13.0.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
96
+ version: 13.0.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake-compiler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.4
103
+ version: 1.1.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.4
110
+ version: 1.1.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,34 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 1.25.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 1.25.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.21.2
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.21.2
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: timecop
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +192,7 @@ dependencies:
164
192
  - - ">="
165
193
  - !ruby/object:Gem::Version
166
194
  version: '0'
167
- description:
195
+ description:
168
196
  email:
169
197
  - engineering@tilde.io
170
198
  executables:
@@ -193,20 +221,106 @@ files:
193
221
  - lib/skylight/cli/merger.rb
194
222
  - lib/skylight/config.rb
195
223
  - lib/skylight/data/cacert.pem
224
+ - lib/skylight/deprecation.rb
196
225
  - lib/skylight/errors.rb
226
+ - lib/skylight/extensions.rb
227
+ - lib/skylight/extensions/source_location.rb
228
+ - lib/skylight/formatters/http.rb
229
+ - lib/skylight/gc.rb
197
230
  - lib/skylight/helpers.rb
198
231
  - lib/skylight/instrumenter.rb
199
232
  - lib/skylight/middleware.rb
200
233
  - lib/skylight/native.rb
201
234
  - lib/skylight/native_ext_fetcher.rb
235
+ - lib/skylight/normalizers.rb
236
+ - lib/skylight/normalizers/action_controller/process_action.rb
237
+ - lib/skylight/normalizers/action_controller/send_file.rb
238
+ - lib/skylight/normalizers/action_dispatch/process_middleware.rb
239
+ - lib/skylight/normalizers/action_dispatch/route_set.rb
240
+ - lib/skylight/normalizers/action_view/render_collection.rb
241
+ - lib/skylight/normalizers/action_view/render_layout.rb
242
+ - lib/skylight/normalizers/action_view/render_partial.rb
243
+ - lib/skylight/normalizers/action_view/render_template.rb
244
+ - lib/skylight/normalizers/active_job/perform.rb
245
+ - lib/skylight/normalizers/active_model_serializers/render.rb
246
+ - lib/skylight/normalizers/active_record/instantiation.rb
247
+ - lib/skylight/normalizers/active_record/sql.rb
248
+ - lib/skylight/normalizers/active_storage.rb
249
+ - lib/skylight/normalizers/active_support/cache.rb
250
+ - lib/skylight/normalizers/active_support/cache_clear.rb
251
+ - lib/skylight/normalizers/active_support/cache_decrement.rb
252
+ - lib/skylight/normalizers/active_support/cache_delete.rb
253
+ - lib/skylight/normalizers/active_support/cache_exist.rb
254
+ - lib/skylight/normalizers/active_support/cache_fetch_hit.rb
255
+ - lib/skylight/normalizers/active_support/cache_generate.rb
256
+ - lib/skylight/normalizers/active_support/cache_increment.rb
257
+ - lib/skylight/normalizers/active_support/cache_read.rb
258
+ - lib/skylight/normalizers/active_support/cache_read_multi.rb
259
+ - lib/skylight/normalizers/active_support/cache_write.rb
260
+ - lib/skylight/normalizers/coach/handler_finish.rb
261
+ - lib/skylight/normalizers/coach/middleware_finish.rb
262
+ - lib/skylight/normalizers/couch_potato/query.rb
263
+ - lib/skylight/normalizers/data_mapper/sql.rb
264
+ - lib/skylight/normalizers/default.rb
265
+ - lib/skylight/normalizers/elasticsearch/request.rb
266
+ - lib/skylight/normalizers/faraday/request.rb
267
+ - lib/skylight/normalizers/grape/endpoint.rb
268
+ - lib/skylight/normalizers/grape/endpoint_render.rb
269
+ - lib/skylight/normalizers/grape/endpoint_run.rb
270
+ - lib/skylight/normalizers/grape/endpoint_run_filters.rb
271
+ - lib/skylight/normalizers/grape/format_response.rb
272
+ - lib/skylight/normalizers/graphiti/render.rb
273
+ - lib/skylight/normalizers/graphiti/resolve.rb
274
+ - lib/skylight/normalizers/graphql/base.rb
275
+ - lib/skylight/normalizers/render.rb
276
+ - lib/skylight/normalizers/sequel/sql.rb
277
+ - lib/skylight/normalizers/shrine.rb
278
+ - lib/skylight/normalizers/sql.rb
279
+ - lib/skylight/probes.rb
280
+ - lib/skylight/probes/action_controller.rb
281
+ - lib/skylight/probes/action_dispatch.rb
282
+ - lib/skylight/probes/action_dispatch/request_id.rb
283
+ - lib/skylight/probes/action_dispatch/routing/route_set.rb
284
+ - lib/skylight/probes/action_view.rb
285
+ - lib/skylight/probes/active_job.rb
286
+ - lib/skylight/probes/active_job_enqueue.rb
287
+ - lib/skylight/probes/active_model_serializers.rb
288
+ - lib/skylight/probes/active_record_async.rb
289
+ - lib/skylight/probes/delayed_job.rb
290
+ - lib/skylight/probes/elasticsearch.rb
291
+ - lib/skylight/probes/excon.rb
292
+ - lib/skylight/probes/excon/middleware.rb
293
+ - lib/skylight/probes/faraday.rb
294
+ - lib/skylight/probes/graphql.rb
295
+ - lib/skylight/probes/httpclient.rb
296
+ - lib/skylight/probes/middleware.rb
297
+ - lib/skylight/probes/mongo.rb
298
+ - lib/skylight/probes/mongoid.rb
299
+ - lib/skylight/probes/net_http.rb
300
+ - lib/skylight/probes/rack_builder.rb
301
+ - lib/skylight/probes/redis.rb
302
+ - lib/skylight/probes/sequel.rb
303
+ - lib/skylight/probes/sinatra.rb
202
304
  - lib/skylight/probes/sinatra_add_middleware.rb
305
+ - lib/skylight/probes/tilt.rb
203
306
  - lib/skylight/railtie.rb
307
+ - lib/skylight/sidekiq.rb
204
308
  - lib/skylight/sinatra.rb
309
+ - lib/skylight/subscriber.rb
310
+ - lib/skylight/test.rb
205
311
  - lib/skylight/trace.rb
312
+ - lib/skylight/user_config.rb
313
+ - lib/skylight/util.rb
314
+ - lib/skylight/util/allocation_free.rb
315
+ - lib/skylight/util/clock.rb
206
316
  - lib/skylight/util/component.rb
207
317
  - lib/skylight/util/deploy.rb
318
+ - lib/skylight/util/gzip.rb
208
319
  - lib/skylight/util/hostname.rb
209
320
  - lib/skylight/util/http.rb
321
+ - lib/skylight/util/instrumenter_method.rb
322
+ - lib/skylight/util/logging.rb
323
+ - lib/skylight/util/lru_cache.rb
210
324
  - lib/skylight/util/platform.rb
211
325
  - lib/skylight/util/proxy.rb
212
326
  - lib/skylight/util/ssl.rb
@@ -250,11 +364,13 @@ files:
250
364
  - lib/skylight/vendor/cli/thor/util.rb
251
365
  - lib/skylight/vendor/cli/thor/version.rb
252
366
  - lib/skylight/version.rb
367
+ - lib/skylight/vm/gc.rb
253
368
  homepage: https://www.skylight.io
254
369
  licenses:
255
370
  - Nonstandard
256
- metadata: {}
257
- post_install_message:
371
+ metadata:
372
+ rubygems_mfa_required: 'true'
373
+ post_install_message:
258
374
  rdoc_options: []
259
375
  require_paths:
260
376
  - lib
@@ -262,15 +378,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
378
  requirements:
263
379
  - - ">="
264
380
  - !ruby/object:Gem::Version
265
- version: '2.3'
381
+ version: '2.6'
266
382
  required_rubygems_version: !ruby/object:Gem::Requirement
267
383
  requirements:
268
384
  - - ">="
269
385
  - !ruby/object:Gem::Version
270
386
  version: '0'
271
387
  requirements: []
272
- rubygems_version: 3.0.3
273
- signing_key:
388
+ rubygems_version: 3.3.3
389
+ signing_key:
274
390
  specification_version: 4
275
391
  summary: Skylight is a smart profiler for Rails, Sinatra, and other Ruby apps.
276
392
  test_files: []