Metadata-Version: 2.1
Name: faustprometheus
Version: 0.0.6
Summary: WoodMac's Faust Prometheus Library
Home-page: https://github.com/woodmac/faust-prometheus
Author: Wood Mackenzie
Author-email: mr.kecskes@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: System :: Monitoring
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

# Faust Prometheus

This library uses sensors of Faust. Those sensors are events based. Our monitor implements that interface and hooks some actions when those events happen. That allows us to create our own prometheus `Counters`, `Gauges` and `Histograms`.
I created some predefined metrics, but we can expand on them in the future.

## Installation

To use this library in your faust project just add `faustprometheus` or install it through pip:


    pip install faustprometheus
    

## Usage

Add `PrometheusMonitor` to the app as seen below:
 
 
        import faust
        from faustprometheus.monitor import PrometheusMonitor

        app = faust.App('example', broker='kafka://')
        app.monitor = PrometheusMonitor(app)
        
        
You can also configure some global options to monitor through `PrometheusMonitorConfig`,
such as 2 levels of prefixes, through `namespace` and `subsystem`. The path exposing prometheus metrics can be set through `metrics` config, with `/metrics` as default value.
I added labels to config, but are not applied to monitor due to lack of my understanding of faust sensors and prometheus.


        from faustprometheus.config import PrometheusMonitorConfig

        monitor_config = PrometheusMonitorConfig(
            path='/metrics',
            namespace='faust',
            subsystem='foo-app',
            labels=['v2.3', 'prod']
            )        
            
## Tests

Library is fully unit tested and can be run by


        pytest
        


