Pyformance

0.4 · abandoned · verified Thu Apr 16

Pyformance is a Python library for performance metrics, inspired by Coda Hale's Yammer metrics (now Dropwizard Metrics). It provides various metric types like Counters, Timers, Gauges, and Histograms, along with different reporters (e.g., Console, Graphite). The current version is 0.4, released in 2016. The project is no longer actively maintained.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize a MetricRegistry, create and interact with common metric types (Counter, Timer, Gauge), and report their values using the ConsoleReporter.

import time
from pyformance import registry, meters, reporters

# 1. Initialize a MetricRegistry
metrics = registry.MetricRegistry()

# 2. Create and use a Counter
request_counter = metrics.get_or_create_metric('app.requests.total', meters.Counter)
request_counter.inc() # Increment by 1
request_counter.inc(5) # Increment by 5

# 3. Create and use a Timer
processing_timer = metrics.get_or_create_metric('app.processing_time', meters.Timer)
with processing_timer.time():
    time.sleep(0.05) # Simulate some work

# 4. Create and use a Gauge (custom implementation for dynamic values)
class QueueSizeGauge(meters.Gauge):
    def __init__(self, queue_list):
        super().__init__()
        self._queue_list = queue_list
    def get_value(self):
        return len(self._queue_list)

my_queue_data = [1, 2, 3, 4, 5]
metrics.add_metric('app.queue.size', QueueSizeGauge(my_queue_data))

# 5. Report metrics (e.g., to console)
console_reporter = reporters.ConsoleReporter()
console_reporter.add_metric_registry(metrics)
print("\n--- Pyformance Metrics Report ---")
console_reporter.report()
print("---------------------------------")

view raw JSON →