X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/dab49e324ed9791aa28e09d97b4023a8a398cb06..1415d2444cd7d173ece1adf827199e238240cdb4:/cookbooks/prometheus/templates/default/prometheus.yml.erb diff --git a/cookbooks/prometheus/templates/default/prometheus.yml.erb b/cookbooks/prometheus/templates/default/prometheus.yml.erb index 6e28106cb..02ade7d8e 100644 --- a/cookbooks/prometheus/templates/default/prometheus.yml.erb +++ b/cookbooks/prometheus/templates/default/prometheus.yml.erb @@ -31,11 +31,13 @@ scrape_configs: scrape_interval: 15m metrics_path: /probe static_configs: - - targets: <% @certificates.values.sort_by { |c| c[:domains].first }.each do |certificate| -%> + - targets: <% certificate[:nodes].sort_by { |h| h[:name] }.each do |host| -%> - <%= certificate[:domains].first %>/<%= host[:name] %>:443 <% end -%> + labels: + domain: <%= certificate[:domains].first %> <% end -%> relabel_configs: - source_labels: [__address__] @@ -51,12 +53,28 @@ scrape_configs: replacement: 127.0.0.1:9219 <% @jobs.sort.each do |name, targets| -%> - job_name: <%= name %> +<% if targets.first[:scrape_interval] -%> + scrape_interval: <%= targets.first[:scrape_interval] %> +<% end -%> +<% if targets.first[:scrape_timeout] -%> + scrape_timeout: <%= targets.first[:scrape_timeout] %> +<% end -%> +<% if targets.first[:sni] -%> + tls_config: + server_name: <%= targets.first[:sni] %> + relabel_configs: + - target_label: __scheme__ + replacement: https +<% end -%> static_configs: <% targets.each do |target| -%> - targets: - "<%= target[:address] %>" labels: instance: <%= target[:instance] %> +<% target[:labels].sort.each do |name, value| -%> + <%= name %>: <%= value %> +<% end -%> <% end -%> metric_relabel_configs: <% targets.each do |target| -%> @@ -67,18 +85,52 @@ scrape_configs: <% end -%> <% end -%> <% end -%> - -remote_write: - - url: "http://localhost:9201/write" - write_relabel_configs: - - source_labels: [__name__] - regex: "go_.*" - action: drop - - source_labels: [__name__] - regex: "promhttp_.*" - action: drop - queue_config: - capacity: 10000 - min_shards: 4 - batch_send_deadline: 30s - max_backoff: 1s + - job_name: junos + scrape_interval: 5m + scrape_timeout: 4m + static_configs: +<% @junos_targets.sort_by { |t| t[:instance] }.each do |target| -%> + - targets: + - "<%= target[:target] %>/<%= target[:address] %>" + labels: + instance: <%= target[:instance] %> +<% target[:labels].sort.each do |name, value| -%> + <%= name %>: <%= value %> +<% end -%> +<% end -%> + relabel_configs: + - source_labels: [__address__] + regex: "([^/]+)/.*" + target_label: __param_target + - source_labels: [__address__] + regex: "[^/]+/(.*)" + target_label: __address__ + - job_name: snmp + scrape_interval: 5m + scrape_timeout: 2m + metrics_path: /snmp + static_configs: +<% @snmp_targets.sort_by { |t| t[:instance] }.each do |target| -%> + - targets: +<% target[:modules].each do |module_name| -%> + - "<%= target[:target] %>/<%= module_name %>/<%= target[:address] %>" +<% end -%> + labels: + instance: <%= target[:instance] %> +<% target[:labels].sort.each do |name, value| -%> + <%= name %>: <%= value %> +<% end -%> +<% end -%> + relabel_configs: + - source_labels: [__address__] + regex: "([^/]+)/[^/]+/.*" + target_label: __param_target + - source_labels: [__address__] + regex: "[^/]+/([^/]+)/.*" + target_label: __param_module + - source_labels: [__address__] + regex: "[^/]+/([^/]+)/.*" + target_label: module + - source_labels: [__address__] + regex: "[^/]+/[^/]+/(.*)" + target_label: __address__