Class: AppMap::Handler::Rails::SQLHandler
- Defined in:
- lib/appmap/handler/rails/sql_handler.rb
Defined Under Namespace
Modules: SQLExaminer Classes: SQLCall, SQLReturn
Instance Method Summary collapse
-
#call(_, started, finished, _, payload) ⇒ Object
(name, started, finished, unique_id, payload).
Instance Method Details
#call(_, started, finished, _, payload) ⇒ Object
(name, started, finished, unique_id, payload)
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/appmap/handler/rails/sql_handler.rb', line 144 def call(_, started, finished, _, payload) # (name, started, finished, unique_id, payload) return if AppMap.tracing.empty? return if Thread.current[AppMap::Hook::Method::HOOK_DISABLE_KEY] == true reentry_key = "#{self.class.name}#call" return if Thread.current[reentry_key] == true after_start_time = AppMap::Util.gettime() Thread.current[reentry_key] = true begin sql = payload[:sql].strip SQLExaminer.examine payload, sql: sql call = SQLCall.new(payload) AppMap.tracing.record_event(call) sql_return_event = SQLReturn.new(call.id, finished - started) sql_return_event.elapsed_instrumentation = AppMap::Util.gettime() - after_start_time AppMap.tracing.record_event(sql_return_event) ensure Thread.current[reentry_key] = nil end end |