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__]
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| -%>
<% 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__