Skip to content

Instantly share code, notes, and snippets.

@jkndrkn
Created April 28, 2011 16:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jkndrkn/946664 to your computer and use it in GitHub Desktop.
Save jkndrkn/946664 to your computer and use it in GitHub Desktop.
ops@leadtune.com New Relic Issues
# 1
require 'newrelic_rpm'
require 'new_relic/agent/method_tracer'
class PayloadRanker
def initialize(payload)
@payload = payload
NewRelic::Agent.manual_start :agent_enabled => true
ObjectSpace.define_finalizer(self, proc {|_| NewRelic::Agent.shutdown})
end
def rank
ranking = Appraiser.value(@payload[:appraiser_code], @payload[:potential_offer], @payload[:decision_config])
ranking.factor_values = Prominator.populated_decision_factors(@payload[:decision_factors], @payload[:potential_offer][:potential_event])
ranking
end
add_method_tracer :rank
end
# 2
require 'new_relic/agent/method_tracer'
class RevenueAppraiser < Appraiser
acts_as_logger :group => 'Stats', :name => 'RA'
def initialize(options = { })
NewRelic::Agent.manual_start :agent_enabled => true
ObjectSpace.define_finalizer(self, proc {|_| NewRelic::Agent.shutdown})
super(options)
end
def predictor_probabilities(predictor, potential_event, predictor_options)
predictor.probabilities(potential_event, predictor_options)
end
add_method_tracer :predictor_probabilities
def value(potential_offer, return_ranking = false, decision_config = DecisionConfiguration.new({}))
potential_event = potential_offer[:potential_event]
predictor_options = decision_config[:predictor_options] || Hash.new
predictor = predictor_options[:predictor] == "leadtune" ? LeadtunePredictor : @predictor
probabilities = predictor_probabilities(predictor, potential_event, predictor_options)
result, variables = revenue_computation(potential_event, potential_offer, probabilities, decision_config)
#...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment