An nginx module for sending stats to dogstatsd.
Clone or download
Pull request Compare This branch is 20 commits ahead of ct16k:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
README.mkd
config
ngx_http_statsd.c

README.mkd

nginx-statsd

An nginx module for sending statistics to statsd.

This is how to use the nginx-statsd module:

http {
	
	# Set the server that you want to send stats to.
	statsd_server your.statsd.server.com;

	# Randomly sample 10% of requests so that you do not overwhelm your statsd server.
	# Defaults to sending all statsd (100%). 
	statsd_sample_rate 10; # 10% of requests


	server {
		listen 80;
		server_name www.your.domain.com;
			
		# Increment "your_product.requests" by 1 whenever any request hits this server. 
		statsd_count "your_product.requests" 1;

		location / {
			
			# Increment the key by 1 when this location is hit.
			statsd_count "your_product.pages.index_requests" 1;

			# Increment the key by 1, but only if $request_completion is set to something.
			statsd_count "your_product.pages.index_responses" 1 "$request_completion";

			# Send a timing to "your_product.pages.index_response_time" equal to the value
			# returned from the upstream server. If this value evaluates to 0 or empty-string,
			# it will not be sent. Thus, there is no need to add a test.
			statsd_timing "your_product.pages.index_response_time" "$upstream_response_time";

			# Increment a key based on the value of a custom header. Only sends the value if
			# the custom header exists in the upstream response.
			statsd_count "your_product.custom_$upstream_http_x_some_custom_header" 1 
				"$upstream_http_x_some_custom_header";

			proxy_pass http://some.other.domain.com;
		}
	}
}