Slide 39
Slide 39 text
APM Traceable gem -
仕組み
module ApmTraceable::Tracer
def self.trace_methods(*method_names)
wrapper = Module.new do
method_names.each do |method_name|
define_method method_name do |*args, **options, &block|
trace_span(method_name.to_s) { super(*args, **options, &block) }
end
end
end
prepend(wrapper)
end
end
1
2
3
4
5
6
7
8
9
10
11
12
13
trace_methods
で各メソッドを持つモジュールを作り、
prepend
して呼び出しをラップするだけ