Skip to main content

No project description provided

Project description

Build Status Code Climate Coverage Status

Prometheus Distributed Client

Purpose and principle

prometheus-distributed-client is aimed at shorted lived process that can expose Prometheus metrics through HTTP.

Advantages over Pushgateway

The prometheus project provides several ways of publishing metrics. Either you publish them directly like the official client allows you to do, or you push them to a pushgateway.

The first method implies you've got to keep your metrics in-memory and publishs them over http. The second method implies that you'll either have a pushgateway per process or split your metrics over all your processes to avoid overwriting your existing pushed metrics.

prometheus-distributed-client allows you to have your short lived process push metrics to a database and have another process serving them over HTTP. One of the perks of that approach is that you keep consistency over concurrent calls. (Making multiple counter increment from multiple process will be acknowledge correctly by the database).

Code examples

prometheus-distributed-client uses the base of the official client but replaces all write and read operation by database call.

Declaring and using metrics

from prometheus-distributed-client import set_redis_conn, Counter, Gauge
# we use the official clients internal architecture
from prometheus_client import CollectorRegistry

# set your own registry
REGISTRY = CollectorRegistry()
# declare metrics from prometheus-distributed-client
COUNTER = Counter('counter_metric_name', 'metric documentation',
                  [labels], registry=REGISTRY)
GAUGE = Gauge('gauge_metric_name', 'metric documentation',
                  [labels], registry=REGISTRY)

# increment a counter and set a value for a gauge
COUNTER.labels('label_value').inc()
GAUGE.labels('other_label_value').set(12)

Serving the metrics

prometheus-distributed-client use the registry system from the official client and is de facto compatible with it. If you want to register regular metrics alongside the one from prometheus-distributed-client it is totally feasible. Here is a little example of how to serv metrics from prometheus-distributed-client, but you can also refer to the documentation of the official client.

# with flask

from flask import Flask
from prometheus_client import generate_latest
# get the registry you declared your metrics in
from metrics import REGISTRY

app = Flask()

@app.route('/metrics')
def metrics():
    return generate_latest(REGISTRY)

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

prometheus_distributed_client-2.0.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prometheus_distributed_client-2.0.1-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file prometheus_distributed_client-2.0.1.tar.gz.

File metadata

  • Download URL: prometheus_distributed_client-2.0.1.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.3 Linux/6.14.0-27-generic

File hashes

Hashes for prometheus_distributed_client-2.0.1.tar.gz
Algorithm Hash digest
SHA256 0cfd4860e8cf9fb80ca3f99cf51c53a6a3f6bd24e604f76aef00c003e19d05b3
MD5 94256fa1c05d3cb41a4472ef494b6105
BLAKE2b-256 553fcfbdb7ecf7cd88106ef8027243843cf6d2438ee8acddaa1bca32396dfdec

See more details on using hashes here.

File details

Details for the file prometheus_distributed_client-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for prometheus_distributed_client-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2b6e4fa1dd4c68747adcd5a55211f7fe3b2df5494f6e16180985868ff429d007
MD5 a209576bdbf35cf83ff5d7a7cd2669d1
BLAKE2b-256 890e5d44f4b65e80ce4077b8d4c1ba1ecbf50ad664368faa84fac5f00cdec6ff

See more details on using hashes here.

Supported by

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