module Telltale

Public Class Methods

client() click to toggle source
# File lib/telltale.rb, line 34
def client
  OpenTSDB::Client.new(hostname: opentsdb_host, port: opentsdb_port)
end
configure_request_instrumentation() click to toggle source
# File lib/telltale.rb, line 15
def configure_request_instrumentation
  ActiveSupport::Notifications.subscribe 'process_action.action_controller' do |_name, started, finished, _unique_id, payload|
    next unless report?
    client.put Telltale::Data.compile(started, finished, payload)
  end
end
opentsdb_host() click to toggle source
# File lib/telltale.rb, line 30
def opentsdb_host
  ENV['TELLTALE_OPENTSDB_HOST']
end
opentsdb_port() click to toggle source
# File lib/telltale.rb, line 26
def opentsdb_port
  ENV['TELLTALE_OPENTSDB_PORT'] || 4242
end
report?() click to toggle source
# File lib/telltale.rb, line 22
def report?
  opentsdb_host.present? && !Rails.env.test?
end
setup!() click to toggle source
# File lib/telltale.rb, line 6
def setup!
  if report?
    configure_request_instrumentation
    Rails.logger.info "Telltale started, will report to #{opentsdb_host} on port #{opentsdb_port}"
  else
    Rails.logger.error 'TELLTALE_OPENTSDB_HOST not set. Telltale will not report to OpenTSDB.'
  end
end