]> git.openstreetmap.org Git - chef.git/commitdiff
Allow multiple modules to be monitored for a single SNMP target
authorTom Hughes <tom@compton.nu>
Wed, 20 Jul 2022 16:03:40 +0000 (17:03 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 20 Jul 2022 16:17:04 +0000 (17:17 +0100)
cookbooks/prometheus/recipes/server.rb
cookbooks/prometheus/templates/default/prometheus.yml.erb
roles/fafnir.rb
roles/ironbelly.rb

index fe359b4504010f1847e2d9d1757962748f3428c7..36444527c3eaa60262c78c2f28fc264968da8611 100644 (file)
@@ -217,7 +217,7 @@ search(:node, "recipes:prometheus\\:\\:default").sort_by(&:name).each do |client
     snmp_targets << {
       :instance => instance,
       :target => details[:address],
-      :module => details[:module],
+      :modules => details[:modules],
       :address => client[:prometheus][:addresses]["snmp"],
       :labels => Array(details[:labels])
     }
index 9b24a4d459e5b1b69b51ea9cb0d16747749f9067..bd4113524c45f558067526d19052d47b2ab27ee5 100644 (file)
@@ -85,10 +85,11 @@ scrape_configs:
     scrape_timeout: 2m
     metrics_path: /snmp
     static_configs:
-      - targets:
 <% @snmp_targets.sort_by { |t| t[:instance] }.each do |target| -%>
       - targets:
-          - "<%= target[:target] %>/<%= target[:module] %>/<%= target[:address] %>"
+<% target[:modules].each do |module_name| -%>
+          - "<%= target[:target] %>/<%= module_name %>/<%= target[:address] %>"
+<% end -%>
         labels:
           instance: <%= target[:instance] %>
 <% target[:labels].sort.each do |name, value| -%>
index cbd12fc1c3175ee157c9088d66302506cb9c016e..a6494a66003460a0adeb6d39bef104a0503536f2 100644 (file)
@@ -39,9 +39,9 @@ default_attributes(
   },
   :prometheus => {
     :snmp => {
-      "pdu1" => { :address => "10.0.64.100", :module => "apcups", :labels => { "site" => "dublin" } },
-      "pdu2" => { :address => "10.0.64.101", :module => "apcups", :labels => { "site" => "dublin" } },
-      "switch1" => { :address => "184.104.226.97", :module => "if_mib", :labels => { "site" => "dublin" } }
+      "pdu1" => { :address => "10.0.64.100", :modules => ["apcups"], :labels => { "site" => "dublin" } },
+      "pdu2" => { :address => "10.0.64.101", :modules => ["apcups"], :labels => { "site" => "dublin" } },
+      "switch1" => { :address => "184.104.226.97", :modules => ["if_mib"], :labels => { "site" => "dublin" } }
     },
     :metrics => {
       :uplink_interface => {
index 866664e38da7c713042495edef7d9604f012c493..cc09fd0d0b79347079b96d49a8e650b6f6fc33c5 100644 (file)
@@ -60,9 +60,9 @@ default_attributes(
   },
   :prometheus => {
     :snmp => {
-      "pdu1" => { :address => "10.0.48.100", :module => "apcups", :labels => { "site" => "amsterdam" } },
-      "pdu2" => { :address => "10.0.48.101", :module => "apcups", :labels => { "site" => "amsterdam" } },
-      "switch1" => { :address => "130.117.76.2", :module => "if_mib", :labels => { "site" => "amsterdam" } }
+      "pdu1" => { :address => "10.0.48.100", :modules => ["apcups"], :labels => { "site" => "amsterdam" } },
+      "pdu2" => { :address => "10.0.48.101", :modules => ["apcups"], :labels => { "site" => "amsterdam" } },
+      "switch1" => { :address => "130.117.76.2", :modules => ["if_mib"], :labels => { "site" => "amsterdam" } }
     },
     :metrics => {
       :uplink_interface => {