Skip to content

emmett-framework/prometheus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emmett-Prometheus

Emmett-Prometheus is an Emmett framework extension integrating prometheus client.

Emmett-Prometheus is compatible both with Emmett and Emmett55.

Installation

You can install Emmett-Prometheus using pip:

pip install emmett-prometheus

And add it to your Emmett application:

from emmett_prometheus import Prometheus

app.use_extension(Prometheus)

Configuration

Here is the complete list of parameters of the extension configuration:

param default description
auto_load True Automatically inject extension on routes and expose metrics
enable_http_metrics True Enable metrics collection on HTTP routes
enable_ws_metrics True Enable metrics collection on Websocket routes
enable_sys_metrics False Enable default Prometheus client system metrics collection
metrics_route_path /metrics Path for metrics route
metrics_route_hostname Hostname for metrics route

You also have some additional customisations available (here we show the defaults):

app.config.Prometheus.http_histogram_statuses = [200, 201]
app.config.Prometheus.http_histogram_exclude_methods = ["OPTIONS"]
app.config.Prometheus.http_histogram_buckets = [
    5, 35, 100, 200, 500, 1000, "INF"
]
app.config.Prometheus.exclude_routes = []
app.config.Prometheus.metrics_names={
    "http_counter": "emmett_request_count",
    "http_histogram": "emmett_request_latency",
    "ws_gauge": "emmett_websocket_gauge",
    "ws_recv_counter": "emmett_websocket_messages_recv_count",
    "ws_send_counter": "emmett_websocket_messages_send_count"
}

License

Emmett-prometheus is released under BSD license.