Skip to main content

Prometheus integration for blacksheep

Project description

Blacksheep Prometheus

Build Status codecov Package Version PyPI Version

Introduction

Prometheus integration for Blacksheep.

Requirements

  • Python 3.7+
  • Blacksheep 1.0.7+

Installation

$ pip install blacksheep-prometheus

Usage

A complete example that exposes prometheus metrics endpoint under /metrics/ path.

from blacksheep.server import Application
from blacksheep_prometheus import PrometheusMiddleware, metrics

app = Application()

app.middlewares.append(PrometheusMiddleware())
app.router.add_get('/metrics/', metrics)

Options

Option name Description Default value
requests_total_metric_name name of metric for total requests 'backsheep_requests_total'
responses_total_metric_name name of metric for total responses 'backsheep_responses_total'
request_time_seconds_metric_name name of metric for request timings 'backsheep_request_time_seconds'
exceptions_metric_name name of metric for exceptions 'backsheep_exceptions'
requests_in_progress_metric_name name of metric for in progress requests 'backsheep_requests_in_progress'
filter_paths list of path's where do not need to collect metrics []

Custom metrics

blacksheep-prometheus will export all the prometheus metrics from the process, so custom metrics can be created by using the prometheus_client API.

Example:

from prometheus_client import Counter
from blacksheep.server.responses import redirect

REDIRECT_COUNT = Counter("redirect_total", "Count of redirects", ("from_view",))

async def some_view(request):
    REDIRECT_COUNT.labels(from_view="some_view").inc()
    return redirect("https://example.com")

The new metric will now be included in the the /metrics endpoint output:

...
redirect_total{from_view="some_view"} 2.0
...

Contributing

This project is absolutely open to contributions so if you have a nice idea, create an issue to let the community discuss it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blacksheep-prometheus-0.1.6.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

blacksheep_prometheus-0.1.6-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file blacksheep-prometheus-0.1.6.tar.gz.

File metadata

  • Download URL: blacksheep-prometheus-0.1.6.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.10 Linux/5.8.0-1033-azure

File hashes

Hashes for blacksheep-prometheus-0.1.6.tar.gz
Algorithm Hash digest
SHA256 de18ee103a2a0dfc95b5ac317f1ce176ac299211c0ba1afa082c8b4f8a66f3c6
MD5 2b0053def2c5cf765c48f16223e5dc4c
BLAKE2b-256 2a309baebd7c340ac8d681e0b89fe692211e215442d06bfca81ce2fe137007fa

See more details on using hashes here.

File details

Details for the file blacksheep_prometheus-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for blacksheep_prometheus-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9bcf226d477e4ad119d6d3cac07472baf49a514a61409a4d0150d181d17415a2
MD5 71ac59b254b32132ac16967e80856e6b
BLAKE2b-256 38fa05eb1bea879570c3c7fd3328a26019ee239dc706865c8bee6bc504903754

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page