Skip to content

markuslindenberg/nginx_request_exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nginx Request Exporter for Prometheus

This is a Prometheus exporter for Nginx requests.

In contrast to existing exporters nginx_request_exporter does not scrape the stub status module for server status but records statistics for HTTP requests.

By default nginx_request_exporter listens on port 9147 for HTTP requests.

Installation

Using go get

go get github.com/markuslindenberg/nginx_request_exporter

Using Docker

docker pull markuslindenberg/nginx_request_exporter
docker run --rm -p 9147:9147 -p 9514:9514/udp markuslindenberg/nginx_request_exporter

Configuration

nginx_request_exporter consumes access log records using the syslog protocol. Nginx needs to be configured to log to nginx_request_exporter's syslog port. To enable syslog logging add a access_log statement to your Nginx configuration:

access_log syslog:server=127.0.0.1:9514 prometheus;

Log format

nginx_request_exporter uses a custom log format that needs to be defined in the http context.

The format has to only include key/value pairs:

  • A key/value pair delimited by a colon denotes a metric name&value
  • A key/value pair delimited by a equal sign denotes a label name&value that is added to all metrics.

Example:

log_format prometheus 'time:$request_time status=$status host="$host" method="$request_method" upstream="$upstream_addr"';

Multiple metrics can be recorded and all variables available in Nginx can be used. Currently nginx_request_exporter has to be restarted when the log format is changed.

About

Nginx Request Exporter for Prometheus

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages