]> git.openstreetmap.org Git - chef.git/commitdiff
Publish site uplink interface name as a prometheus metric
authorTom Hughes <tom@compton.nu>
Tue, 28 Sep 2021 17:28:17 +0000 (18:28 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 28 Sep 2021 17:57:47 +0000 (18:57 +0100)
cookbooks/prometheus/attributes/default.rb
cookbooks/prometheus/templates/default/chef.prom.erb
roles/fafnir.rb
roles/ironbelly.rb

index 0200e1ca199400eb1d98ad7d4d8cdac467c7119c..dba44a6b13ff739d98e54911b95d3554134fae64 100644 (file)
@@ -1,6 +1,7 @@
 default[:prometheus][:addresses] = {}
 default[:prometheus][:exporters] = {}
 default[:prometheus][:snmp] = {}
+default[:prometheus][:metrics] = {}
 
 if node[:recipes].include?("prometheus::server")
   default[:apt][:sources] |= ["grafana"]
index 13b753ef16491018e478d120f864ce5e14847e30..a7d4d9ff6a0bce124640ebcc703ac59964a8551f 100644 (file)
@@ -13,3 +13,8 @@ chef_role{name="<%= role %>"} 1
 # TYPE chef_tile_parent gauge
 chef_tile_parent{name="<%= node[:tilecache][:tile_parent].split(".").first %>"} 1
 <% end -%>
+<% node[:prometheus][:metrics].sort.each do |name, details| -%>
+# HELP <%= name %> <%= details[:help] %>
+# TYPE <%= name %> gauge
+<%= name %>{<%= details[:labels].map { |k,v| "#{k}=\"#{v}\"" }.join(",") %>} 1
+<% end -%>
index cf6d88c5396cee42b8857352abff9334b3404aac..648b7acd4397d04447970e7f8f5c7408211ee24d 100644 (file)
@@ -42,6 +42,12 @@ default_attributes(
       "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" } }
+    },
+    :metrics => {
+      :uplink_interface => {
+        :help => "Site uplink interface name",
+        :labels => { :site => "dublin", :name => "ae50" }
+      }
     }
   }
 )
index 362ac19a3db023f5fc616c607841e026be90a2a8..d19422decac12d23989a466cd7cb2317872e5d81 100644 (file)
@@ -63,6 +63,12 @@ default_attributes(
       "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" } }
+    },
+    :metrics => {
+      :uplink_interface => {
+        :help => "Site uplink interface name",
+        :labels => { :site => "amsterdam", :name => "te1/0/1" }
+      }
     }
   },
   :rsyncd => {