Question

I have the following munin-generated graph of nginx requests:

nginx requests by day

What does the 'm' in the y-axis mean?

The nginx munin plugin at /usr/share/munin/plugins/nginx_request is extracting:

if ($response->content =~ /^\s+(\d+)\s+(\d+)\s+(\d+)/m) {
    print "request.value $3\n";

Which means it is taking the third component of nginx_status, which appears to be the total accumulated request count. Here is an example execution from this same server:

$ curl http://127.0.0.1/nginx_status
Active connections: 1 
server accepts handled requests
 2936 2936 4205 
Reading: 0 Writing: 1 Waiting: 0 

The munin nginx plugin is passing the following to rrdtool:

print "graph_title Nginx requests\n";
print "graph_args --base 1000\n";
print "graph_category nginx\n";
print "graph_vlabel Request per second\n";
print "request.label req/sec\n";
print "request.type DERIVE\n";
print "request.min 0\n";
print "request.label requests port $port\n";
print "request.draw LINE2\n";
Was it helpful?

Solution

The 'm' is the 'milli' prefix for the units. So, 400 m means 0.400.

By default, RRDTool uses the SI prefixes -- 2000 is shown as 2k, 0.01 is shown as 10m and so on. This isn't normally an issue except when there are no units or the thing being measured doesnt make sense in fractional parts.

The way to stop this behaviour is to not use the %s in the GPRINT (this fixes the legend), and to use the --units-exponent=0 option (this fixes the Y-axis). I don't know that it is possible to make munin do this, though. You might be able to modify the plugin to add '--units-exponent 0' to the graph_args though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top