Class: Metrix::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/metrix/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw, time = Time.now) ⇒ Base

Returns a new instance of Base.



43
44
45
46
# File 'lib/metrix/base.rb', line 43

def initialize(raw, time = Time.now)
  @raw = raw
  @time = time
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



7
8
9
# File 'lib/metrix/base.rb', line 7

def attributes
  @attributes
end

#timeObject (readonly)

Returns the value of attribute time.



7
8
9
# File 'lib/metrix/base.rb', line 7

def time
  @time
end

Class Method Details

.ignoreObject



30
31
32
# File 'lib/metrix/base.rb', line 30

def ignore
  @ignore ||= []
end

.ignore_metrics(*metrics) ⇒ Object



10
11
12
# File 'lib/metrix/base.rb', line 10

def ignore_metrics(*metrics)
  @ignore = [metrics].flatten
end

.inherited(clazz) ⇒ Object



14
15
16
# File 'lib/metrix/base.rb', line 14

def inherited(clazz)
  subclasses << clazz
end

.known_metricsObject



38
39
40
# File 'lib/metrix/base.rb', line 38

def known_metrics
  @known_metrics
end

.prefixObject



22
23
24
# File 'lib/metrix/base.rb', line 22

def prefix
  @prefix
end

.set_known_metrics(*metrics) ⇒ Object



34
35
36
# File 'lib/metrix/base.rb', line 34

def set_known_metrics(*metrics)
  @known_metrics = metrics.flatten
end

.set_prefix(prefix) ⇒ Object



18
19
20
# File 'lib/metrix/base.rb', line 18

def set_prefix(prefix)
  @prefix = prefix
end

.subclassesObject



26
27
28
# File 'lib/metrix/base.rb', line 26

def subclasses
  @subclasses ||= []
end

Instance Method Details

#cast_int(value) ⇒ Object



74
75
76
# File 'lib/metrix/base.rb', line 74

def cast_int(value)
  value.to_i if value
end

#ignore_metric?(metric) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/metrix/base.rb', line 66

def ignore_metric?(metric)
  self.class.ignore.include?(metric)
end

#metricsObject



48
49
50
51
52
# File 'lib/metrix/base.rb', line 48

def metrics
  unfiltered_metrics.reject { |k, v| ignore_metric?(k) }.map do |k, v|
    Metric.new("#{prefix}.#{k}", v, @time, tags)
  end + tagged_metrics
end

#prefixObject



58
59
60
# File 'lib/metrix/base.rb', line 58

def prefix
  self.class.prefix
end

#tagged_metricsObject



54
55
56
# File 'lib/metrix/base.rb', line 54

def tagged_metrics
  []
end

#tagsObject



62
63
64
# File 'lib/metrix/base.rb', line 62

def tags
  {}
end

#unfiltered_metricsObject



70
71
72
# File 'lib/metrix/base.rb', line 70

def unfiltered_metrics
  extract(attributes)
end