class Statsby::Client

Use a Statsby::Client to send metrics to a StatsD server

Attributes

metrics_writer[RW]
tags[RW]
tags_enabled[RW]

Public Class Methods

new( metrics_writer: UDPMetricsWriter.new, tags: {}, tags_enabled: true ) click to toggle source
# File lib/statsby/client.rb, line 8
def initialize(
  metrics_writer: UDPMetricsWriter.new,
  tags: {},
  tags_enabled: true
)
  self.metrics_writer = metrics_writer
  self.tags = Statsby::TagSet.from_hash(tags)
  self.tags_enabled = tags_enabled
end

Public Instance Methods

counter(metric_name, value, local_tags = {}) click to toggle source
# File lib/statsby/client.rb, line 22
def counter(metric_name, value, local_tags = {})
  send_message(format_message(metric_name, value, 'c', local_tags))
end
format_message(metric_name, value, type, message_tags = {}) click to toggle source
# File lib/statsby/client.rb, line 43
def format_message(metric_name, value, type, message_tags = {})
  "#{metric_name}#{format_tags(message_tags)}:#{value}|#{type}"
end
format_tags(message_tags = {}) click to toggle source
# File lib/statsby/client.rb, line 38
def format_tags(message_tags = {})
  combined_tags = tags.merge(message_tags)
  ",#{combined_tags}" if tags_enabled && !combined_tags.empty?
end
gauge(metric_name, value, local_tags = {}) click to toggle source
# File lib/statsby/client.rb, line 26
def gauge(metric_name, value, local_tags = {})
  send_message(format_message(metric_name, value, 'g', local_tags))
end
send_message(message) click to toggle source
# File lib/statsby/client.rb, line 18
def send_message(message)
  metrics_writer.write(message)
end
set(metric_name, value, local_tags = {}) click to toggle source
# File lib/statsby/client.rb, line 34
def set(metric_name, value, local_tags = {})
  send_message(format_message(metric_name, value, 's', local_tags))
end
subcontext(tags = {}) click to toggle source
# File lib/statsby/client.rb, line 47
def subcontext(tags = {})
  Statsby::Context.new(self, tags)
end
timing(metric_name, value, local_tags = {}) click to toggle source
# File lib/statsby/client.rb, line 30
def timing(metric_name, value, local_tags = {})
  send_message(format_message(metric_name, value, 'ms', local_tags))
end