prometheus-config-builder 0.0.13 → 0.0.19
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: bfa7f8b751a05fb855f1b09da6903620025d56cb
|
4
|
+
data.tar.gz: 6500d5cc5e0afa9ba17d9fafc629efa095214db4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88f680b791fe6aa290e11fd23512ef5e2808728d26989cadb4c6de8131fbffe4e5f552e78ecc1cdb6b2476a44c43762c5e517fb8b4e112c9bb0622bcd1a1d0a1
|
7
|
+
data.tar.gz: 753b906d6d578f68020a4d83deb8e7c9d21c6f05e5f2766eedf185b8739a8480744e7be35f1bbaf364f4caf3e2b133b0382915b1626414565166fb6ff3a9632f
|
@@ -39,7 +39,7 @@ op = OptionParser.new do |o|
|
|
39
39
|
config[:verbose] = true
|
40
40
|
end
|
41
41
|
o.on('--every=[seconds]', 'Rerun every n seconds') do |seconds|
|
42
|
-
config[:every] = seconds
|
42
|
+
config[:every] = seconds.to_i
|
43
43
|
end
|
44
44
|
o.on('--pgrep=[string]', 'pgrep -f [string] for finding Prometheus process for SIGHUP') do |str|
|
45
45
|
config[:pgrep] = str
|
@@ -52,7 +52,7 @@ if config[:verbose]
|
|
52
52
|
end
|
53
53
|
|
54
54
|
abort "You need to set --prometheus-src" if !config[:prometheus_src]
|
55
|
-
abort "You need to set --
|
55
|
+
abort "You need to set --dst-dir" if !config[:dst_dir]
|
56
56
|
|
57
57
|
log = Logger.new(STDOUT)
|
58
58
|
log.level = config[:verbose] ? Logger::DEBUG : Logger::INFO
|
@@ -75,12 +75,14 @@ something_changed_count = PrometheusExporter::Client.default.register(:counter,
|
|
75
75
|
error_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_errors_count", "Number of exceptions during evaluation.")
|
76
76
|
iteration_count = PrometheusExporter::Client.default.register(:counter, "prometheusconfigbuilder_iteration_count", "Number of times configuration has changed.")
|
77
77
|
iteration_duration = PrometheusExporter::Client.default.register(:gauge, "prometheusconfigbuilder_last_iteration_duration", "Duration (in seconds) of the last full config iteration")
|
78
|
+
config_has_errors = PrometheusExporter::Client.default.register(:gauge, "prometheusconfigbuilder_config_has_errors", "This value is 0 if the config has no errors.")
|
78
79
|
|
79
80
|
error_count.observe(0)
|
80
81
|
|
81
82
|
builder = PrometheusConfigBuilder::Builder.new(config[:prometheus_src], config[:dst_dir])
|
82
83
|
|
83
84
|
config[:paths].each do |path|
|
85
|
+
log.info("Adding path #{path} to config discovery list")
|
84
86
|
builder.add_path(path)
|
85
87
|
end
|
86
88
|
|
@@ -89,7 +91,9 @@ loop do
|
|
89
91
|
starting = Time.now
|
90
92
|
begin
|
91
93
|
something_changed = builder.write_out()
|
94
|
+
config_has_errors.set(0)
|
92
95
|
rescue Exception => e
|
96
|
+
config_has_errors.set(1)
|
93
97
|
log.warn("Error while building config: #{e}")
|
94
98
|
puts e.backtrace
|
95
99
|
error_count.increment
|
@@ -101,12 +105,23 @@ loop do
|
|
101
105
|
iteration_count.increment
|
102
106
|
|
103
107
|
# Send a SIGHUP signal to Prometheus so that it knows to reload config files
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
108
|
+
begin
|
109
|
+
if something_changed && config[:pgrep] != nil
|
110
|
+
matches = `pgrep -a -f "#{config[:pgrep]}"`.split("\n")
|
111
|
+
match = matches.select {|e| !e.include?("prometheus-config-builder")}
|
112
|
+
if !match
|
113
|
+
log.warn("Unable to find Prometheus instance to send SIGHUP for. Matches object: #{matches}")
|
114
|
+
else
|
115
|
+
pid = match.first.split(" ").first.to_i
|
116
|
+
if pid
|
117
|
+
log.info("Sending SIGHUP signal to Prometheus at pid #{pid}.")
|
118
|
+
Process.kill "HUP", pid
|
119
|
+
end
|
120
|
+
end
|
109
121
|
end
|
122
|
+
rescue Exception => e
|
123
|
+
log.warn("Unable to send SIGHUP signal to Prometheus: #{e}")
|
124
|
+
puts e.backtrace
|
110
125
|
end
|
111
126
|
|
112
127
|
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.19
|
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
|