diff --git a/site-cookbooks/kosmos_prometheus/attributes/default.rb b/site-cookbooks/kosmos_prometheus/attributes/default.rb index fe721a8..8c73879 100644 --- a/site-cookbooks/kosmos_prometheus/attributes/default.rb +++ b/site-cookbooks/kosmos_prometheus/attributes/default.rb @@ -13,7 +13,7 @@ node.default["kosmos_prometheus"]["global"] = { } node.default["kosmos_prometheus"]["jobs"] = { - "prometheus" => { "targets" => ["localhost:9090"] } + "prometheus" => { "targets" => ["localhost:9090"] }, } node.default["kosmos_prometheus"]["rule_files"] = [] diff --git a/site-cookbooks/kosmos_prometheus/recipes/server.rb b/site-cookbooks/kosmos_prometheus/recipes/server.rb index fea18f0..38b24d6 100644 --- a/site-cookbooks/kosmos_prometheus/recipes/server.rb +++ b/site-cookbooks/kosmos_prometheus/recipes/server.rb @@ -62,6 +62,15 @@ file "/usr/local/bin/prometheus" do notifies :restart, "service[prometheus]", :delayed end +node_targets = search(:node, "role:base").map { |n| n["knife_zero"]["host"] } + .compact + .sort_by { |ip| ip.split(".").map(&:to_i) } + .map { |ip| "#{ip}:9100" } + +jobs = node["kosmos_prometheus"]["jobs"].merge( + "node" => { "targets" => node_targets } +) + template "/etc/prometheus/prometheus.yml" do source "prometheus.yml.erb" owner "root" @@ -69,7 +78,7 @@ template "/etc/prometheus/prometheus.yml" do mode "0644" variables( global_config: node["kosmos_prometheus"]["global"], - jobs: node["kosmos_prometheus"]["jobs"], + jobs: jobs, rule_files: node["kosmos_prometheus"]["rule_files"] ) notifies :reload, "service[prometheus]", :delayed