skylight 4.3.2 → 5.1.1

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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +399 -336
  3. data/CLA.md +1 -1
  4. data/CONTRIBUTING.md +2 -8
  5. data/LICENSE.md +7 -17
  6. data/README.md +1 -1
  7. data/ext/extconf.rb +45 -56
  8. data/ext/libskylight.yml +10 -6
  9. data/ext/skylight_native.c +22 -99
  10. data/lib/skylight.rb +201 -14
  11. data/lib/skylight/api.rb +32 -21
  12. data/lib/skylight/cli.rb +48 -46
  13. data/lib/skylight/cli/doctor.rb +62 -63
  14. data/lib/skylight/cli/helpers.rb +19 -19
  15. data/lib/skylight/cli/merger.rb +142 -138
  16. data/lib/skylight/config.rb +634 -199
  17. data/lib/skylight/deprecation.rb +17 -0
  18. data/lib/skylight/errors.rb +23 -9
  19. data/lib/skylight/extensions.rb +95 -0
  20. data/lib/skylight/extensions/source_location.rb +291 -0
  21. data/lib/skylight/formatters/http.rb +18 -0
  22. data/lib/skylight/gc.rb +99 -0
  23. data/lib/skylight/helpers.rb +81 -36
  24. data/lib/skylight/instrumenter.rb +336 -18
  25. data/lib/skylight/middleware.rb +134 -1
  26. data/lib/skylight/native.rb +60 -12
  27. data/lib/skylight/native_ext_fetcher.rb +13 -14
  28. data/lib/skylight/normalizers.rb +157 -0
  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 +90 -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 +12 -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 +45 -0
  72. data/lib/skylight/probes.rb +173 -0
  73. data/lib/skylight/probes/action_controller.rb +52 -0
  74. data/lib/skylight/probes/action_dispatch.rb +2 -0
  75. data/lib/skylight/probes/action_dispatch/request_id.rb +33 -0
  76. data/lib/skylight/probes/action_dispatch/routing/route_set.rb +30 -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/delayed_job.rb +144 -0
  82. data/lib/skylight/probes/elasticsearch.rb +36 -0
  83. data/lib/skylight/probes/excon.rb +25 -0
  84. data/lib/skylight/probes/excon/middleware.rb +65 -0
  85. data/lib/skylight/probes/faraday.rb +23 -0
  86. data/lib/skylight/probes/graphql.rb +38 -0
  87. data/lib/skylight/probes/httpclient.rb +44 -0
  88. data/lib/skylight/probes/middleware.rb +135 -0
  89. data/lib/skylight/probes/mongo.rb +156 -0
  90. data/lib/skylight/probes/mongoid.rb +13 -0
  91. data/lib/skylight/probes/net_http.rb +54 -0
  92. data/lib/skylight/probes/redis.rb +51 -0
  93. data/lib/skylight/probes/sequel.rb +29 -0
  94. data/lib/skylight/probes/sinatra.rb +66 -0
  95. data/lib/skylight/probes/sinatra_add_middleware.rb +10 -10
  96. data/lib/skylight/probes/tilt.rb +25 -0
  97. data/lib/skylight/railtie.rb +157 -27
  98. data/lib/skylight/sidekiq.rb +47 -0
  99. data/lib/skylight/subscriber.rb +108 -0
  100. data/lib/skylight/test.rb +151 -0
  101. data/lib/skylight/trace.rb +325 -22
  102. data/lib/skylight/user_config.rb +58 -0
  103. data/lib/skylight/util.rb +12 -0
  104. data/lib/skylight/util/allocation_free.rb +26 -0
  105. data/lib/skylight/util/clock.rb +57 -0
  106. data/lib/skylight/util/component.rb +22 -22
  107. data/lib/skylight/util/deploy.rb +16 -21
  108. data/lib/skylight/util/gzip.rb +20 -0
  109. data/lib/skylight/util/http.rb +106 -113
  110. data/lib/skylight/util/instrumenter_method.rb +26 -0
  111. data/lib/skylight/util/logging.rb +136 -0
  112. data/lib/skylight/util/lru_cache.rb +36 -0
  113. data/lib/skylight/util/platform.rb +1 -5
  114. data/lib/skylight/util/ssl.rb +1 -25
  115. data/lib/skylight/vendor/cli/thor/rake_compat.rb +1 -1
  116. data/lib/skylight/version.rb +5 -1
  117. data/lib/skylight/vm/gc.rb +60 -0
  118. metadata +126 -13
@@ -0,0 +1,26 @@
1
+ module Skylight
2
+ module Util
3
+ module InstrumenterMethod
4
+ def instrumenter_method(name, block: false)
5
+ if block
6
+ module_eval <<-RUBY, __FILE__, __LINE__ + 1
7
+ def #{name}(*args) # def mute(*args)
8
+ unless instrumenter # unless instrumenter
9
+ return yield if block_given? # return yield if block_given?
10
+ return # return
11
+ end # end
12
+ #
13
+ instrumenter.#{name}(*args) { yield } # instrumenter.mute(*args) { yield }
14
+ end # end
15
+ RUBY
16
+ else
17
+ module_eval <<-RUBY, __FILE__, __LINE__ + 1
18
+ def #{name}(*args) # def config(*args)
19
+ instrumenter&.#{name}(*args) # instrumenter&.config(*args)
20
+ end # end
21
+ RUBY
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,136 @@
1
+ require "logger"
2
+
3
+ module Skylight
4
+ module Util
5
+ # Log both to the specified logger and STDOUT
6
+ class AlertLogger
7
+ def initialize(logger)
8
+ @logger = logger
9
+ end
10
+
11
+ def write(*args)
12
+ $stderr.write(*args)
13
+
14
+ # Try to avoid writing to STDOUT/STDERR twice
15
+ logger_logdev = @logger.instance_variable_get(:@logdev)
16
+ logger_out = logger_logdev.respond_to?(:dev) ? logger_logdev.dev : nil
17
+ @logger.<<(*args) if logger_out != $stdout && logger_out != $stderr
18
+ end
19
+
20
+ def close; end
21
+ end
22
+
23
+ module Logging
24
+ def log_context
25
+ {}
26
+ end
27
+
28
+ def trace?
29
+ !!ENV[-"SKYLIGHT_ENABLE_TRACE_LOGS"]
30
+ end
31
+
32
+ def raise_on_error?
33
+ !!ENV[-"SKYLIGHT_RAISE_ON_ERROR"]
34
+ end
35
+
36
+ # Logs if tracing
37
+ #
38
+ # @param (see #debug)
39
+ #
40
+ # See {trace?}.
41
+ def trace(msg, *args)
42
+ return unless trace?
43
+
44
+ log :debug, msg, *args
45
+ end
46
+
47
+ # Evaluates and logs the result of the block if tracing
48
+ #
49
+ # @yield block to be evaluted
50
+ # @yieldreturn arguments for {#debug}
51
+ #
52
+ # See {trace?}.
53
+ def t
54
+ return unless trace?
55
+
56
+ log :debug, yield
57
+ end
58
+
59
+ # @param msg (see #log)
60
+ # @param args (see #log)
61
+ def debug(msg, *args)
62
+ log :debug, msg, *args
63
+ end
64
+
65
+ # @param msg (see #log)
66
+ # @param args (see #log)
67
+ def info(msg, *args)
68
+ log :info, msg, *args
69
+ end
70
+
71
+ # @param msg (see #log)
72
+ # @param args (see #log)
73
+ def warn(msg, *args)
74
+ log :warn, msg, *args
75
+ end
76
+
77
+ # @param msg (see #log)
78
+ # @param args (see #log)
79
+ def error(msg, *args)
80
+ log :error, msg, *args
81
+ raise format(msg, *args) if raise_on_error?
82
+ end
83
+
84
+ alias log_trace trace
85
+ alias log_debug debug
86
+ alias log_info info
87
+ alias log_warn warn
88
+ alias log_error error
89
+
90
+ # Alias for `Kernel#sprintf`
91
+ # @return [String]
92
+ def fmt(*args)
93
+ sprintf(*args)
94
+ end
95
+
96
+ def config_for_logging
97
+ if respond_to?(:config)
98
+ config
99
+ elsif is_a?(Skylight::Config)
100
+ self
101
+ end
102
+ end
103
+
104
+ # @param level [String,Symbol] the method on `logger` to use for logging
105
+ # @param msg [String] the message to log
106
+ # @param args [Array] values for `Kernel#sprintf` on `msg`
107
+ def log(level, msg, *args)
108
+ c = config_for_logging
109
+ logger = c ? c.logger : nil
110
+
111
+ msg = log_context.map { |(k, v)| "#{k}=#{v}; " }.join << msg
112
+
113
+ if logger
114
+ if logger.respond_to?(level)
115
+ if args.empty?
116
+ logger.send level, msg
117
+ else
118
+ logger.send level, format(msg, *args)
119
+ end
120
+ return # rubocop:disable Style/RedundantReturn
121
+ else
122
+ Kernel.warn "Invalid logger"
123
+ end
124
+ # Fallback to stderr for warn and error levels
125
+ elsif %i[warn error].include?(level)
126
+ $stderr.puts format("[SKYLIGHT] #{msg}", *args)
127
+ end
128
+ rescue Exception => e
129
+ if trace?
130
+ puts "[ERROR] #{e.message}"
131
+ puts e.backtrace
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,36 @@
1
+ # Based on code by Sam Saffron: https://stackoverflow.com/a/16161783/181916
2
+ module Skylight
3
+ module Util
4
+ class LruCache
5
+ def initialize(max_size)
6
+ @max_size = max_size
7
+ @data = {}
8
+ end
9
+
10
+ def max_size=(size)
11
+ raise ArgumentError, :max_size if @max_size < 1
12
+
13
+ @max_size = size
14
+ @data.shift while @data.size > @max_size
15
+ end
16
+
17
+ # Individual hash operations here are atomic in MRI.
18
+ def fetch(key)
19
+ found = true
20
+ value = @data.delete(key) { found = false }
21
+
22
+ value = yield if !found && block_given?
23
+
24
+ @data[key] = value if value
25
+
26
+ @data.shift if !found && value && @data.length > @max_size
27
+
28
+ value
29
+ end
30
+
31
+ def clear
32
+ @data.clear
33
+ end
34
+ end
35
+ end
36
+ end
@@ -12,11 +12,7 @@ module Skylight
12
12
  # Ruby doesn't know that it's on a musl-based platform. `ldd` is the
13
13
  # only reliable way to detect musl that we've found.
14
14
  # See https://github.com/skylightio/skylight-ruby/issues/92
15
- if ENV["SKYLIGHT_MUSL"] || `ldd --version 2>&1` =~ /musl/
16
- "linux-musl"
17
- else
18
- "linux"
19
- end
15
+ ENV["SKYLIGHT_MUSL"] || `ldd --version 2>&1` =~ /musl/ ? "linux-musl" : "linux"
20
16
  when /darwin/
21
17
  "darwin"
22
18
  when /freebsd/
@@ -12,43 +12,19 @@ module Skylight
12
12
  if defined?(OpenSSL::X509::DEFAULT_CERT_FILE)
13
13
  f = OpenSSL::X509::DEFAULT_CERT_FILE
14
14
 
15
- if f && File.exist?(f)
16
- @ca_cert_file = f
17
- end
18
- end
19
- end
20
-
21
- def self.detect_ca_cert_dir!
22
- return nil if ENV["SKYLIGHT_FORCE_OWN_CERTS"]
23
-
24
- @ca_cert_dir = false
25
- if defined?(OpenSSL::X509::DEFAULT_CERT_DIR)
26
- d = OpenSSL::X509::DEFAULT_CERT_DIR
27
-
28
- if d && File.exist?(d)
29
- @ca_cert_dir = d
30
- end
15
+ @ca_cert_file = f if f && File.exist?(f)
31
16
  end
32
17
  end
33
18
 
34
19
  detect_ca_cert_file!
35
- detect_ca_cert_dir!
36
20
 
37
21
  def self.ca_cert_file?
38
22
  !!@ca_cert_file
39
23
  end
40
24
 
41
- def self.ca_cert_dir?
42
- !!@ca_cert_dir
43
- end
44
-
45
25
  def self.ca_cert_file_or_default
46
26
  @ca_cert_file || DEFAULT_CA_FILE
47
27
  end
48
-
49
- class << self
50
- attr_reader :ca_cert_dir
51
- end
52
28
  end
53
29
  end
54
30
  end
@@ -11,7 +11,7 @@ class Thor
11
11
  # class Default < Thor
12
12
  # include Thor::RakeCompat
13
13
  #
14
- # RSpec::Core::RakeTask.new(:spec) do |t|
14
+ # RSpec::RakeTask.new(:spec) do |t|
15
15
  # t.spec_opts = ['--options', "./.rspec"]
16
16
  # t.spec_files = FileList['spec/**/*_spec.rb']
17
17
  # end
@@ -1,3 +1,7 @@
1
1
  module Skylight
2
- VERSION = "4.3.2".freeze
2
+ # pre-release versions should be given here as "5.0.0-alpha"
3
+ # for compatibility with semver when it is parsed by the rust agent.
4
+ # This string will be transformed in the gemspec to "5.0.0.alpha"
5
+ # to conform with rubygems.
6
+ VERSION = "5.1.1".freeze
3
7
  end
@@ -0,0 +1,60 @@
1
+ module Skylight
2
+ # @api private
3
+ module VM
4
+ if defined?(JRUBY_VERSION)
5
+ # This doesn't quite work as we would like it. I believe that the GC
6
+ # statistics includes time that is not stop-the-world, this does not
7
+ # necessarily take time away from the application.
8
+ #
9
+ # require 'java'
10
+ # class GC
11
+ # def initialize
12
+ # @factory = Java::JavaLangManagement::ManagementFactory
13
+ # end
14
+ #
15
+ # def enable
16
+ # end
17
+ #
18
+ # def total_time
19
+ # res = 0.0
20
+ #
21
+ # @factory.garbage_collector_mx_beans.each do |mx|
22
+ # res += (mx.collection_time.to_f / 1_000.0)
23
+ # end
24
+ #
25
+ # res
26
+ # end
27
+ # end
28
+ elsif defined?(::GC::Profiler)
29
+ class GC
30
+ def initialize
31
+ @total = 0
32
+ end
33
+
34
+ def enable
35
+ ::GC::Profiler.enable
36
+ end
37
+
38
+ def total_time
39
+ # Reported in seconds
40
+ run = (::GC::Profiler.total_time * 1_000_000).to_i
41
+
42
+ ::GC::Profiler.clear if run > 0
43
+
44
+ @total += run
45
+ end
46
+ end
47
+ end
48
+
49
+ # Fallback
50
+ unless defined?(VM::GC)
51
+ class GC
52
+ def enable; end
53
+
54
+ def total_time
55
+ 0
56
+ end
57
+ end
58
+ end
59
+ end
60
+ 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.3.2
4
+ version: 5.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tilde, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-15 00:00:00.000000000 Z
11
+ date: 2021-05-28 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.3.2
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.3.2
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: 12.3.3
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: 12.3.3
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.15.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.15.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
@@ -193,20 +221,104 @@ 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/delayed_job.rb
289
+ - lib/skylight/probes/elasticsearch.rb
290
+ - lib/skylight/probes/excon.rb
291
+ - lib/skylight/probes/excon/middleware.rb
292
+ - lib/skylight/probes/faraday.rb
293
+ - lib/skylight/probes/graphql.rb
294
+ - lib/skylight/probes/httpclient.rb
295
+ - lib/skylight/probes/middleware.rb
296
+ - lib/skylight/probes/mongo.rb
297
+ - lib/skylight/probes/mongoid.rb
298
+ - lib/skylight/probes/net_http.rb
299
+ - lib/skylight/probes/redis.rb
300
+ - lib/skylight/probes/sequel.rb
301
+ - lib/skylight/probes/sinatra.rb
202
302
  - lib/skylight/probes/sinatra_add_middleware.rb
303
+ - lib/skylight/probes/tilt.rb
203
304
  - lib/skylight/railtie.rb
305
+ - lib/skylight/sidekiq.rb
204
306
  - lib/skylight/sinatra.rb
307
+ - lib/skylight/subscriber.rb
308
+ - lib/skylight/test.rb
205
309
  - lib/skylight/trace.rb
310
+ - lib/skylight/user_config.rb
311
+ - lib/skylight/util.rb
312
+ - lib/skylight/util/allocation_free.rb
313
+ - lib/skylight/util/clock.rb
206
314
  - lib/skylight/util/component.rb
207
315
  - lib/skylight/util/deploy.rb
316
+ - lib/skylight/util/gzip.rb
208
317
  - lib/skylight/util/hostname.rb
209
318
  - lib/skylight/util/http.rb
319
+ - lib/skylight/util/instrumenter_method.rb
320
+ - lib/skylight/util/logging.rb
321
+ - lib/skylight/util/lru_cache.rb
210
322
  - lib/skylight/util/platform.rb
211
323
  - lib/skylight/util/proxy.rb
212
324
  - lib/skylight/util/ssl.rb
@@ -250,6 +362,7 @@ files:
250
362
  - lib/skylight/vendor/cli/thor/util.rb
251
363
  - lib/skylight/vendor/cli/thor/version.rb
252
364
  - lib/skylight/version.rb
365
+ - lib/skylight/vm/gc.rb
253
366
  homepage: https://www.skylight.io
254
367
  licenses:
255
368
  - Nonstandard
@@ -262,14 +375,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
375
  requirements:
263
376
  - - ">="
264
377
  - !ruby/object:Gem::Version
265
- version: '2.3'
378
+ version: '2.6'
266
379
  required_rubygems_version: !ruby/object:Gem::Requirement
267
380
  requirements:
268
381
  - - ">="
269
382
  - !ruby/object:Gem::Version
270
383
  version: '0'
271
384
  requirements: []
272
- rubygems_version: 3.1.4
385
+ rubygems_version: 3.2.15
273
386
  signing_key:
274
387
  specification_version: 4
275
388
  summary: Skylight is a smart profiler for Rails, Sinatra, and other Ruby apps.