prometheus-config-builder 0.0.40 → 0.0.42
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f24f728c3588f20881943ddc565d4ffd3c59e5773f707438b334f53f7c7c153
|
4
|
+
data.tar.gz: adba59f9d0c76f21c2f24adfe5b6bfcd70910626efbf72a0a25d26a27179847c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37cdc8c31df3dab1e7539c0b4998df7f49a481479c20f06dffecb9fb3d3bf129b34eb8180bba711dbd384c85d8d522cda719c3e7887d4550fcf8e7f40a2b7246
|
7
|
+
data.tar.gz: 577987e98216ea21770683000a3b7cc8943831a8fee83dd7cfe8d20792ba5376d18265f0af0e7b3d5d80a20b14c64bbb31c96db4c7d4eb0127837129255db8c8
|
@@ -19,9 +19,11 @@ require 'prometheus-config-builder'
|
|
19
19
|
|
20
20
|
config = {}
|
21
21
|
config[:paths] ||= []
|
22
|
+
config[:bucket_region] ||= ''
|
22
23
|
config[:root] ||= 'test/data'
|
23
24
|
config[:every] = 60
|
24
25
|
config[:pgrep] = nil
|
26
|
+
config[:sync] = false
|
25
27
|
|
26
28
|
# Defaults
|
27
29
|
op = OptionParser.new do |o|
|
@@ -35,6 +37,9 @@ op = OptionParser.new do |o|
|
|
35
37
|
o.on('--path=[PATH]', 'Directory or S3 location for individual config yaml files. Can be set multiple times') do |arg|
|
36
38
|
config[:paths] << arg
|
37
39
|
end
|
40
|
+
o.on('--bucket_region=[BUCKET_REGION]', 'Ther region where the s3 bucket exists') do |arg|
|
41
|
+
config[:bucket_region] << arg
|
42
|
+
end
|
38
43
|
o.on('--http PORT', Integer,
|
39
44
|
'Port to listen on for http for Prometheus /metrics api') do |port|
|
40
45
|
abort 'Invalid port' if port < 1 || port > 65535
|
@@ -46,6 +51,9 @@ op = OptionParser.new do |o|
|
|
46
51
|
o.on('--every=[seconds]', 'Rerun every n seconds') do |seconds|
|
47
52
|
config[:every] = seconds.to_i
|
48
53
|
end
|
54
|
+
o.on('--sync', 'Write configuration once, then exit') do
|
55
|
+
config[:sync] = true
|
56
|
+
end
|
49
57
|
o.on('--pgrep=[string]', 'pgrep -f [string] for finding Prometheus process for SIGHUP') do |str|
|
50
58
|
config[:pgrep] = str
|
51
59
|
end
|
@@ -103,7 +111,18 @@ config[:paths].each do |path|
|
|
103
111
|
log.info("Adding path #{path} to config discovery list")
|
104
112
|
builder.add_path(path)
|
105
113
|
end
|
114
|
+
builder.add_bucket_region(config[:bucket_region])
|
106
115
|
|
116
|
+
if config[:sync] == true
|
117
|
+
begin
|
118
|
+
builder.write_out
|
119
|
+
rescue Exception => e
|
120
|
+
log.warn("Error while building config: #{e}")
|
121
|
+
puts e.backtrace
|
122
|
+
exit(1)
|
123
|
+
end
|
124
|
+
exit(0)
|
125
|
+
end
|
107
126
|
|
108
127
|
loop do
|
109
128
|
starting = Time.now
|
@@ -108,7 +108,7 @@ module PrometheusConfigBuilder
|
|
108
108
|
|
109
109
|
class ConfigDiscover
|
110
110
|
include PrometheusConfigBuilderLogger
|
111
|
-
def discover(glob)
|
111
|
+
def discover(glob, bucket_region)
|
112
112
|
|
113
113
|
files = []
|
114
114
|
if m = glob.match(/s3:\/\/([^\/]+)\/(.*)/)
|
@@ -118,9 +118,15 @@ module PrometheusConfigBuilder
|
|
118
118
|
x = $VERBOSE
|
119
119
|
$VERBOSE = nil
|
120
120
|
require 'aws-sdk'
|
121
|
-
s3 =
|
121
|
+
s3 = nil
|
122
|
+
if !bucket_region.empty?
|
123
|
+
logger.debug("bucket_region set as >#{bucket_region}<")
|
124
|
+
s3 = Aws::S3::Client.new(region: bucket_region)
|
125
|
+
else
|
126
|
+
s3 = Aws::S3::Client.new
|
127
|
+
end
|
122
128
|
$VERBOSE = x
|
123
|
-
|
129
|
+
|
124
130
|
resp = s3.list_objects_v2({
|
125
131
|
bucket: bucket_name,
|
126
132
|
prefix: prefix
|
@@ -260,6 +266,7 @@ module PrometheusConfigBuilder
|
|
260
266
|
|
261
267
|
@discoverer = ConfigDiscover.new
|
262
268
|
@paths = []
|
269
|
+
@bucket_region = ""
|
263
270
|
@last_hash = ""
|
264
271
|
|
265
272
|
@@config_files = PrometheusExporter::Client.default.register(:gauge, "prometheusconfigbuilder_config_files", "Number of found config files")
|
@@ -270,12 +277,17 @@ module PrometheusConfigBuilder
|
|
270
277
|
@paths << path
|
271
278
|
end
|
272
279
|
|
280
|
+
def add_bucket_region(bucket_region)
|
281
|
+
@bucket_region << bucket_region
|
282
|
+
end
|
283
|
+
|
273
284
|
def write_out
|
274
285
|
hash = ""
|
275
286
|
cfs = ConfigFiles.new(@prometheus_src)
|
287
|
+
bucket_region = @bucket_region
|
276
288
|
files = []
|
277
289
|
@paths.each do |path|
|
278
|
-
found_files = @discoverer.discover(path)
|
290
|
+
found_files = @discoverer.discover(path, bucket_region)
|
279
291
|
logger.info("Found #{found_files.length} files from path #{path}")
|
280
292
|
files.push(*found_files)
|
281
293
|
end
|
data/test/configdiscovery.rb
CHANGED
@@ -90,7 +90,7 @@ class ConfigDiscoveryTest < Minitest::Test
|
|
90
90
|
def test_discover_config_files
|
91
91
|
x = PrometheusConfigBuilder::ConfigDiscover.new
|
92
92
|
|
93
|
-
files = x.discover("./test/data/test*.yaml")
|
93
|
+
files = x.discover("./test/data/test*.yaml", "")
|
94
94
|
assert_equal 2, files.length
|
95
95
|
|
96
96
|
end
|
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.42
|
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:
|
11
|
+
date: 2025-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|