metrix 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: