global: resolve_timeout: 5m route: <% @route.each do |k, v| %> <% if k == "routes" && v.is_a?(Array) && !v.empty? %> routes: <% v.each do |child| %> - receiver: <%= child["receiver"] %> <% child.each do |ck, cv| %> <% next if ck == "receiver" %> <%= ck %>: <%= cv.is_a?(Array) ? cv.inspect : cv %> <% end %> <% end %> <% else %> <%= k %>: <%= v.is_a?(Array) ? v.inspect : v %> <% end %> <% end %> receivers: <% @receivers.each do |receiver| %> - name: <%= receiver["name"] %> <% if receiver["webhook_configs"] %> <% receiver["webhook_configs"].each do |wc| %> webhook_configs: - url: "<%= @webhook_url %>" send_resolved: <%= wc["send_resolved"] %> payload: room: "<%= wc["room"] %>" message: '{{ if eq .Status "resolved" }}✅{{ else if eq .CommonLabels.severity "warning" }}⚠️{{ else }}🚨{{ end }} {{ .Status | toUpper }}: {{ .CommonLabels.alertname }} ({{ len .Alerts }} alerts){{ range $i, $a := .Alerts }}{{ if lt $i 5 }}{{ "\n" }} - {{ $a.Labels.instance }}{{ if $a.Labels.vm_host }} ({{ $a.Labels.vm_host }}){{ end }}: {{ $a.Annotations.summary }}{{ end }}{{ end }}{{ if gt (len .Alerts) 5 }}{{ "\n" }} ... and more{{ end }}' <% end %> <% end %> <% if receiver["email_configs"] %> <% receiver["email_configs"].each do |ec| %> email_configs: - to: "<%= ec["to"] %>" from: "<%= ec["from"] %>" smarthost: "<%= ec["smarthost"] %>" require_tls: <%= ec["require_tls"] %> send_resolved: <%= ec["send_resolved"] %> text: '{{ .Status | toUpper }}: {{ .CommonLabels.alertname }} ({{ len .Alerts }} alerts){{ range .Alerts }} ---{{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }}{{ end }}{{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }}{{ end }}{{ end }}' <% end %> <% end %> <% end %>