Metadata-Version: 2.1
Name: uwsgi-prometheus
Version: 1.0.0
Summary: uWSGI stats exporter for Prometheus
Home-page: https://github.com/GlobalRadio/uwsgi-prometheus
Author: Chris Graham
Author-email: chris.graham@global.com
License: MIT
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE

# uWSGI Prometheus

A uWSGI stats exporter for Prometheus that integrates directly into an existing uWSGI app

# Installation

Install using `pip`:

    pip install uwsgi-prometheus

Enable the http stats endpoint in your uWSGI config: 

[https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html](https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html)

Add the following in your `uwsgi.py`:

    from prometheus_client.core import REGISTRY
    from uwsgi_prometheus.collectors import UWSGIStatsCollector

    REGISTRY.register(UWSGIStatsCollector())

The following stats will then be added to your existing metrics endpoint:

- **uwsgi_listen_queue_requests** - Number of requests in the uWSGI listen queue
- **uwsgi_requests_total** - Total number of uWSGI requests across all workers  
- **uwsgi_harakiris_total** - Total number of harakiris across all workers  

# Configuration

A few configuration options are available on the collector:

- **stats_url** - The URL that uWSGI is exposing stats on `Default: http://127.0.0.1:1717`
- **timeout** - The timeout for fetching stats `Default: 2`
- **prefix** - A prefix for the exported metrics `Default: ''`

```
REGISTRY.register(UWSGIStatsCollector(
    stats_url='http://127.0.0.1:1717',
    timeout=2,
    prefix=''
))
```
