Class: Metrix::Nginx

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

Instance Attribute Summary

Attributes inherited from Base

#attributes, #time

Instance Method Summary collapse

Methods inherited from Base

#cast_int, ignore, #ignore_metric?, ignore_metrics, inherited, known_metrics, #metrics, prefix, #prefix, set_known_metrics, set_prefix, subclasses, #tagged_metrics, #tags, #unfiltered_metrics

Constructor Details

#initialize(data) ⇒ Nginx

Returns a new instance of Nginx.



8
9
10
11
# File 'lib/metrix/nginx.rb', line 8

def initialize(data)
  @data = data
  @time = Time.now
end

Instance Method Details

#active_connectionsObject



13
14
15
# File 'lib/metrix/nginx.rb', line 13

def active_connections
  cast_int(@data[/Active connections: (\d+)/, 1])
end

#extract(data = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/metrix/nginx.rb', line 23

def extract(data = nil)
  {
    accepts: accepts,
    handled: handled,
    requests: requests,
    active_connections: active_connections,
    reading: reading,
    writing: writing,
    waiting: waiting,
  }
end

#numbersObject



47
48
49
50
51
52
53
# File 'lib/metrix/nginx.rb', line 47

def numbers
  @numbers ||= if @data.match(/server.*\n\s*(\d+) (\d+) (\d+)/)
    @numbers = { accepts: cast_int($1), handled: cast_int($2), requests: cast_int($3) }
  else
    {}
  end
end

#readingObject



35
36
37
# File 'lib/metrix/nginx.rb', line 35

def reading
  cast_int(@data[/Reading: (\d+)/, 1])
end

#waitingObject



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

def waiting
  cast_int(@data[/Waiting: (\d+)/, 1])
end

#writingObject



39
40
41
# File 'lib/metrix/nginx.rb', line 39

def writing
  cast_int(@data[/Writing: (\d+)/, 1])
end