]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/munin/templates/default/munin.conf.erb
Proxy requests to the prometheus and alertmanager web UIs
[chef.git] / cookbooks / munin / templates / default / munin.conf.erb
index e8260717e0c139ed1dfc4cb87dda444a0a7d30a1..3aa31b432d91773c7b002caf6fa5aae6738353fd 100644 (file)
@@ -25,10 +25,10 @@ contacts admins
 
 # Ignore uncontactable hosts for twelve hours
 unknown_limit 144
-<% @clients.sort { |a,b| a[:hostname] <=> b[:hostname] }.each do |client| -%>
+<% @clients.sort { |a,b| a.name <=> b.name }.each do |client| -%>
 
-# Configure monitoring for <%= client[:fqdn] %>
-[<%= client[:hostname] %>.openstreetmap.org]
+# Configure monitoring for <%= client.name %>
+[<%= client.name %>]
 <% if Time.now - Time.at(client[:ohai_time]) > @expiry_time -%>
     update no
 <% end -%>
@@ -90,6 +90,11 @@ unknown_limit 144
 <% end -%>
 <% end -%>
 
+# Configure monitoring for switch1.openstreetmap.org
+[openstreetmap.org;switch1.openstreetmap.org]
+    address 10.0.48.10
+    use_node_name no
+
 # Configure monitoring for pdu1.ams.openstreetmap.org
 [openstreetmap.org;pdu1.ams.openstreetmap.org]
     address 10.0.48.10
@@ -109,23 +114,29 @@ unknown_limit 144
     apcpdu_current.graph_category power
     apcpdu_current.graph_order pdu1=pdu1.ams.openstreetmap.org:snmp_pdu1_ams_openstreetmap_org_apcpdu_current.current pdu2=pdu2.ams.openstreetmap.org:snmp_pdu2_ams_openstreetmap_org_apcpdu_current.current
     apcpdu_current.graph_total total
-    apcpdu_current.current.label Current
-    apcpdu_current.current.draw AREASTACK
-    apcpdu_current.current.min 0
+    apcpdu_current.pdu1.label PDU A
+    apcpdu_current.pdu1.draw AREASTACK
+    apcpdu_current.pdu1.min 0
+    apcpdu_current.pdu2.label PDU B
+    apcpdu_current.pdu2.draw AREASTACK
+    apcpdu_current.pdu2.min 0
     apcpdu_power.graph_title Power
     apcpdu_power.graph_args --base 1000 --lower-limit 0
     apcpdu_power.graph_vlabel Watts
     apcpdu_power.graph_category power
     apcpdu_power.graph_order pdu1=pdu1.ams.openstreetmap.org:snmp_pdu1_ams_openstreetmap_org_apcpdu_power.power pdu2=pdu2.ams.openstreetmap.org:snmp_pdu2_ams_openstreetmap_org_apcpdu_power.power
     apcpdu_power.graph_total total
-    apcpdu_power.power.label Power
-    apcpdu_power.power.draw AREASTACK
-    apcpdu_power.power.min 0
+    apcpdu_power.pdu1.label PDU A
+    apcpdu_power.pdu1.draw AREASTACK
+    apcpdu_power.pdu1.min 0
+    apcpdu_power.pdu2.label PDU B
+    apcpdu_power.pdu2.draw AREASTACK
+    apcpdu_power.pdu2.min 0
     apcpdu_temperature.graph_title Temperature
     apcpdu_temperature.graph_args --lower-limit 0
     apcpdu_temperature.graph_vlabel Degrees Celsius
     apcpdu_temperature.graph_category sensors
-    apcpdu_temperature.graph_order pdu1=pdu1.ams.openstreetmap.org:snmp_pdu1_ams_openstreetmap_org_apcpdu_temperature.temperature
+    apcpdu_temperature.graph_order temperature=pdu1.ams.openstreetmap.org:snmp_pdu1_ams_openstreetmap_org_apcpdu_temperature.temperature
     apcpdu_temperature.temperature.label Temperature
     apcpdu_temperature.temperature.draw LINE2
     apcpdu_temperature.temperature.min 0
@@ -133,11 +144,11 @@ unknown_limit 144
     apcpdu_humidity.graph_args --lower-limit 0
     apcpdu_humidity.graph_vlabel %
     apcpdu_humidity.graph_category sensors
-    apcpdu_humidity.graph_order pdu1=pdu1.ams.openstreetmap.org:snmp_pdu1_ams_openstreetmap_org_apcpdu_humidity.humidity
+    apcpdu_humidity.graph_order humidity=pdu1.ams.openstreetmap.org:snmp_pdu1_ams_openstreetmap_org_apcpdu_humidity.humidity
     apcpdu_humidity.humidity.label Humidity
     apcpdu_humidity.humidity.draw LINE2
     apcpdu_humidity.humidity.min 0
-<% unless @frontends.empty? && @backends.empty? -%>
+<% unless @frontends.empty? -%>
 
 # Configure compound graphs for www.openstreetmap.org
 [www.openstreetmap.org]
@@ -146,201 +157,205 @@ unknown_limit 144
     apache_accesses.graph_vlabel accesses / ${graph_period}
     apache_accesses.graph_category apache
     apache_accesses.graph_args --lower-limit 0
-    apache_accesses.accesses80.sum <%= Chef::Munin.expand "%%.openstreetmap.org:apache_accesses.accesses80", @frontends %>
+    apache_accesses.accesses80.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:apache_accesses.accesses80", @frontends %>
     apache_accesses.accesses80.label port 80
     apache_accesses.accesses80.min 0
     apache_volume.graph_title Apache volume
     apache_volume.graph_vlabel bytes per ${graph_period}
     apache_volume.graph_category apache
     apache_volume.graph_args --lower-limit 0
-    apache_volume.volume80.sum <%= Chef::Munin.expand "%%.openstreetmap.org:apache_volume.volume80", @frontends %>
+    apache_volume.volume80.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:apache_volume.volume80", @frontends %>
     apache_volume.volume80.label port 80
     apache_volume.volume80.min 0
-    if_eth0.graph_title eth0 traffic
-    if_eth0.graph_vlabel bits in (-) / out (+) per ${graph_period}
-    if_eth0.graph_category network
-    if_eth0.graph_order down up
-    if_eth0.down.sum <%= Chef::Munin.expand "%%.openstreetmap.org:if_eth0.down", @frontends %>
-    if_eth0.down.label received
-    if_eth0.down.cdef down,8,*
-    if_eth0.up.sum <%= Chef::Munin.expand "%%.openstreetmap.org:if_eth0.up", @frontends %>
-    if_eth0.up.label sent
-    if_eth0.up.cdef up,8,*
-    if_eth1.graph_title eth1 traffic
-    if_eth1.graph_vlabel bits in (-) / out (+) per ${graph_period}
-    if_eth1.graph_category network
-    if_eth1.graph_order down up
-    if_eth1.down.sum <%= Chef::Munin.expand "%%.openstreetmap.org:if_eth1.down", @frontends %>
-    if_eth1.down.label received
-    if_eth1.down.cdef down,8,*
-    if_eth1.up.sum <%= Chef::Munin.expand "%%.openstreetmap.org:if_eth1.up", @frontends %>
-    if_eth1.up.label sent
-    if_eth1.up.cdef up,8,*
+    network_in.graph_title Inbound network traffic
+    network_in.graph_vlabel bits in per ${graph_period}
+    network_in.graph_category network
+    network_in.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap.org:if_%%interface%%.down", @frontends %>
+    network_in.graph_total total
+    network_in.graph_args --lower-limit 0
+<% @frontends.each do |fe| -%>
+    network_in.<%= fe[:name].tr("-", "_") %>.label <%= fe[:name] %>
+    network_in.<%= fe[:name].tr("-", "_") %>.cdef <%= fe[:name].tr("-", "_") %>,8,*
+    network_in.<%= fe[:name].tr("-", "_") %>.draw AREASTACK
+    network_in.<%= fe[:name].tr("-", "_") %>.min 0
+<% end -%>
+    network_out.graph_title Outbound network traffic
+    network_out.graph_vlabel bits out per ${graph_period}
+    network_out.graph_category network
+    network_out.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap.org:if_%%interface%%.up", @frontends %>
+    network_out.graph_total total
+    network_out.graph_args --lower-limit 0
+<% @frontends.each do |fe| -%>
+    network_out.<%= fe[:name].tr("-", "_") %>.label <%= fe[:name] %>
+    network_out.<%= fe[:name].tr("-", "_") %>.cdef <%= fe[:name].tr("-", "_") %>,8,*
+    network_out.<%= fe[:name].tr("-", "_") %>.draw AREASTACK
+    network_out.<%= fe[:name].tr("-", "_") %>.min 0
+<% end -%>
     api_calls_www.graph_title Active requests
     api_calls_www.graph_vlabel Number of requests
     api_calls_www.graph_category api
     api_calls_www.graph_order map upload amf history full trkpts web other
-    api_calls_www.web.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.web", @frontends %>
+    api_calls_www.web.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.web", @frontends %>
     api_calls_www.web.label Web site traffic
-    api_calls_www.upload.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.upload", @frontends %>
+    api_calls_www.upload.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.upload", @frontends %>
     api_calls_www.upload.label Changeset diff uploads
-    api_calls_www.other.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.other", @frontends %>
+    api_calls_www.other.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.other", @frontends %>
     api_calls_www.other.label Other API calls
-    api_calls_www.amf.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.amf", @frontends %>
+    api_calls_www.amf.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.amf", @frontends %>
     api_calls_www.amf.label AMF API calls
-    api_calls_www.history.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.history", @frontends %>
+    api_calls_www.history.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.history", @frontends %>
     api_calls_www.history.label Element history fetches
-    api_calls_www.full.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.full", @frontends %>
+    api_calls_www.full.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.full", @frontends %>
     api_calls_www.full.label Full element fetches
-    api_calls_www.map.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.map", @frontends %>
+    api_calls_www.map.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.map", @frontends %>
     api_calls_www.map.label Map API calls
-    api_calls_www.trkpts.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_%%%.trkpts", @frontends %>
+    api_calls_www.trkpts.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_%%%name%%%.trkpts", @frontends %>
     api_calls_www.trkpts.label GPX trackpoints calls
     api_calls_error.graph_title HTTP errors
     api_calls_error.graph_vlabel Number of errors per ${graph_period}
     api_calls_error.graph_category api
     api_calls_error.graph_order http401 http422 http500 http502 http503 http509
-    api_calls_error.http401.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_status.http401", @frontends %>
+    api_calls_error.http401.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_status.http401", @frontends %>
     api_calls_error.http401.label 401 Unauthorized
     api_calls_error.http401.warning :0.5
-    api_calls_error.http422.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_status.http422", @frontends %>
+    api_calls_error.http422.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_status.http422", @frontends %>
     api_calls_error.http422.label 422 Unprocessable Entity
     api_calls_error.http422.warning :0.5
-    api_calls_error.http500.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_status.http500", @frontends %>
+    api_calls_error.http500.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_status.http500", @frontends %>
     api_calls_error.http500.label 500 Internal Server Error
     api_calls_error.http500.warning :0.5
-    api_calls_error.http502.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_status.http502", @frontends %>
+    api_calls_error.http502.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_status.http502", @frontends %>
     api_calls_error.http502.label 502 Bad Gateway
     api_calls_error.http502.warning :0.5
-    api_calls_error.http503.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_status.http503", @frontends %>
+    api_calls_error.http503.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_status.http503", @frontends %>
     api_calls_error.http503.label 503 Service Unavailable
     api_calls_error.http503.warning :0.5
-    api_calls_error.http509.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_status.http509", @frontends %>
+    api_calls_error.http509.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_status.http509", @frontends %>
     api_calls_error.http509.label 509 Bandwidth Limit Exceeded
     api_calls_error.http509.warning :5
     api_calls_num.graph_title Requests processed
     api_calls_num.graph_vlabel Number of requests per ${graph_period}
     api_calls_num.graph_category api
     api_calls_num.graph_order map upload amf history full trkpts web other
-    api_calls_num.web.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.web", @frontends %>
+    api_calls_num.web.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.web", @frontends %>
     api_calls_num.web.label Web site traffic
-    api_calls_num.upload.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.upload", @frontends %>
+    api_calls_num.upload.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.upload", @frontends %>
     api_calls_num.upload.label Changeset diff uploads
-    api_calls_num.other.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.other", @frontends %>
+    api_calls_num.other.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.other", @frontends %>
     api_calls_num.other.label Other API calls
-    api_calls_num.amf.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.amf", @frontends %>
+    api_calls_num.amf.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.amf", @frontends %>
     api_calls_num.amf.label AMF API calls
-    api_calls_num.history.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.history", @frontends %>
+    api_calls_num.history.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.history", @frontends %>
     api_calls_num.history.label Element history fetches
-    api_calls_num.full.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.full", @frontends %>
+    api_calls_num.full.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.full", @frontends %>
     api_calls_num.full.label Full element fetches
-    api_calls_num.map.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.map", @frontends %>
+    api_calls_num.map.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.map", @frontends %>
     api_calls_num.map.label Map API calls
-    api_calls_num.trkpts.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_calls_num.trkpts", @frontends %>
+    api_calls_num.trkpts.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_calls_num.trkpts", @frontends %>
     api_calls_num.trkpts.label GPX trackpoints calls
     api_waits_www.graph_title Wait times for active requests
     api_waits_www.graph_vlabel Average time of requests
     api_waits_www.graph_category api
     api_waits_www.graph_order map upload amf history full trkpts web other
-    api_waits_www.web.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.web", @frontends %>
+    api_waits_www.web.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.web", @frontends %>
     api_waits_www.web.label Web site traffic
     api_waits_www.web.cdef web,2,/
-    api_waits_www.upload.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.upload", @frontends %>
+    api_waits_www.upload.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.upload", @frontends %>
     api_waits_www.upload.label Changeset diff uploads
     api_waits_www.upload.cdef upload,2,/
-    api_waits_www.other.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.other", @frontends %>
+    api_waits_www.other.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.other", @frontends %>
     api_waits_www.other.label Other API calls
     api_waits_www.other.cdef other,2,/
-    api_waits_www.amf.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.amf", @frontends %>
+    api_waits_www.amf.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.amf", @frontends %>
     api_waits_www.amf.label AMF API calls
     api_waits_www.amf.cdef amf,2,/
-    api_waits_www.history.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.history", @frontends %>
+    api_waits_www.history.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.history", @frontends %>
     api_waits_www.history.label Element history fetches
     api_waits_www.history.cdef history,2,/
-    api_waits_www.full.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.full", @frontends %>
+    api_waits_www.full.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.full", @frontends %>
     api_waits_www.full.label Full element fetches
     api_waits_www.full.cdef full,2,/
-    api_waits_www.map.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.map", @frontends %>
+    api_waits_www.map.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.map", @frontends %>
     api_waits_www.map.label Map API calls
     api_waits_www.map.cdef map,2,/
-    api_waits_www.trkpts.sum <%= Chef::Munin.expand "%%.openstreetmap.org:api_waits_%%%.trkpts", @frontends %>
+    api_waits_www.trkpts.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:api_waits_%%%name%%%.trkpts", @frontends %>
     api_waits_www.trkpts.label GPX trackpoints calls
     api_waits_www.trkpts.cdef trkpts,2,/
     memcached_multi_commands.graph_title Commands
     memcached_multi_commands.graph_vlabel Commands per ${graph_period}
     memcached_multi_commands.graph_category memcached
     memcached_multi_commands.graph_order cmd_get cmd_set cmd_touch get_hits get_misses delete_hits delete_misses incr_hits incr_misses decr_hits decr_misses touch_hits touch_misses
-    memcached_multi_commands.cmd_get.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.cmd_get", @backends %>
+    memcached_multi_commands.cmd_get.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.cmd_get", @frontends %>
     memcached_multi_commands.cmd_get.label Gets
-    memcached_multi_commands.cmd_set.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.cmd_set", @backends %>
+    memcached_multi_commands.cmd_set.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.cmd_set", @frontends %>
     memcached_multi_commands.cmd_set.label Sets
-    memcached_multi_commands.cmd_touch.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.cmd_touch", @backends %>
+    memcached_multi_commands.cmd_touch.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.cmd_touch", @frontends %>
     memcached_multi_commands.cmd_touch.label Touches
-    memcached_multi_commands.get_hits.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.get_hits", @backends %>
+    memcached_multi_commands.get_hits.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.get_hits", @frontends %>
     memcached_multi_commands.get_hits.label Get Hits
-    memcached_multi_commands.get_misses.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.get_misses", @backends %>
+    memcached_multi_commands.get_misses.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.get_misses", @frontends %>
     memcached_multi_commands.get_misses.label Get Misses
-    memcached_multi_commands.delete_hits.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.delete_hits", @backends %>
+    memcached_multi_commands.delete_hits.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.delete_hits", @frontends %>
     memcached_multi_commands.delete_hits.label Delete Hits
-    memcached_multi_commands.delete_misses.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.delete_misses", @backends %>
+    memcached_multi_commands.delete_misses.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.delete_misses", @frontends %>
     memcached_multi_commands.delete_misses.label Delete Misses
-    memcached_multi_commands.incr_hits.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.incr_hits", @backends %>
+    memcached_multi_commands.incr_hits.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.incr_hits", @frontends %>
     memcached_multi_commands.incr_hits.label Increment Hits
-    memcached_multi_commands.incr_misses.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.incr_misses", @backends %>
+    memcached_multi_commands.incr_misses.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.incr_misses", @frontends %>
     memcached_multi_commands.incr_misses.label Increment Misses
-    memcached_multi_commands.decr_hits.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.decr_hits", @backends %>
+    memcached_multi_commands.decr_hits.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.decr_hits", @frontends %>
     memcached_multi_commands.decr_hits.label Decrement Hits
-    memcached_multi_commands.decr_misses.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.decr_misses", @backends %>
+    memcached_multi_commands.decr_misses.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.decr_misses", @frontends %>
     memcached_multi_commands.decr_misses.label Decrement Misses
-    memcached_multi_commands.touch_hits.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.touch_hits", @backends %>
+    memcached_multi_commands.touch_hits.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.touch_hits", @frontends %>
     memcached_multi_commands.touch_hits.label Touch Hits
-    memcached_multi_commands.touch_misses.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_commands.touch_misses", @backends %>
+    memcached_multi_commands.touch_misses.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_commands.touch_misses", @frontends %>
     memcached_multi_commands.touch_misses.label Touch Misses
     memcached_multi_conns.graph_title Connections
     memcached_multi_conns.graph_vlabel Connections per ${graph_period}
     memcached_multi_conns.graph_category memcached
     memcached_multi_conns.graph_order max_conns curr_conns avg_conns
-    memcached_multi_conns.curr_conns.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_conns.curr_conns", @backends %>
+    memcached_multi_conns.curr_conns.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_conns.curr_conns", @frontends %>
     memcached_multi_conns.curr_conns.label Current Connections
-    memcached_multi_conns.max_conns.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_conns.max_conns", @backends %>
+    memcached_multi_conns.max_conns.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_conns.max_conns", @frontends %>
     memcached_multi_conns.max_conns.label Max Connections
-    memcached_multi_conns.avg_conns.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_conns.avg_conns", @backends %>
+    memcached_multi_conns.avg_conns.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_conns.avg_conns", @frontends %>
     memcached_multi_conns.avg_conns.label Avg Connections
     memcached_multi_evictions.graph_title Evictions
     memcached_multi_evictions.graph_vlabel Evictions per ${graph_period}
     memcached_multi_evictions.graph_category memcached
-    memcached_multi_evictions.evictions.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_evictions.evictions", @backends %>
+    memcached_multi_evictions.evictions.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_evictions.evictions", @frontends %>
     memcached_multi_evictions.evictions.label Evictions
-    memcached_multi_evictions.evicted_nonzero.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_evictions.evicted_nonzero", @backends %>
+    memcached_multi_evictions.evicted_nonzero.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_evictions.evicted_nonzero", @frontends %>
     memcached_multi_evictions.evicted_nonzero.label Evictions prior to Expire
-    memcached_multi_evictions.reclaimed.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_evictions.reclaimed", @backends %>
+    memcached_multi_evictions.reclaimed.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_evictions.reclaimed", @frontends %>
     memcached_multi_evictions.reclaimed.label Reclaimed Items
     memcached_multi_items.graph_title Items
     memcached_multi_items.graph_vlabel Items in Memcached
     memcached_multi_items.graph_category memcached
     memcached_multi_items.graph_order curr_items total_items
-    memcached_multi_items.curr_items.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_items.curr_items", @backends %>
+    memcached_multi_items.curr_items.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_items.curr_items", @frontends %>
     memcached_multi_items.curr_items.label Current Items
-    memcached_multi_items.total_items.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_items.total_items", @backends %>
+    memcached_multi_items.total_items.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_items.total_items", @frontends %>
     memcached_multi_items.total_items.label New Items
     memcached_multi_memory.graph_title Memory Usage
     memcached_multi_memory.graph_vlabel Bytes Used
     memcached_multi_memory.graph_category memcached
     memcached_multi_memory.graph_order limit_maxbytes bytes
-    memcached_multi_memory.limit_maxbytes.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_memory.limit_maxbytes", @backends %>
+    memcached_multi_memory.limit_maxbytes.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_memory.limit_maxbytes", @frontends %>
     memcached_multi_memory.limit_maxbytes.label Maximum Bytes Allocated
-    memcached_multi_memory.bytes.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_memory.bytes", @backends %>
+    memcached_multi_memory.bytes.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_memory.bytes", @frontends %>
     memcached_multi_memory.bytes.label Current Bytes Used
     memcached_multi_bytes.graph_title Network Traffic
     memcached_multi_bytes.graph_args --base 1000
     memcached_multi_bytes.graph_vlabel bits in (-) / out (+)
     memcached_multi_bytes.graph_category memcached
     memcached_multi_bytes.graph_order bytes_read bytes_written
-    memcached_multi_bytes.bytes_read.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_bytes.bytes_read", @backends %>
+    memcached_multi_bytes.bytes_read.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_bytes.bytes_read", @frontends %>
     memcached_multi_bytes.bytes_read.label Network Traffic coming in (-)
     memcached_multi_bytes.bytes_read.cdef bytes_read,8,*
     memcached_multi_bytes.bytes_read.graph no
-    memcached_multi_bytes.bytes_written.sum <%= Chef::Munin.expand "%%.openstreetmap.org:memcached_multi_bytes.bytes_written", @backends %>
+    memcached_multi_bytes.bytes_written.sum <%= Chef::Munin.expand "%%name%%.openstreetmap.org:memcached_multi_bytes.bytes_written", @frontends %>
     memcached_multi_bytes.bytes_written.negative bytes_read
     memcached_multi_bytes.bytes_written.label Traffic in (-) / out (+)
     memcached_multi_bytes.bytes_written.cdef bytes_written,8,*
@@ -495,6 +510,17 @@ unknown_limit 144
     squid_byte_hitrates.<%= tc[:name].tr("-", "_") %>_hits.cdef <%= tc[:name].tr("-", "_") %>_hits,<%= tc[:name].tr("-", "_") %>_total,/,100,*
     squid_byte_hitrates.<%= tc[:name].tr("-", "_") %>_hits.label <%= tc[:name] %>
     squid_byte_hitrates.<%= tc[:name].tr("-", "_") %>_hits.draw LINE1
+<% end -%>
+    nginx_requests.graph_title Nginx requests
+    nginx_requests.graph_vlabel Requests per ${graph_period}
+    nginx_requests.graph_category nginx
+    nginx_requests.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap.org:nginx_request.request", @tilecaches %>
+    nginx_requests.graph_total total
+    nginx_requests.graph_args --lower-limit 0
+<% @tilecaches.each do |tc| -%>
+    nginx_requests.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
+    nginx_requests.<%= tc[:name].tr("-", "_") %>.draw AREASTACK
+    nginx_requests.<%= tc[:name].tr("-", "_") %>.min 0
 <% end -%>
 <% end -%>
 <% unless @renderers.empty? -%>