Class: Newrelic::Metrics

Inherits:
Object
  • Object
show all
Defined in:
lib/scaltainer/newrelic/metrics.rb

Instance Method Summary collapse

Constructor Details

#initialize(license_key) ⇒ Metrics

Returns a new instance of Metrics.



3
4
5
6
# File 'lib/scaltainer/newrelic/metrics.rb', line 3

def initialize(license_key)
  @headers = {"X-Api-Key" => license_key}
  @base_url = "https://api.newrelic.com/v2"
end

Instance Method Details

#get_avg_response_time(app_id, from, to) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/scaltainer/newrelic/metrics.rb', line 9

def get_avg_response_time(app_id, from, to)
  url = "#{@base_url}/applications/#{app_id}/metrics/data.json"
  conn = Excon.new(url, persistent: true, tcp_nodelay: true)
  time_range = "from=#{from.iso8601}&to=#{to.iso8601}"
  metric_names_array = %w(
    names[]=HttpDispatcher&values[]=average_call_time&values[]=call_count
    names[]=WebFrontend/QueueTime&values[]=call_count&values[]=average_response_time
  )
  response_array = request(conn, metric_names_array, time_range)
  http_call_count, http_average_call_time = response_array[0]["call_count"], response_array[0]["average_call_time"]
  webfe_call_count, webfe_average_response_time = response_array[1]["call_count"], response_array[1]["average_response_time"]

  http_average_call_time + (1.0 * webfe_call_count * webfe_average_response_time / http_call_count) rescue 0.0/0
end