]> git.openstreetmap.org Git - chef.git/commitdiff
Allow multiple instances of exporters
authorTom Hughes <tom@compton.nu>
Wed, 18 Nov 2020 19:07:49 +0000 (19:07 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 18 Nov 2020 19:08:25 +0000 (19:08 +0000)
cookbooks/prometheus/recipes/server.rb
cookbooks/prometheus/resources/exporter.rb

index 8da6fd263ef0d6d0f908520fdf54263a20e1a2e0..f3ff4d9ca636be1e597cca271a62f87bb35d3d0a 100644 (file)
@@ -44,12 +44,17 @@ search(:node, "recipes:prometheus\\:\\:default").sort_by(&:name).each do |client
     }
   end
 
-  client[:prometheus][:exporters].each do |name, addresses|
-    jobs[name] ||= []
-
-    Array(addresses).each do |address|
-      jobs[name] << { :address => address, :name => client.name }
+  client[:prometheus][:exporters].each do |key, exporter|
+    if exporter.is_a?(Hash)
+      name = exporter[:name]
+      address = exporter[:address]
+    else
+      name = key
+      address = exporter
     end
+
+    jobs[name] ||= []
+    jobs[name] << { :address => address, :name => client.name }
   end
 end
 
index 826c1c1f71cd4ea359c0ce8f36040b4cd920d5fe..69cb80e142497d82f926615a9f154653cd2b2b6a 100644 (file)
@@ -56,7 +56,9 @@ action :create do
     only_if { node[:prometheus][:mode] == "external" }
   end
 
-  node.default[:prometheus][:exporters][new_resource.exporter] = listen_address
+  node.default[:prometheus][:exporters][new_resource.port] = {
+    :name => new_resource.exporter, :address => listen_address
+  }
 end
 
 action :delete do