Commit 935f9131 authored by Yorick Peterse's avatar Yorick Peterse

Instrument Banzai code

parent 15cbbd09
...@@ -75,6 +75,29 @@ if Gitlab::Metrics.enabled? ...@@ -75,6 +75,29 @@ if Gitlab::Metrics.enabled?
config.instrument_methods(const) config.instrument_methods(const)
config.instrument_instance_methods(const) config.instrument_instance_methods(const)
end end
# Instruments all Banzai filters
Dir[Rails.root.join('lib', 'banzai', 'filter', '*.rb')].each do |file|
klass = File.basename(file, File.extname(file)).camelize
const = Banzai::Filter.const_get(klass)
config.instrument_methods(const)
config.instrument_instance_methods(const)
end
config.instrument_methods(Banzai::ReferenceExtractor)
config.instrument_instance_methods(Banzai::ReferenceExtractor)
config.instrument_methods(Banzai::Renderer)
config.instrument_methods(Banzai::Querying)
[Issuable, Mentionable, Participable].each do |klass|
config.instrument_instance_methods(klass)
config.instrument_instance_methods(klass::ClassMethods)
end
config.instrument_methods(Gitlab::ReferenceExtractor)
config.instrument_instance_methods(Gitlab::ReferenceExtractor)
end end
GC::Profiler.enable GC::Profiler.enable
......
...@@ -19,9 +19,11 @@ module Banzai ...@@ -19,9 +19,11 @@ module Banzai
cache_key = full_cache_key(cache_key, context[:pipeline]) cache_key = full_cache_key(cache_key, context[:pipeline])
if cache_key if cache_key
Gitlab::Metrics.measure(:banzai_cached_render) do
Rails.cache.fetch(cache_key) do Rails.cache.fetch(cache_key) do
cacheless_render(text, context) cacheless_render(text, context)
end end
end
else else
cacheless_render(text, context) cacheless_render(text, context)
end end
...@@ -64,6 +66,7 @@ module Banzai ...@@ -64,6 +66,7 @@ module Banzai
private private
def self.cacheless_render(text, context = {}) def self.cacheless_render(text, context = {})
Gitlab::Metrics.measure(:banzai_cacheless_render) do
result = render_result(text, context) result = render_result(text, context)
output = result[:output] output = result[:output]
...@@ -73,6 +76,7 @@ module Banzai ...@@ -73,6 +76,7 @@ module Banzai
output.to_s output.to_s
end end
end end
end
def self.full_cache_key(cache_key, pipeline_name) def self.full_cache_key(cache_key, pipeline_name)
return unless cache_key return unless cache_key
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment