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: db9d70c9130bb149fa99797f998e4b828da28cbc15fba570cdd5d8730d59548b
4
- data.tar.gz: 6e9bc7caeee2dd2bc3f5f389094c55473c6c2c4df67652a10d1663035d8a2b1d
3
+ metadata.gz: 7f24f728c3588f20881943ddc565d4ffd3c59e5773f707438b334f53f7c7c153
4
+ data.tar.gz: adba59f9d0c76f21c2f24adfe5b6bfcd70910626efbf72a0a25d26a27179847c
5
5
  SHA512:
6
- metadata.gz: ed72434fddba4e8b45dd5053d46b019658942f995acdd12c0e9b6d5c7e3bbf8e0e2bc3e97c5dd1e7913d9e05005a2c468057dfdce68b3e4c50c89562b39becb8
7
- data.tar.gz: c699d9be7b7a777f24453297368d5225380e6c499b5e32102a243afca2eac8bc395fe1f41d3202237f071c6a3d8d10b421ff82b558e99e084dbb5566c2a57b27
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 = Aws::S3::Client.new
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
- key = []
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
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'prometheus-config-builder'
6
- s.version = '0.0.40'
6
+ s.version = '0.0.42'
7
7
  s.date = Time.now
8
8
 
9
9
  s.summary = %q{Template based config generation}
@@ -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.40
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: 2023-11-07 00:00:00.000000000 Z
11
+ date: 2025-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk