From 3c15d2bb0a9506e8ff9ffd89d679f78d8c51b195 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 28 Sep 2021 18:28:17 +0100 Subject: [PATCH] Publish site uplink interface name as a prometheus metric --- cookbooks/prometheus/attributes/default.rb | 1 + cookbooks/prometheus/templates/default/chef.prom.erb | 5 +++++ roles/fafnir.rb | 6 ++++++ roles/ironbelly.rb | 6 ++++++ 4 files changed, 18 insertions(+) diff --git a/cookbooks/prometheus/attributes/default.rb b/cookbooks/prometheus/attributes/default.rb index 0200e1ca1..dba44a6b1 100644 --- a/cookbooks/prometheus/attributes/default.rb +++ b/cookbooks/prometheus/attributes/default.rb @@ -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"] diff --git a/cookbooks/prometheus/templates/default/chef.prom.erb b/cookbooks/prometheus/templates/default/chef.prom.erb index 13b753ef1..a7d4d9ff6 100644 --- a/cookbooks/prometheus/templates/default/chef.prom.erb +++ b/cookbooks/prometheus/templates/default/chef.prom.erb @@ -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 -%> diff --git a/roles/fafnir.rb b/roles/fafnir.rb index cf6d88c53..648b7acd4 100644 --- a/roles/fafnir.rb +++ b/roles/fafnir.rb @@ -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" } + } } } ) diff --git a/roles/ironbelly.rb b/roles/ironbelly.rb index 362ac19a3..d19422dec 100644 --- a/roles/ironbelly.rb +++ b/roles/ironbelly.rb @@ -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 => { -- 2.45.1