Emmett-Prometheus is an Emmett framework extension integrating prometheus client.
Emmett-Prometheus is compatible both with Emmett and Emmett55.
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)
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"
}
Emmett-prometheus is released under BSD license.