prometheus-config-builder 0.0.12 → 0.0.17
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 118617063dde0e331c4daa50346cd14d6d4b2a9e
|
4
|
+
data.tar.gz: 3117b906a6c14141acb26b9bc1d1a5d2e57852e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb9cd3a884df86eb1ff0946f3b7761653a1ebb523fc2704d4594096a2661b9f2417e96366e20c581b045deaf24daeee7a7c8bc5c2383dc402d889c9662f833c4
|
7
|
+
data.tar.gz: ac0d13daee07147c78cf29119097632dcb6461acb385b5fc12b3add3a7a86eed3df7897c48429c1a530fbb1bfb822612cfd77b7e392f54208cebaf7697846d88
|
@@ -18,17 +18,6 @@ config[:root] ||= 'test/data'
|
|
18
18
|
config[:every] = 60
|
19
19
|
config[:pgrep] = nil
|
20
20
|
|
21
|
-
server = PrometheusExporter::Server::WebServer.new port: 12345
|
22
|
-
PrometheusExporter::Client.default = PrometheusExporter::LocalClient.new(collector: server.collector)
|
23
|
-
server.start
|
24
|
-
|
25
|
-
something_changed_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_changes_count", "Number of times configuration has changed.")
|
26
|
-
error_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_errors_count", "Number of exceptions during evaluation.")
|
27
|
-
iteration_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_iteration_count", "Number of times configuration has changed.")
|
28
|
-
iteration_duration = PrometheusExporter::Client.default.register(:gauge, "prometheusconfigbuilder_last_iteration_duration", "Duration (in seconds) of the last full config iteration")
|
29
|
-
|
30
|
-
error_count.observe(0)
|
31
|
-
|
32
21
|
# Defaults
|
33
22
|
op = OptionParser.new do |o|
|
34
23
|
o.banner = "Usage: #{$PROGRAM_NAME} [OPTIONS]"
|
@@ -50,7 +39,7 @@ op = OptionParser.new do |o|
|
|
50
39
|
config[:verbose] = true
|
51
40
|
end
|
52
41
|
o.on('--every=[seconds]', 'Rerun every n seconds') do |seconds|
|
53
|
-
config[:every] = seconds
|
42
|
+
config[:every] = seconds.to_i
|
54
43
|
end
|
55
44
|
o.on('--pgrep=[string]', 'pgrep -f [string] for finding Prometheus process for SIGHUP') do |str|
|
56
45
|
config[:pgrep] = str
|
@@ -63,7 +52,7 @@ if config[:verbose]
|
|
63
52
|
end
|
64
53
|
|
65
54
|
abort "You need to set --prometheus-src" if !config[:prometheus_src]
|
66
|
-
abort "You need to set --
|
55
|
+
abort "You need to set --dst-dir" if !config[:dst_dir]
|
67
56
|
|
68
57
|
log = Logger.new(STDOUT)
|
69
58
|
log.level = config[:verbose] ? Logger::DEBUG : Logger::INFO
|
@@ -78,9 +67,21 @@ if !File.exist?(config[:dst_dir])
|
|
78
67
|
exit!(1)
|
79
68
|
end
|
80
69
|
|
70
|
+
server = PrometheusExporter::Server::WebServer.new port: 12345
|
71
|
+
PrometheusExporter::Client.default = PrometheusExporter::LocalClient.new(collector: server.collector)
|
72
|
+
server.start
|
73
|
+
|
74
|
+
something_changed_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_changes_count", "Number of times configuration has changed.")
|
75
|
+
error_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_errors_count", "Number of exceptions during evaluation.")
|
76
|
+
iteration_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_iteration_count", "Number of times configuration has changed.")
|
77
|
+
iteration_duration = PrometheusExporter::Client.default.register(:gauge, "prometheusconfigbuilder_last_iteration_duration", "Duration (in seconds) of the last full config iteration")
|
78
|
+
|
79
|
+
error_count.observe(0)
|
80
|
+
|
81
81
|
builder = PrometheusConfigBuilder::Builder.new(config[:prometheus_src], config[:dst_dir])
|
82
82
|
|
83
83
|
config[:paths].each do |path|
|
84
|
+
log.info("Adding path #{path} to config discovery list")
|
84
85
|
builder.add_path(path)
|
85
86
|
end
|
86
87
|
|
@@ -91,7 +92,9 @@ loop do
|
|
91
92
|
something_changed = builder.write_out()
|
92
93
|
rescue Exception => e
|
93
94
|
log.warn("Error while building config: #{e}")
|
95
|
+
puts e.backtrace
|
94
96
|
error_count.increment
|
97
|
+
sleep(config[:every])
|
95
98
|
next
|
96
99
|
end
|
97
100
|
|
@@ -99,12 +102,23 @@ loop do
|
|
99
102
|
iteration_count.increment
|
100
103
|
|
101
104
|
# Send a SIGHUP signal to Prometheus so that it knows to reload config files
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
105
|
+
begin
|
106
|
+
if something_changed && config[:pgrep] != nil
|
107
|
+
matches = `pgrep -a -f "#{config[:pgrep]}"`.split("\n")
|
108
|
+
match = matches.select {|e| !e.include?("prometheus-config-builder")}
|
109
|
+
if !match
|
110
|
+
log.warn("Unable to find Prometheus instance to send SIGHUP for. Matches object: #{matches}"
|
111
|
+
else
|
112
|
+
pid = match.first.split(" ").first.to_i
|
113
|
+
if pid
|
114
|
+
log.info("Sending SIGHUP signal to Prometheus at pid #{pid}.")
|
115
|
+
Process.kill "HUP", pid
|
116
|
+
end
|
117
|
+
end
|
107
118
|
end
|
119
|
+
rescue Exception => e
|
120
|
+
log.warn("Unable to send SIGHUP signal to Prometheus: #{e}")
|
121
|
+
puts e.backtrace
|
108
122
|
end
|
109
123
|
|
110
124
|
log.info("Sleeping for #{config[:every]} second and starting then again.")
|
@@ -217,7 +217,7 @@ module PrometheusConfigBuilder
|
|
217
217
|
files = []
|
218
218
|
@paths.each do |path|
|
219
219
|
found_files = @discoverer.discover(path)
|
220
|
-
logger.info("Found #{
|
220
|
+
logger.info("Found #{found_files.length} files from path #{path}")
|
221
221
|
files.push(*found_files)
|
222
222
|
end
|
223
223
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prometheus-config-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juho Mäkinen juho.makinen@gmail.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.5.2
|
140
|
+
rubygems_version: 2.5.2.3
|
141
141
|
signing_key:
|
142
142
|
specification_version: 4
|
143
143
|
summary: Template based config generation
|