class GenProf

Public Class Methods

new(event, rec_type) click to toggle source
# File lib/wprof/gen_prof.rb, line 4
def initialize(event, rec_type)
  @event = event
  @db_runtime = WProf::Config.get_value(:db_runtime)
  @async_report = WProf::Config.get_value(:async)
  @rec_type = rec_type
  generate_profiling
end

Public Instance Methods

generate_profiling() click to toggle source
# File lib/wprof/gen_prof.rb, line 12
def generate_profiling
  generate_common_params
  generate_custom_params
  deploy_reporter
end

Private Instance Methods

app_params() click to toggle source
# File lib/wprof/gen_prof.rb, line 40
def app_params
  for_app_only = {
    code: @event.payload[:status],
    controller: @event.payload[:controller],
    url: @event.payload[:path]
  }
  for_app_only[:db_runtime] = format_time(@event.payload[:db_runtime]) if @db_runtime
  @params.merge!(for_app_only)
end
custom_params() click to toggle source
# File lib/wprof/gen_prof.rb, line 59
def custom_params
  for_customs_only = {
    method: @event.payload[:method]
  }
  @params.merge!(for_customs_only)
end
deploy_reporter() click to toggle source
# File lib/wprof/gen_prof.rb, line 66
def deploy_reporter
  if @async_report
    WprofReporter.perform_async(@params, @rec_type)
  else
    WprofReporter.new.perform(@params, @rec_type)
  end
end
generate_common_params() click to toggle source
# File lib/wprof/gen_prof.rb, line 20
def generate_common_params
  @params = {
    transaction_id: @event.transaction_id,
    total_time: format_time(@event.duration),
    start_dt: @event.time,
    end_dt: @event.end
  }
end
generate_custom_params() click to toggle source
# File lib/wprof/gen_prof.rb, line 29
def generate_custom_params
  case @rec_type
  when :standard
    app_params
  when :service
    service_params
  when :custom
    custom_params
  end
end
service_params() click to toggle source
# File lib/wprof/gen_prof.rb, line 50
def service_params
  for_service_only = {
    code: @event.payload[:status],
    service_hostname: @event.payload[:service_hostname],
    request_uri: @event.payload[:request_uri]
  }
  @params.merge!(for_service_only)
end