munin2graphite 0.2.0 → 0.2.1
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.
- checksums.yaml +7 -0
- data/VERSION +1 -1
- data/lib/munin2graphite/scheduler.rb +18 -18
- data/munin2graphite.gemspec +7 -6
- metadata +110 -138
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d873c57c17e3e3796363d858d5b902913af4ec96
|
4
|
+
data.tar.gz: 71145f7b38be43c838f66f4555587e192e90d7d3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1114fffd3b901c5857ed2131a5e58e81413becee053aec98532735e292741e9dc197e97b4bbb98c3f3508ef93f8a8450d911a816b98e3e6c7c95caf9eff27d45
|
7
|
+
data.tar.gz: 988f46825018e83a1ec0a987863b737bca367365d4ee7e7742805a1936bf0e2dcc1eb74fc4974ee4644d785bde78d9bde4eb2d7c6f3f07a4315ee0cc386b4bd3
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
@@ -49,7 +49,7 @@ module Munin2Graphite
|
|
49
49
|
semaphore = Mutex.new
|
50
50
|
threads = []
|
51
51
|
workers.each do |worker|
|
52
|
-
threads << Thread.new do
|
52
|
+
threads << Thread.new do
|
53
53
|
current_config = {}
|
54
54
|
config = @config.config_for_worker(worker)
|
55
55
|
begin
|
@@ -58,7 +58,7 @@ module Munin2Graphite
|
|
58
58
|
rescue Exception => e
|
59
59
|
config.log.error("Error when trying to connect to munin-node on #{config["munin_hostname"]}:#{config["munin_port"]}")
|
60
60
|
config.log.error("This node will be skipped")
|
61
|
-
exit
|
61
|
+
Thread.current.exit
|
62
62
|
end
|
63
63
|
current_config[:nodes] = {}
|
64
64
|
semaphore_nodes = Mutex.new
|
@@ -68,7 +68,7 @@ module Munin2Graphite
|
|
68
68
|
munin = Munin::Node.new(config["munin_hostname"],config["munin_port"])
|
69
69
|
metrics = munin.list(node)
|
70
70
|
config.log.info("Config for node #{worker}::#{node}")
|
71
|
-
semaphore_nodes.synchronize do
|
71
|
+
semaphore_nodes.synchronize do
|
72
72
|
current_config[:nodes][node] = { :metrics => {} }
|
73
73
|
end
|
74
74
|
metrics.each do |metric|
|
@@ -80,11 +80,11 @@ module Munin2Graphite
|
|
80
80
|
nodename = config["graphite_name_schema"] == "worker" ? worker : node
|
81
81
|
if raw_config.match("graph_title ")
|
82
82
|
raw_config.gsub!("graph_title ","graph_itle #{nodename} ")
|
83
|
-
else
|
83
|
+
else
|
84
84
|
raw_config << "\ngraph_title #{nodename}"
|
85
85
|
end
|
86
86
|
end
|
87
|
-
semaphore_nodes.synchronize do
|
87
|
+
semaphore_nodes.synchronize do
|
88
88
|
current_config[:nodes][node][:metrics][metric] = {
|
89
89
|
:config => munin.config(metric)[metric],
|
90
90
|
:raw_config => raw_config,
|
@@ -99,7 +99,7 @@ module Munin2Graphite
|
|
99
99
|
end
|
100
100
|
threads_nodes.each { |i| i.join }
|
101
101
|
# @config.log.debug(current_config.inspect)
|
102
|
-
semaphore.synchronize do
|
102
|
+
semaphore.synchronize do
|
103
103
|
@munin_config[worker] = current_config
|
104
104
|
@munin_config[:workers] << worker
|
105
105
|
end
|
@@ -123,7 +123,7 @@ module Munin2Graphite
|
|
123
123
|
config = @config.config_for_worker(worker)
|
124
124
|
config.log.info("Worker #{worker}")
|
125
125
|
metric_base = [config["graphite_user"], config["graphite_prefix"]].reject{|i| i== ""}.compact.join(".")
|
126
|
-
|
126
|
+
|
127
127
|
my_munin_config[worker][:nodes].each do |node,node_info|
|
128
128
|
node_name = metric_base + "." + node.split(".").first
|
129
129
|
config.log.debug("Doing #{node_name}")
|
@@ -152,8 +152,8 @@ module Munin2Graphite
|
|
152
152
|
config.log.info("Done with: #{node} (#{Time.now - metric_time} s)")
|
153
153
|
carbon = @carbon || Carbon.new(config["carbon_hostname"],config["carbon_port"])
|
154
154
|
string_to_send = ""
|
155
|
-
values.each do |metric,results|
|
156
|
-
category = node_info[:metrics][metric][:category]
|
155
|
+
values.each do |metric,results|
|
156
|
+
category = node_info[:metrics][metric][:category]
|
157
157
|
results.each do |k,v|
|
158
158
|
v.each do |c_metric,c_value|
|
159
159
|
name = "#{node_name}.#{category}.#{metric}.#{c_metric}".gsub("-","_")
|
@@ -193,7 +193,7 @@ module Munin2Graphite
|
|
193
193
|
end
|
194
194
|
|
195
195
|
def metric_loop(worker)
|
196
|
-
config = @config.config_for_worker worker
|
196
|
+
config = @config.config_for_worker worker
|
197
197
|
retries = 3
|
198
198
|
begin
|
199
199
|
obtain_metrics(worker)
|
@@ -206,15 +206,15 @@ module Munin2Graphite
|
|
206
206
|
retry unless retries < 0
|
207
207
|
config.log.error("Exitting, exception not solved")
|
208
208
|
exit(1)
|
209
|
-
end
|
209
|
+
end
|
210
210
|
end
|
211
211
|
|
212
212
|
def start1r_metrics
|
213
213
|
@config.log.info("One-run started: metrics")
|
214
|
-
workers.each do |worker|
|
215
|
-
config = @config.config_for_worker worker
|
214
|
+
workers.each do |worker|
|
215
|
+
config = @config.config_for_worker worker
|
216
216
|
metric_loop(worker)
|
217
|
-
end
|
217
|
+
end
|
218
218
|
end
|
219
219
|
|
220
220
|
def start1r_graphs
|
@@ -226,8 +226,8 @@ module Munin2Graphite
|
|
226
226
|
@config.log.info("Scheduler started")
|
227
227
|
obtain_graphs
|
228
228
|
@scheduler = Rufus::Scheduler.start_new
|
229
|
-
workers.each do |worker|
|
230
|
-
config = @config.config_for_worker worker
|
229
|
+
workers.each do |worker|
|
230
|
+
config = @config.config_for_worker worker
|
231
231
|
config.log.info("Scheduling worker #{worker} every #{config["scheduler_metrics_period"]} ")
|
232
232
|
metric_loop(worker)
|
233
233
|
@scheduler.every config["scheduler_metrics_period"] do
|
@@ -235,13 +235,13 @@ module Munin2Graphite
|
|
235
235
|
end
|
236
236
|
|
237
237
|
=begin
|
238
|
-
|
238
|
+
# Graph rereading is disabled by now there are concurrency problems
|
239
239
|
@scheduler.every config["scheduler_graphs_period"] do
|
240
240
|
obtain_graphs
|
241
241
|
end
|
242
242
|
=end
|
243
243
|
|
244
|
-
end
|
244
|
+
end
|
245
245
|
end
|
246
246
|
end
|
247
247
|
end
|
data/munin2graphite.gemspec
CHANGED
@@ -2,17 +2,19 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: munin2graphite 0.2.1 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "munin2graphite"
|
8
|
-
s.version = "0.2.
|
9
|
+
s.version = "0.2.1"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Jose Fernandez (magec)"]
|
12
|
-
s.date = "
|
14
|
+
s.date = "2014-05-19"
|
13
15
|
s.description = "This gem will install as a daemon and can be used to connect to a graphite and a carbon backend. It will not only post the data for the metrics but also create graphs into graphite, by means of a translation from munin-node."
|
14
16
|
s.email = "jfernandezperez@gmail.com"
|
15
|
-
s.executables = ["
|
17
|
+
s.executables = ["munin2gdash", "munin2graphite", "munin2graphite-1r", "munin2graphite-daemon"]
|
16
18
|
s.extra_rdoc_files = [
|
17
19
|
"LICENSE.txt",
|
18
20
|
"README.markdown"
|
@@ -53,12 +55,11 @@ Gem::Specification.new do |s|
|
|
53
55
|
]
|
54
56
|
s.homepage = "http://github.com/magec/munin2graphite"
|
55
57
|
s.licenses = ["MIT"]
|
56
|
-
s.
|
57
|
-
s.rubygems_version = "1.8.24"
|
58
|
+
s.rubygems_version = "2.2.0"
|
58
59
|
s.summary = "Allows to post both data and graphic info from munin to graphite (https://launchpad.net/graphite)"
|
59
60
|
|
60
61
|
if s.respond_to? :specification_version then
|
61
|
-
s.specification_version =
|
62
|
+
s.specification_version = 4
|
62
63
|
|
63
64
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
64
65
|
s.add_runtime_dependency(%q<rufus-scheduler>, ["= 2.0.10"])
|
metadata
CHANGED
@@ -1,145 +1,127 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: munin2graphite
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 0.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Jose Fernandez (magec)
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
|
-
requirements:
|
24
|
-
- - "="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 27
|
27
|
-
segments:
|
28
|
-
- 2
|
29
|
-
- 0
|
30
|
-
- 10
|
31
|
-
version: 2.0.10
|
32
|
-
version_requirements: *id001
|
11
|
+
date: 2014-05-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
33
14
|
name: rufus-scheduler
|
34
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.10
|
35
20
|
type: :runtime
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
|
-
requirements:
|
40
|
-
- - "="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
hash: 27
|
43
|
-
segments:
|
44
|
-
- 1
|
45
|
-
- 1
|
46
|
-
- 4
|
47
|
-
version: 1.1.4
|
48
|
-
version_requirements: *id002
|
49
|
-
name: daemons
|
50
21
|
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.10
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: daemons
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.4
|
51
34
|
type: :runtime
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
|
-
requirements:
|
56
|
-
- - ">="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
hash: 3
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
62
|
-
version_requirements: *id003
|
63
|
-
name: parseconfig
|
64
35
|
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: parseconfig
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
65
48
|
type: :runtime
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
|
-
requirements:
|
70
|
-
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
hash: 21
|
73
|
-
segments:
|
74
|
-
- 0
|
75
|
-
- 2
|
76
|
-
- 1
|
77
|
-
version: 0.2.1
|
78
|
-
version_requirements: *id004
|
79
|
-
name: munin-ruby
|
80
49
|
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: munin-ruby
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.1
|
81
62
|
type: :runtime
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
|
-
requirements:
|
86
|
-
- - ~>
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
hash: 9
|
89
|
-
segments:
|
90
|
-
- 1
|
91
|
-
- 6
|
92
|
-
- 3
|
93
|
-
version: 1.6.3
|
94
|
-
version_requirements: *id005
|
95
|
-
name: json
|
96
63
|
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.2.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.6.3
|
97
76
|
type: :runtime
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
|
-
requirements:
|
102
|
-
- - ~>
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
hash: 63
|
105
|
-
segments:
|
106
|
-
- 1
|
107
|
-
- 8
|
108
|
-
- 4
|
109
|
-
version: 1.8.4
|
110
|
-
version_requirements: *id006
|
111
|
-
name: jeweler
|
112
77
|
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.6.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: jeweler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.8.4
|
113
90
|
type: :development
|
114
|
-
- !ruby/object:Gem::Dependency
|
115
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
116
|
-
none: false
|
117
|
-
requirements:
|
118
|
-
- - ~>
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
hash: 7
|
121
|
-
segments:
|
122
|
-
- 0
|
123
|
-
- 6
|
124
|
-
- 0
|
125
|
-
version: 0.6.0
|
126
|
-
version_requirements: *id007
|
127
|
-
name: yard
|
128
91
|
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.8.4
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: yard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.6.0
|
129
104
|
type: :development
|
130
|
-
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.6.0
|
111
|
+
description: This gem will install as a daemon and can be used to connect to a graphite
|
112
|
+
and a carbon backend. It will not only post the data for the metrics but also create
|
113
|
+
graphs into graphite, by means of a translation from munin-node.
|
131
114
|
email: jfernandezperez@gmail.com
|
132
|
-
executables:
|
133
|
-
- munin2graphite-daemon
|
115
|
+
executables:
|
134
116
|
- munin2gdash
|
135
117
|
- munin2graphite
|
136
118
|
- munin2graphite-1r
|
119
|
+
- munin2graphite-daemon
|
137
120
|
extensions: []
|
138
|
-
|
139
|
-
extra_rdoc_files:
|
121
|
+
extra_rdoc_files:
|
140
122
|
- LICENSE.txt
|
141
123
|
- README.markdown
|
142
|
-
files:
|
124
|
+
files:
|
143
125
|
- Gemfile
|
144
126
|
- LICENSE.txt
|
145
127
|
- README.markdown
|
@@ -173,37 +155,27 @@ files:
|
|
173
155
|
- test/test_my_graph.rb
|
174
156
|
- test/test_scheduler.rb
|
175
157
|
homepage: http://github.com/magec/munin2graphite
|
176
|
-
licenses:
|
158
|
+
licenses:
|
177
159
|
- MIT
|
160
|
+
metadata: {}
|
178
161
|
post_install_message:
|
179
162
|
rdoc_options: []
|
180
|
-
|
181
|
-
require_paths:
|
163
|
+
require_paths:
|
182
164
|
- lib
|
183
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
184
|
-
|
185
|
-
requirements:
|
165
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
186
167
|
- - ">="
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
version: "0"
|
192
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
|
-
requirements:
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
195
172
|
- - ">="
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
|
198
|
-
segments:
|
199
|
-
- 0
|
200
|
-
version: "0"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
201
175
|
requirements: []
|
202
|
-
|
203
176
|
rubyforge_project:
|
204
|
-
rubygems_version:
|
177
|
+
rubygems_version: 2.2.0
|
205
178
|
signing_key:
|
206
|
-
specification_version:
|
179
|
+
specification_version: 4
|
207
180
|
summary: Allows to post both data and graphic info from munin to graphite (https://launchpad.net/graphite)
|
208
181
|
test_files: []
|
209
|
-
|