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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +420 -331
- data/CLA.md +1 -1
- data/CONTRIBUTING.md +2 -8
- data/ERRORS.md +3 -0
- data/LICENSE.md +7 -17
- data/README.md +1 -1
- data/ext/extconf.rb +61 -56
- data/ext/libskylight.yml +8 -6
- data/ext/skylight_native.c +26 -100
- data/lib/skylight/api.rb +32 -21
- data/lib/skylight/cli/doctor.rb +64 -65
- data/lib/skylight/cli/helpers.rb +19 -19
- data/lib/skylight/cli/merger.rb +142 -138
- data/lib/skylight/cli.rb +48 -46
- data/lib/skylight/config.rb +640 -201
- data/lib/skylight/data/cacert.pem +730 -1023
- data/lib/skylight/deprecation.rb +17 -0
- data/lib/skylight/errors.rb +26 -9
- data/lib/skylight/extensions/source_location.rb +291 -0
- data/lib/skylight/extensions.rb +95 -0
- data/lib/skylight/formatters/http.rb +18 -0
- data/lib/skylight/gc.rb +99 -0
- data/lib/skylight/helpers.rb +81 -36
- data/lib/skylight/instrumenter.rb +336 -18
- data/lib/skylight/middleware.rb +147 -1
- data/lib/skylight/native.rb +60 -12
- data/lib/skylight/native_ext_fetcher.rb +13 -14
- data/lib/skylight/normalizers/action_controller/process_action.rb +68 -0
- data/lib/skylight/normalizers/action_controller/send_file.rb +51 -0
- data/lib/skylight/normalizers/action_dispatch/process_middleware.rb +22 -0
- data/lib/skylight/normalizers/action_dispatch/route_set.rb +27 -0
- data/lib/skylight/normalizers/action_view/render_collection.rb +24 -0
- data/lib/skylight/normalizers/action_view/render_layout.rb +25 -0
- data/lib/skylight/normalizers/action_view/render_partial.rb +23 -0
- data/lib/skylight/normalizers/action_view/render_template.rb +23 -0
- data/lib/skylight/normalizers/active_job/perform.rb +87 -0
- data/lib/skylight/normalizers/active_model_serializers/render.rb +32 -0
- data/lib/skylight/normalizers/active_record/instantiation.rb +16 -0
- data/lib/skylight/normalizers/active_record/sql.rb +20 -0
- data/lib/skylight/normalizers/active_storage.rb +28 -0
- data/lib/skylight/normalizers/active_support/cache.rb +11 -0
- data/lib/skylight/normalizers/active_support/cache_clear.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_decrement.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_delete.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_exist.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_fetch_hit.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_generate.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_increment.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_read.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_read_multi.rb +16 -0
- data/lib/skylight/normalizers/active_support/cache_write.rb +16 -0
- data/lib/skylight/normalizers/coach/handler_finish.rb +44 -0
- data/lib/skylight/normalizers/coach/middleware_finish.rb +33 -0
- data/lib/skylight/normalizers/couch_potato/query.rb +20 -0
- data/lib/skylight/normalizers/data_mapper/sql.rb +12 -0
- data/lib/skylight/normalizers/default.rb +24 -0
- data/lib/skylight/normalizers/elasticsearch/request.rb +20 -0
- data/lib/skylight/normalizers/faraday/request.rb +38 -0
- data/lib/skylight/normalizers/grape/endpoint.rb +28 -0
- data/lib/skylight/normalizers/grape/endpoint_render.rb +25 -0
- data/lib/skylight/normalizers/grape/endpoint_run.rb +39 -0
- data/lib/skylight/normalizers/grape/endpoint_run_filters.rb +20 -0
- data/lib/skylight/normalizers/grape/format_response.rb +20 -0
- data/lib/skylight/normalizers/graphiti/render.rb +22 -0
- data/lib/skylight/normalizers/graphiti/resolve.rb +31 -0
- data/lib/skylight/normalizers/graphql/base.rb +127 -0
- data/lib/skylight/normalizers/render.rb +79 -0
- data/lib/skylight/normalizers/sequel/sql.rb +12 -0
- data/lib/skylight/normalizers/shrine.rb +32 -0
- data/lib/skylight/normalizers/sql.rb +41 -0
- data/lib/skylight/normalizers.rb +157 -0
- data/lib/skylight/probes/action_controller.rb +52 -0
- data/lib/skylight/probes/action_dispatch/request_id.rb +33 -0
- data/lib/skylight/probes/action_dispatch/routing/route_set.rb +30 -0
- data/lib/skylight/probes/action_dispatch.rb +2 -0
- data/lib/skylight/probes/action_view.rb +42 -0
- data/lib/skylight/probes/active_job.rb +27 -0
- data/lib/skylight/probes/active_job_enqueue.rb +35 -0
- data/lib/skylight/probes/active_model_serializers.rb +50 -0
- data/lib/skylight/probes/active_record_async.rb +96 -0
- data/lib/skylight/probes/delayed_job.rb +144 -0
- data/lib/skylight/probes/elasticsearch.rb +36 -0
- data/lib/skylight/probes/excon/middleware.rb +65 -0
- data/lib/skylight/probes/excon.rb +25 -0
- data/lib/skylight/probes/faraday.rb +23 -0
- data/lib/skylight/probes/graphql.rb +38 -0
- data/lib/skylight/probes/httpclient.rb +44 -0
- data/lib/skylight/probes/middleware.rb +135 -0
- data/lib/skylight/probes/mongo.rb +156 -0
- data/lib/skylight/probes/mongoid.rb +13 -0
- data/lib/skylight/probes/net_http.rb +54 -0
- data/lib/skylight/probes/rack_builder.rb +37 -0
- data/lib/skylight/probes/redis.rb +51 -0
- data/lib/skylight/probes/sequel.rb +29 -0
- data/lib/skylight/probes/sinatra.rb +66 -0
- data/lib/skylight/probes/sinatra_add_middleware.rb +10 -10
- data/lib/skylight/probes/tilt.rb +25 -0
- data/lib/skylight/probes.rb +173 -0
- data/lib/skylight/railtie.rb +166 -28
- data/lib/skylight/sidekiq.rb +47 -0
- data/lib/skylight/sinatra.rb +1 -1
- data/lib/skylight/subscriber.rb +130 -0
- data/lib/skylight/test.rb +147 -0
- data/lib/skylight/trace.rb +325 -22
- data/lib/skylight/user_config.rb +58 -0
- data/lib/skylight/util/allocation_free.rb +26 -0
- data/lib/skylight/util/clock.rb +57 -0
- data/lib/skylight/util/component.rb +22 -22
- data/lib/skylight/util/deploy.rb +19 -24
- data/lib/skylight/util/gzip.rb +20 -0
- data/lib/skylight/util/http.rb +106 -113
- data/lib/skylight/util/instrumenter_method.rb +26 -0
- data/lib/skylight/util/logging.rb +136 -0
- data/lib/skylight/util/lru_cache.rb +36 -0
- data/lib/skylight/util/platform.rb +3 -7
- data/lib/skylight/util/ssl.rb +1 -25
- data/lib/skylight/util.rb +12 -0
- data/lib/skylight/vendor/cli/thor/rake_compat.rb +1 -1
- data/lib/skylight/version.rb +5 -1
- data/lib/skylight/vm/gc.rb +60 -0
- data/lib/skylight.rb +201 -14
- 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
|
-
#
|
|
20
|
-
|
|
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
|
-
|
|
35
|
+
extend Util::Logging
|
|
26
36
|
|
|
27
|
-
|
|
28
|
-
Instrumenter
|
|
29
|
-
end
|
|
37
|
+
LOCK = Mutex.new
|
|
30
38
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
+
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:
|
|
11
|
+
date: 2022-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: activesupport
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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: []
|