metrix 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/metrix/cli.rb +52 -12
  2. data/lib/metrix/version.rb +1 -1
  3. metadata +1 -1
data/lib/metrix/cli.rb CHANGED
@@ -31,17 +31,38 @@ module Metrix
31
31
  begin
32
32
  cnt += 1
33
33
  now = Time.now.utc
34
- reporter << Metrix::ElasticSearch.new(elastic_search_status) if elastic_search?
35
- reporter << Metrix::Mongodb.new(mongodb_status) if mongodb?
36
- reporter << Metrix::Nginx.new(nginx_status) if nginx?
34
+ if elastic_search?
35
+ fetch_metrix :elastic_search do
36
+ reporter << Metrix::ElasticSearch.new(elastic_search_status)
37
+ end
38
+ end
39
+
40
+ if mongodb?
41
+ fetch_metrix :mongodb do
42
+ reporter << Metrix::Mongodb.new(mongodb_status)
43
+ end
44
+ end
45
+
46
+ if nginx?
47
+ fetch_metrix :nginx do
48
+ reporter << Metrix::Nginx.new(nginx_status)
49
+ end
50
+ end
51
+
37
52
  if system?
38
- reporter << Metrix::System.new(File.read("/proc/stat"))
39
- reporter << Metrix::Load.new(File.read("/proc/loadavg"))
53
+ fetch_metrix :system do
54
+ reporter << Metrix::System.new(File.read("/proc/stat"))
55
+ end
56
+ fetch_metrix :load do
57
+ reporter << Metrix::Load.new(File.read("/proc/loadavg"))
58
+ end
40
59
  end
41
60
 
42
61
  if processes?
43
- Metrix::Process.all.each do |m|
44
- reporter << m
62
+ fetch_metrix :processes do
63
+ Metrix::Process.all.each do |m|
64
+ reporter << m
65
+ end
45
66
  end
46
67
  end
47
68
  reporter.flush
@@ -83,18 +104,37 @@ module Metrix
83
104
  end
84
105
 
85
106
  def elastic_search_status
86
- Metrix.logger.info "fetching elasticsearch metrix"
87
- Net::HTTP.get(URI("http://127.0.0.1:9200/_status"))
107
+ get_url "http://127.0.0.1:9200/_status"
88
108
  end
89
109
 
90
110
  def mongodb_status
91
- Metrix.logger.info "fetching mongodb metrix"
92
- Net::HTTP.get(URI("http://127.0.0.1:28017/serverStatus"))
111
+ get_url "http://127.0.0.1:28017/serverStatus"
93
112
  end
94
113
 
95
114
  def nginx_status
96
115
  Metrix.logger.info "fetching mongodb metrix"
97
- Net::HTTP.get(URI("http://127.0.0.1:8000/"))
116
+ get_url "http://127.0.0.1:8000/"
117
+ end
118
+
119
+ def get_url(url)
120
+ logger.info "fetching URL #{url}"
121
+ started = Time.now
122
+ body = Net::HTTP.get(URI(url))
123
+ logger.info "fetched URL #{url} in %.06f" % [Time.now - started]
124
+ body
125
+ end
126
+
127
+ def fetch_metrix(type)
128
+ started = Time.now
129
+ logger.info "fetching metrix for #{type}"
130
+ yield
131
+ logger.info "fetched metrix for type #{type} in %.06f" % [Time.now - started]
132
+ rescue => err
133
+ logger.error "#{err.message} #{err.backtrace.inspect}"
134
+ end
135
+
136
+ def logger
137
+ Metrix.logger
98
138
  end
99
139
 
100
140
  def system?
@@ -1,3 +1,3 @@
1
1
  module Metrix
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metrix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: