]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/prometheus/templates/default/chef.prom.erb
Report bond mode for bonded interfaces
[chef.git] / cookbooks / prometheus / templates / default / chef.prom.erb
index 4b0df7fbea7a6dd4815e6a33a9c5c4067efb8ef2..58235e3b411ca3bac509a6db78ec45dd78d774f2 100644 (file)
@@ -1,10 +1,19 @@
 # HELP chef_network_interface Information about network interfaces
 # TYPE chef_network_interface gauge
-<% node.interfaces do |interface| -%>
-chef_network_interface{name="<%= interface[:interface] %>",role="<%= interface[:role].to_s %>",family="<%= interface[:family].to_s %>"} 1
+<% node.interfaces.each do |interface| -%>
+<% if interface[:interface] =~ /^bond\d+$/ -%>
+chef_network_interface{name="<%= interface[:interface] %>",role="<%= interface[:role].to_s %>",bond_mode="<%= interface[:bond][:mode] || 'active-backup' %>"} 1
+<% else -%>
+chef_network_interface{name="<%= interface[:interface] %>",role="<%= interface[:role].to_s %>"} 1
+<% end -%>
 <% end -%>
 # HELP chef_role Information about chef roles
 # TYPE chef_role gauge
 <% node[:roles].sort.each do |role| -%>
 chef_role{name="<%= role %>"} 1
 <% end -%>
+<% node[:prometheus][:metrics].sort.each do |name, details| -%>
+# HELP <%= name %> <%= details[:help] %>
+# TYPE <%= name %> gauge
+<%= name %>{<%= Hash(details[:labels]).map { |k,v| "#{k}=\"#{v}\"" }.join(",") %>} <%= details[:metric] || 1 %>
+<% end -%>