Class: StatsD::Instrument::DatagramBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/statsd/instrument/datagram_builder.rb

Overview

Note:

This class is part of the new Client implementation that is intended to become the new default in the next major release of this library.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prefix: nil, default_tags: nil) ⇒ DatagramBuilder

Returns a new instance of DatagramBuilder.



22
23
24
25
# File 'lib/statsd/instrument/datagram_builder.rb', line 22

def initialize(prefix: nil, default_tags: nil)
  @prefix = prefix.nil? ? "" : "#{prefix}.".tr(":|@", "_")
  @default_tags = default_tags.nil? || default_tags.empty? ? nil : compile_tags(default_tags, "|#".b)
end

Class Method Details

.datagram_classObject



17
18
19
# File 'lib/statsd/instrument/datagram_builder.rb', line 17

def datagram_class
  StatsD::Instrument::Datagram
end

.unsupported_datagram_types(*types) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/statsd/instrument/datagram_builder.rb', line 9

def unsupported_datagram_types(*types)
  types.each do |type|
    define_method(type) do |_, _, _, _|
      raise NotImplementedError, "Type #{type} metrics are not supported by #{self.class.name}."
    end
  end
end

Instance Method Details

#c(name, value, sample_rate, tags) ⇒ Object



27
28
29
# File 'lib/statsd/instrument/datagram_builder.rb', line 27

def c(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "c", sample_rate, tags)
end

#d(name, value, sample_rate, tags) ⇒ Object



47
48
49
# File 'lib/statsd/instrument/datagram_builder.rb', line 47

def d(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "d", sample_rate, tags)
end

#g(name, value, sample_rate, tags) ⇒ Object



31
32
33
# File 'lib/statsd/instrument/datagram_builder.rb', line 31

def g(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "g", sample_rate, tags)
end

#h(name, value, sample_rate, tags) ⇒ Object



43
44
45
# File 'lib/statsd/instrument/datagram_builder.rb', line 43

def h(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "h", sample_rate, tags)
end

#kv(name, value, sample_rate, tags) ⇒ Object



51
52
53
# File 'lib/statsd/instrument/datagram_builder.rb', line 51

def kv(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "kv", sample_rate, tags)
end

#latency_metric_typeObject



55
56
57
# File 'lib/statsd/instrument/datagram_builder.rb', line 55

def latency_metric_type
  :ms
end

#ms(name, value, sample_rate, tags) ⇒ Object



35
36
37
# File 'lib/statsd/instrument/datagram_builder.rb', line 35

def ms(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "ms", sample_rate, tags)
end

#s(name, value, sample_rate, tags) ⇒ Object



39
40
41
# File 'lib/statsd/instrument/datagram_builder.rb', line 39

def s(name, value, sample_rate, tags)
  generate_generic_datagram(name, value, "s", sample_rate, tags)
end