class TingYun::Agent::Collector::SqlTrace
Attributes
action_metric_name[R]
params[R]
slow_sql[R]
sql[R]
uri[R]
Public Class Methods
new(normalized_query, slow_sql, action_name, uri)
click to toggle source
Calls superclass method
TingYun::Metrics::Stats::new
# File lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb, line 19 def initialize(normalized_query, slow_sql, action_name, uri) super() @params = {} @action_metric_name = action_name @slow_sql = slow_sql @sql = normalized_query @uri = uri @params[:stacktrace] = slow_sql.backtrace record_data_point(float(slow_sql.duration)) end
Public Instance Methods
aggregate(slow_sql, action_name, uri)
click to toggle source
# File lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb, line 31 def aggregate(slow_sql, action_name, uri) duration = slow_sql.duration if duration > max_call_time @action_metric_name = action_name @slow_sql = slow_sql @uri = uri @params[:stacktrace] = slow_sql.backtrace end record_data_point(float(duration)) end
need_to_explain?()
click to toggle source
# File lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb, line 49 def need_to_explain? Agent.config[:'nbs.action_tracer.explain_enabled'] && @slow_sql.duration * 1000 > TingYun::Agent.config[:'nbs.action_tracer.explain_threshold'] end
prepare_to_send()
click to toggle source
# File lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb, line 43 def prepare_to_send @sql = @slow_sql.sql unless Agent.config[:'nbs.action_tracer.record_sql'].to_s == 'obfuscated' @params[:explainPlan] = @slow_sql.explain if need_to_explain? end
to_collector_array(encoder)
click to toggle source
# File lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb, line 56 def to_collector_array(encoder) [ @slow_sql.start_time, string(@action_metric_name), string(@slow_sql.metric_name), string(@uri||@action_metric_name), string(@sql), int(@call_count), TingYun::Helper.time_to_millis(@total_call_time), TingYun::Helper.time_to_millis(@max_call_time), TingYun::Helper.time_to_millis(@min_call_time), encoder.encode(@params) ] end