module DatadogRails

Constants

BLACK

Colors

BLUE
BOLD
CLEAR

Embed in a String to clear all previous ANSI sequences.

CYAN
GREEN
MAGENTA
RED
VERSION
WHITE
YELLOW

Attributes

client[W]
configuration[W]

Public Class Methods

client() click to toggle source
# File lib/datadog_rails.rb, line 34
def client
  @client ||= Statsd.new configuration.dogstatsd_host, configuration.dogstatsd_port
end
color(text, color, bold=false) click to toggle source
# File lib/datadog_rails.rb, line 62
def color(text, color, bold=false)
  bold  = bold ? BOLD : ""
  "#{bold}#{color}#{text}#{CLEAR}"
end
configuration() click to toggle source
# File lib/datadog_rails.rb, line 24
def configuration
  @configuration ||= DatadogRails::Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/datadog_rails.rb, line 28
def configure
  yield(configuration)

  self.client = nil
end
log_event(payload) click to toggle source
# File lib/datadog_rails.rb, line 50
def log_event(payload)
  key_name = "#{configuration.application_name}.#{payload[:measurement]}"

  info = "\n"
  info << " \tmethod => #{payload[:action]}\n"
  info << " \tmetric => #{key_name}\n"
  info << " \tvalue  => #{payload[:value]}\n"
  info << " \ttags   => #{payload[:tags]}"

  Rails.logger.info color(" DatadogRails", GREEN, true) + color(info, WHITE, true)
end
send_event_to_statsd(payload) click to toggle source
# File lib/datadog_rails.rb, line 38
def send_event_to_statsd(payload)
  key_name = "#{configuration.application_name}.#{payload[:measurement]}"

  if payload[:action] == :increment
    client.increment key_name, :tags => payload[:tags]
  else
    client.histogram key_name, payload[:value], :tags => payload[:tags]
  end

  log_event(payload) if configuration.debug?
end