postgresql_user "prometheus" do
cluster database_cluster
- createrole true
+ superuser true
end
postgresql_database "promscale" do
owner "prometheus"
end
-postgresql_extension "timescaledb" do
- cluster database_cluster
- database "promscale"
-end
-
directory "/opt/promscale" do
owner "root"
group "root"
subscribes :restart, "systemd_service[promscale]"
end
-postgresql_extension "promscale" do
- cluster database_cluster
- database "promscale"
- notifies :restart, "service[promscale]"
-end
-
systemd_service "promscale-maintenance" do
description "Promscale Maintenace"
type "simple"
action [:enable, :start]
end
-jobs = {}
-
search(:node, "roles:gateway") do |gateway|
allowed_ips = gateway.interfaces(:role => :internal).map do |interface|
"#{interface[:network]}/#{interface[:prefix]}"
}
end
+jobs = {}
+
search(:node, "recipes:prometheus\\:\\:default").sort_by(&:name).each do |client|
if client[:prometheus][:mode] == "wireguard"
node.default[:networking][:wireguard][:peers] << {
end
end
+certificates = search(:node, "letsencrypt:certificates").each_with_object({}) do |n, c|
+ n[:letsencrypt][:certificates].each do |name, details|
+ c[name] ||= details.merge(:nodes => [])
+
+ c[name][:nodes] << {
+ :name => n[:fqdn],
+ :address => n.external_ipaddress || n.internal_ipaddress
+ }
+ end
+end
+
+template "/etc/prometheus/ssl.yml" do
+ source "ssl.yml.erb"
+ owner "root"
+ group "root"
+ mode "644"
+ variables :certificates => certificates
+end
+
+prometheus_exporter "ssl" do
+ address "127.0.0.1"
+ port 9219
+ options "--config.file=/etc/prometheus/ssl.yml"
+ register_target false
+end
+
template "/etc/default/prometheus" do
source "default.prometheus.erb"
owner "root"
owner "root"
group "root"
mode "644"
- variables :jobs => jobs
+ variables :jobs => jobs, :certificates => certificates
end
template "/etc/prometheus/alert_rules.yml" do