Prometheus exporter for uWSGI metrics.
make
./uwsgi_exporter <flags>
This exporter supports the multi-target pattern. This allows running a single instance of this exporter for multiple uWSGI targets.
To use the multi-target functionality, send an http request to the endpoint /probe?target=http://uwsgi1.example.com:5432 where target is set to the URI of the uWSGI instance to scrape metrics from.
On the prometheus side you can set a scrape config as follows
Please note that only http
, https
, and tcp
targets are supported (file
and unix
targets are disabled for security reasons).
scrape_configs:
- job_name: uwsgi # To get metrics about the mysql exporter’s targets
static_configs:
- targets:
# All uwsgi hostnames to monitor.
- http://uwsgi1.example.com:5432
- http://uwsgi2.example.com:5432
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
# The uwsgi_exporter host:port
replacement: localhost:9117
Name | Description |
---|---|
stats.uri | required URI for accessing uwsgi stats (currently supports: "http", "https", "unix", "tcp"). |
stats.timeout | Timeout for trying to get stats from uwsgi. (deprecated) |
timeout-offset | Offset to subtract from timeout in seconds. (default 0.25) |
collect.cores | Whether to collect cores information per uwsgi worker. WARNING may cause tremendous resource utilization when using gevent engine. (default: false) |
log.level | Logging verbosity. (default: info) |
web.config.file | Path to a web configuration file |
web.listen-address | Address to listen on for web interface and telemetry. (default: ":9117") |
web.telemetry-path | Path under which to expose metrics. |
version | Print the version information. |
The uWSGI Exporter supports TLS and basic authentication.
To use TLS and/or basic authentication, you need to pass a configuration file
using the --web.config.file
parameter. The format of the file is described
in the exporter-toolkit repository.
You can deploy this exporter using the Docker image from following registry:
For example:
docker pull timonwong/uwsgi-exporter
docker run -d -p 9117:9117 timonwong/uwsgi-exporter --stats.uri localhost:8001
(uWSGI Stats Server port, 8001 in this example, is configured in ini
uWSGI configuration files)