]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/munin/templates/default/munin.conf.erb
Improve PDU monitoring
[chef.git] / cookbooks / munin / templates / default / munin.conf.erb
index 1f03c4e4879e678fe6d4873d14788f54e98ddedd..3ecb9c12b6a96841c4e1932c2d417ede1fbf84d0 100644 (file)
@@ -34,7 +34,9 @@ unknown_limit 144
 <% end -%>
 <% if client[:networking][:roles][:external][:zone] == "ucl" -%>
     address <%= client.internal_ipaddress || client.external_ipaddress %>
-<% elsif client[:networking][:roles][:external][:zone] == "ic" -%>
+<% elsif client[:networking][:roles][:external][:zone] == "ams" -%>
+    address <%= client.internal_ipaddress || client.external_ipaddress %>
+<% elsif client[:networking][:roles][:external][:zone] == "bm" -%>
     address <%= client.internal_ipaddress || client.external_ipaddress %>
 <% elsif client.external_ipaddress -%>
     address <%= client.external_ipaddress %>
@@ -47,6 +49,9 @@ unknown_limit 144
 <% if client[:munin][:plugins][plugin][value][:graph] -%>
     <%= plugin %>.<%= value %>.graph <%= client[:munin][:plugins][plugin][value][:graph] %>
 <% end -%>
+<% if client[:munin][:plugins][plugin][value][:draw] -%>
+    <%= plugin %>.<%= value %>.draw <%= client[:munin][:plugins][plugin][value][:draw] %>
+<% end -%>
 <% if client[:munin][:plugins][plugin][value][:label] -%>
     <%= plugin %>.<%= value %>.label <%= client[:munin][:plugins][plugin][value][:label] %>
 <% end -%>
@@ -85,19 +90,52 @@ unknown_limit 144
 <% end -%>
 <% end -%>
 
+# Configure monitoring for pdu1.ams.openstreetmap.org
+[pdu1.ams.openstreetmap]
+    address 10.0.48.10
+    use_node_name no
+
+# Configure monitoring for pdu1.ams.openstreetmap.org
+[pdu2.ams.openstreetmap]
+    address 10.0.48.10
+    use_node_name no
+
+# Configure compound graphs for ams.openstreetmap.org
+[ams.openstreetmap]
+    update no
+    apcpdu_current.graph_title Load
+    apcpdu_current.graph_args --lower-limit 0
+    apcpdu_current.graph_vlabel Amps
+    apcpdu_current.graph_category power
+    apcpdu_current.current.sum pdu1.ams.openstreetmap:snmp_pdu1.ams.openstreetmap.org_apcpdu_current.current pdu2.ams.openstreetmap:snmp_pdu2.ams.openstreetmap.org_apcpdu_current.current
+    apcpdu_current.current.label Current
+    apcpdu_current.current.min 0
+    apcpdu_power.graph_title Load
+    apcpdu_power.graph_args --base 1000 --lower-limit 0
+    apcpdu_power.graph_vlabel Watts
+    apcpdu_power.graph_category power
+    apcpdu_power.power.sum pdu1.ams.openstreetmap:snmp_pdu1.ams.openstreetmap.org_apcpdu_power.power pdu2.ams.openstreetmap:snmp_pdu2.ams.openstreetmap.org_apcpdu_power.power
+    apcpdu_power.power.label Power
+    apcpdu_power.power.min 0    
+<% unless @frontends.empty? && @backends.empty? -%>
+
 # Configure compound graphs for www.openstreetmap.org
 [www.openstreetmap]
     update no
     apache_accesses.graph_title Apache accesses
     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: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: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
@@ -141,15 +179,25 @@ unknown_limit 144
     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 http500 http502 http503 http509
+    api_calls_error.graph_order http401 http422 http500 http502 http503 http509
+    api_calls_error.http401.sum <%= Chef::Munin.expand "%%.openstreetmap: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: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: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: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: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: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
@@ -276,6 +324,8 @@ unknown_limit 144
     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,*
+<% end -%>
+<% unless @tilecaches.empty? -%>
 
 # Configure compound graphs for tile.openstreetmap.org
 [tile.openstreetmap]
@@ -283,24 +333,28 @@ unknown_limit 144
     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:if_%%interface%%.down", @tilecaches %>
+    network_in.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:if_%%interface%%.down", @tilecaches %>
     network_in.graph_total total
+    network_in.graph_args --lower-limit 0
 <% @tilecaches.each do |tc| -%>
-    network_in.<%= tc[:name] %>.label <%= tc[:name] %>
-    network_in.<%= tc[:name] %>.cdef <%= tc[:name] %>,8,*
-    network_in.<%= tc[:name] %>.draw AREASTACK
+    network_in.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
+    network_in.<%= tc[:name].tr("-", "_") %>.cdef <%= tc[:name].tr("-", "_") %>,8,*
+    network_in.<%= tc[:name].tr("-", "_") %>.draw AREASTACK
+    network_in.<%= tc[: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:if_%%interface%%.up", @tilecaches %>
+    network_out.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:if_%%interface%%.up", @tilecaches %>
     network_out.graph_total total
+    network_out.graph_args --lower-limit 0
 <% @tilecaches.each do |tc| -%>
-    network_out.<%= tc[:name] %>.label <%= tc[:name] %>
-    network_out.<%= tc[:name] %>.cdef <%= tc[:name] %>,8,*
-    network_out.<%= tc[:name] %>.draw AREASTACK
+    network_out.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
+    network_out.<%= tc[:name].tr("-", "_") %>.cdef <%= tc[:name].tr("-", "_") %>,8,*
+    network_out.<%= tc[:name].tr("-", "_") %>.draw AREASTACK
+    network_out.<%= tc[:name].tr("-", "_") %>.min 0
 <% end -%>
-    squid_delay_pools.graph_title IPs being delayed
+    squid_delay_pools.graph_title IPs being delayed with referer
     squid_delay_pools.graph_args --base 1000 -l 0
     squid_delay_pools.graph_vlabel IPs
     squid_delay_pools.graph_order squid_delay1
@@ -309,19 +363,33 @@ unknown_limit 144
     squid_delay_pools.squid_delay1.label IPs
     squid_delay_pools.squid_delay1.min 0
     squid_delay_pools.squid_delay1.draw AREA
+    squid_delay_pools_noreferer.graph_title No-referer IPs being delayed
+    squid_delay_pools_noreferer.graph_args --base 1000 -l 0
+    squid_delay_pools_noreferer.graph_vlabel IPs
+    squid_delay_pools_noreferer.graph_order squid_delay2
+    squid_delay_pools_noreferer.graph_category squid
+    squid_delay_pools_noreferer.squid_delay2.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:squid_delay_pools_noreferer.squid_delay2", @tilecaches %>
+    squid_delay_pools_noreferer.squid_delay2.label IPs
+    squid_delay_pools_noreferer.squid_delay2.min 0
+    squid_delay_pools_noreferer.squid_delay2.draw AREA
     squid_requests.graph_title Squid client requests
     squid_requests.graph_args --base 1000 -l 0
     squid_requests.graph_vlabel requests / ${graph_period}
-    squid_requests.graph_order hits errors requests
+    squid_requests.graph_order <%= Chef::Munin.expand "%%%name%%%_hits=%%name%%.openstreetmap:squid_requests.hits %%%name%%%_errors=%%name%%.openstreetmap:squid_requests.errors %%%name%%%_requests=%%name%%.openstreetmap:squid_requests.requests", @tilecaches %> hits=<%= @tilecaches.first[:name] %>.openstreetmap:squid_requests.hits errors=<%= @tilecaches.first[:name] %>.openstreetmap:squid_requests.errors requests=<%= @tilecaches.first[:name] %>.openstreetmap:squid_requests.requests
     squid_requests.graph_total total
     squid_requests.graph_category squid
-    squid_requests.hits.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:squid_requests.hits", @tilecaches %>
+<% @tilecaches.each do |tc| -%>
+    squid_requests.<%= tc[:name].tr("-", "_") %>_hits.graph no
+    squid_requests.<%= tc[:name].tr("-", "_") %>_errors.graph no
+    squid_requests.<%= tc[:name].tr("-", "_") %>_requests.graph no
+<% end -%>
+    squid_requests.hits.cdef 0,<%= Chef::Munin.expand "%%%name%%%_hits", @tilecaches, ",+," %>,+
     squid_requests.hits.label hits
     squid_requests.hits.draw AREA
-    squid_requests.errors.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:squid_requests.errors", @tilecaches %>
+    squid_requests.errors.cdef 0,<%= Chef::Munin.expand "%%%name%%%_errors", @tilecaches, ",+," %>,+
     squid_requests.errors.label errors
     squid_requests.errors.draw STACK
-    squid_requests.requests.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:squid_requests.requests", @tilecaches %>
+    squid_requests.requests.cdef 0,<%= Chef::Munin.expand "%%%name%%%_requests", @tilecaches, ",+," %>,+,hits,-,errors,-
     squid_requests.requests.label misses
     squid_requests.requests.draw STACK
     squid_traffic.graph_title Squid traffic status
@@ -342,50 +410,74 @@ unknown_limit 144
     squid_times_http.graph_category squid
     squid_times_http.graph_args --lower-limit 0
     squid_times_http.graph_vlabel median reponse times (s)
-    squid_times_http.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:squid_times.mean_http", @tilecaches %>
+    squid_times_http.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:squid_times.mean_http", @tilecaches %>
 <% @tilecaches.each do |tc| -%>
-    squid_times_http.<%= tc[:name] %>.label <%= tc[:name] %>
+    squid_times_http.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
 <% end -%>
     squid_times_cmis.graph_title Squid Cache Miss Service Times
     squid_times_cmis.graph_category squid
     squid_times_cmis.graph_args --lower-limit 0
     squid_times_cmis.graph_vlabel median reponse times (s)
-    squid_times_cmis.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:squid_times.mean_cmis", @tilecaches %>
+    squid_times_cmis.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:squid_times.mean_cmis", @tilecaches %>
 <% @tilecaches.each do |tc| -%>
-    squid_times_cmis.<%= tc[:name] %>.label <%= tc[:name] %>
+    squid_times_cmis.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
 <% end -%>
     squid_times_chits.graph_title Squid Cache Hit Service Times
     squid_times_chits.graph_category squid
     squid_times_chits.graph_args --lower-limit 0
     squid_times_chits.graph_vlabel median reponse times (s)
-    squid_times_chits.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:squid_times.mean_chits", @tilecaches %>
+    squid_times_chits.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:squid_times.mean_chits", @tilecaches %>
 <% @tilecaches.each do |tc| -%>
-    squid_times_chits.<%= tc[:name] %>.label <%= tc[:name] %>
+    squid_times_chits.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
 <% end -%>
     squid_times_nhits.graph_title Squid Cache Near Hit Service Times
     squid_times_nhits.graph_category squid
     squid_times_nhits.graph_args --lower-limit 0
     squid_times_nhits.graph_vlabel median reponse times (s)
-    squid_times_nhits.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:squid_times.mean_nhits", @tilecaches %>
+    squid_times_nhits.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:squid_times.mean_nhits", @tilecaches %>
 <% @tilecaches.each do |tc| -%>
-    squid_times_nhits.<%= tc[:name] %>.label <%= tc[:name] %>
+    squid_times_nhits.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
 <% end -%>
     squid_times_nmr.graph_title Squid Cache Not Modified Service Times
     squid_times_nmr.graph_category squid
     squid_times_nmr.graph_args --lower-limit 0
     squid_times_nmr.graph_vlabel median reponse times (s)
-    squid_times_nmr.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:squid_times.mean_nmr", @tilecaches %>
+    squid_times_nmr.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:squid_times.mean_nmr", @tilecaches %>
 <% @tilecaches.each do |tc| -%>
-    squid_times_nmr.<%= tc[:name] %>.label <%= tc[:name] %>
+    squid_times_nmr.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
 <% end -%>
     squid_times_dnsl.graph_title Squid Cache DNS Lookup Service Times
     squid_times_dnsl.graph_category squid
     squid_times_dnsl.graph_args --lower-limit 0
     squid_times_dnsl.graph_vlabel median reponse times (s)
-    squid_times_dnsl.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:squid_times.mean_dnsl", @tilecaches %>
+    squid_times_dnsl.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:squid_times.mean_dnsl", @tilecaches %>
+<% @tilecaches.each do |tc| -%>
+    squid_times_dnsl.<%= tc[:name].tr("-", "_") %>.label <%= tc[:name] %>
+<% end -%>
+    squid_request_hitrates.graph_title Squid Cache Request Hit Rates
+    squid_request_hitrates.graph_category squid
+    squid_request_hitrates.graph_args --lower-limit 0 --upper-limit 100
+    squid_request_hitrates.graph_vlabel %
+    squid_request_hitrates.graph_order <%= Chef::Munin.expand "%%%name%%%_total=%%name%%.openstreetmap:squid_requests.requests %%%name%%%_hits=%%name%%.openstreetmap:squid_requests.hits", @tilecaches %>
+<% @tilecaches.each do |tc| -%>
+    squid_request_hitrates.<%= tc[:name].tr("-", "_") %>_total.graph no
+    squid_request_hitrates.<%= tc[:name].tr("-", "_") %>_hits.cdef <%= tc[:name].tr("-", "_") %>_hits,<%= tc[:name].tr("-", "_") %>_total,/,100,*
+    squid_request_hitrates.<%= tc[:name].tr("-", "_") %>_hits.label <%= tc[:name] %>
+    squid_request_hitrates.<%= tc[:name].tr("-", "_") %>_hits.draw LINE1
+<% end -%>
+    squid_byte_hitrates.graph_title Squid Cache Byte Hit Rates
+    squid_byte_hitrates.graph_category squid
+    squid_byte_hitrates.graph_args --lower-limit 0 --upper-limit 100
+    squid_byte_hitrates.graph_vlabel %
+    squid_byte_hitrates.graph_order <%= Chef::Munin.expand "%%%name%%%_total=%%name%%.openstreetmap:squid_traffic.kbytes_out %%%name%%%_hits=%%name%%.openstreetmap:squid_traffic.hit_kbytes_out", @tilecaches %>
 <% @tilecaches.each do |tc| -%>
-    squid_times_dnsl.<%= tc[:name] %>.label <%= tc[:name] %>
+    squid_byte_hitrates.<%= tc[:name].tr("-", "_") %>_total.graph no
+    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 -%>
 <% end -%>
+<% unless @renderers.empty? -%>
 
 # Configure compound graphs for render.openstreetmap.org
 [render.openstreetmap]
@@ -393,40 +485,48 @@ unknown_limit 144
     apache_accesses.graph_title Apache accesses
     apache_accesses.graph_vlabel accesses / ${graph_period}
     apache_accesses.graph_category apache
-    apache_accesses.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:apache_accesses.accesses80", @renderers %>
+    apache_accesses.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:apache_accesses.accesses80", @renderers %>
     apache_accesses.graph_total total
+    apache_accesses.graph_args --lower-limit 0
 <% @renderers.each do |rs| -%>
-    apache_accesses.<%= rs[:name] %>.label <%= rs[:name] %>
-    apache_accesses.<%= rs[:name] %>.draw AREASTACK
+    apache_accesses.<%= rs[:name].tr("-", "_") %>.label <%= rs[:name] %>
+    apache_accesses.<%= rs[:name].tr("-", "_") %>.draw AREASTACK
+    apache_accesses.<%= rs[:name].tr("-", "_") %>.min 0
 <% end -%>
     apache_volume.graph_title Apache volume
     apache_volume.graph_vlabel bytes per ${graph_period}
     apache_volume.graph_category apache
-    apache_volume.graph_order <%= Chef::Munin.expand "%%name%%=%%name%%.openstreetmap:apache_volume.volume80", @renderers %>
+    apache_volume.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:apache_volume.volume80", @renderers %>
     apache_volume.graph_total total
+    apache_volume.graph_args --lower-limit 0
 <% @renderers.each do |rs| -%>
-    apache_volume.<%= rs[:name] %>.label <%= rs[:name] %>
-    apache_volume.<%= rs[:name] %>.draw AREASTACK
+    apache_volume.<%= rs[:name].tr("-", "_") %>.label <%= rs[:name] %>
+    apache_volume.<%= rs[:name].tr("-", "_") %>.draw AREASTACK
+    apache_volume.<%= rs[:name].tr("-", "_") %>.min 0
 <% end -%>
     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:if_%%interface%%.down", @renderers %>
+    network_in.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:if_%%interface%%.down", @renderers %>
     network_in.graph_total total
+    network_in.graph_args --lower-limit 0
 <% @renderers.each do |rs| -%>
-    network_in.<%= rs[:name] %>.label <%= rs[:name] %>
-    network_in.<%= rs[:name] %>.cdef <%= rs[:name] %>,8,*
-    network_in.<%= rs[:name] %>.draw AREASTACK
+    network_in.<%= rs[:name].tr("-", "_") %>.label <%= rs[:name] %>
+    network_in.<%= rs[:name].tr("-", "_") %>.cdef <%= rs[:name].tr("-", "_") %>,8,*
+    network_in.<%= rs[:name].tr("-", "_") %>.draw AREASTACK
+    network_in.<%= rs[: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:if_%%interface%%.up", @renderers %>
+    network_out.graph_order <%= Chef::Munin.expand "%%%name%%%=%%name%%.openstreetmap:if_%%interface%%.up", @renderers %>
     network_out.graph_total total
+    network_out.graph_args --lower-limit 0
 <% @renderers.each do |rs| -%>
-    network_out.<%= rs[:name] %>.label <%= rs[:name] %>
-    network_out.<%= rs[:name] %>.cdef <%= rs[:name] %>,8,*
-    network_out.<%= rs[:name] %>.draw AREASTACK
+    network_out.<%= rs[:name].tr("-", "_") %>.label <%= rs[:name] %>
+    network_out.<%= rs[:name].tr("-", "_") %>.cdef <%= rs[:name].tr("-", "_") %>,8,*
+    network_out.<%= rs[:name].tr("-", "_") %>.draw AREASTACK
+    network_out.<%= rs[:name].tr("-", "_") %>.min 0
 <% end -%>
     mod_tile_fresh.graph_title freshness of served tiles
     mod_tile_fresh.graph_args --base 1000 -l 0
@@ -514,21 +614,21 @@ unknown_limit 144
     renderd_processed.graph_title Renderd throughput
     renderd_processed.graph_args --base 1000 -l 0
     renderd_processed.graph_vlabel Metatiles per ${graph_period}
-    renderd_processed.graph_order req reqLow reqPrio dirty reqBulk dropped
+    renderd_processed.graph_order reqPrio req reqLow dirty reqBulk dropped
     renderd_processed.graph_category renderd
     renderd_processed.graph_info Displays the number of metatiles being rendered by renderd per ${graph_period}
+    renderd_processed.reqPrio.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:renderd_processed.reqPrio", @renderers %>
+    renderd_processed.reqPrio.label Priority request Queue
+    renderd_processed.reqPrio.draw AREA
+    renderd_processed.reqPrio.info Throughput of Metatiles submitted high priority for on the fly rendering
     renderd_processed.req.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:renderd_processed.req", @renderers %>
     renderd_processed.req.label Request Queue
-    renderd_processed.req.draw AREA
+    renderd_processed.req.draw STACK
     renderd_processed.req.info Throughput of Metatiles submitted for on the fly rendering
     renderd_processed.reqLow.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:renderd_processed.reqLow", @renderers %>
     renderd_processed.reqLow.label Low priority request Queue
     renderd_processed.reqLow.draw STACK
     renderd_processed.reqLow.info Throughput of Metatiles submitted low priority for on the fly rendering
-    renderd_processed.reqPrio.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:renderd_processed.reqPrio", @renderers %>
-    renderd_processed.reqPrio.label Priority request Queue
-    renderd_processed.reqPrio.draw STACK
-    renderd_processed.reqPrio.info Throughput of Metatiles submitted high priority for on the fly rendering
     renderd_processed.dirty.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:renderd_processed.dirty", @renderers %>
     renderd_processed.dirty.label Dirty Queue
     renderd_processed.dirty.draw STACK
@@ -638,3 +738,44 @@ unknown_limit 144
     renderd_zoom_time.zoomtime6.cdef zoomtime6,1000,/
     renderd_zoom_time.zoomtime6.draw STACK
     renderd_zoom_time.zoomtime6.info Time for Metatiles for z19 - z20
+<% end -%>
+<% unless @geocoders.empty? -%>
+
+# Configure compound graphs for nominatim.openstreetmap.org
+[nominatim.openstreetmap]
+    update no
+    nominatim_requests.graph_title Requests by API call
+    nominatim_requests.graph_args --base 1000 -l 0
+    nominatim_requests.graph_vlabel requests per minute
+    nominatim_requests.graph_category nominatim
+    nominatim_requests.graph_order z1 z2 z3 z4
+    nominatim_requests.z1.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:nominatim_requests.z1", @geocoders %>
+    nominatim_requests.z1.label reverse
+    nominatim_requests.z1.draw AREA
+    nominatim_requests.z1.type GAUGE
+    nominatim_requests.z2.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:nominatim_requests.z2", @geocoders %>
+    nominatim_requests.z2.label search (successful)
+    nominatim_requests.z2.draw STACK
+    nominatim_requests.z2.type GAUGE
+    nominatim_requests.z3.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:nominatim_requests.z3", @geocoders %>
+    nominatim_requests.z3.label search (no result)
+    nominatim_requests.z3.draw STACK
+    nominatim_requests.z3.type GAUGE
+    nominatim_requests.z4.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:nominatim_requests.z4", @geocoders %>
+    nominatim_requests.z4.label details
+    nominatim_requests.z4.draw STACK
+    nominatim_requests.z4.type GAUGE
+    nominatim_throttled_ips.graph_title Restricted IPs
+    nominatim_throttled_ips.graph_args -l 0
+    nominatim_throttled_ips.graph_vlabel number of IPs
+    nominatim_throttled_ips.graph_category nominatim
+    nominatim_throttled_ips.graph_order bulk block
+    nominatim_throttled_ips.bulk.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:nominatim_throttled_ips.bulk", @geocoders %>
+    nominatim_throttled_ips.bulk.label bulk
+    nominatim_throttled_ips.bulk.draw AREA
+    nominatim_throttled_ips.bulk.type GAUGE
+    nominatim_throttled_ips.block.sum <%= Chef::Munin.expand "%%name%%.openstreetmap:nominatim_throttled_ips.block", @geocoders %>
+    nominatim_throttled_ips.block.label blocked
+    nominatim_throttled_ips.block.draw STACK
+    nominatim_throttled_ips.block.type GAUGE
+<% end -%>