PyMetrics - Versatile Metrics Collection for Python

Release: 1.0.0

PyMetrics is versatile metrics collection library for Python that encapsulates the collection of counters, gauges, histograms, and timers into a generic interface with pluggable publishers so that you can helpfully instrument your applications without suffering vendor lock.

Publishing metrics is a straightforward process involving two steps. First, configure your metrics and publisher(s):

    'version': 2,
    'error_logger_name': 'pymetrics',
    'publishers': [
            'path': 'pymetrics.publishers.datadog.DogStatsdPublisher',
            'kwargs': {
                'host': 'localhost',
                'port': 8135,

Then, use a pymetrics.recorders.base.MetricsRecorder in your application to collect and publish:

from pymetrics.recorders.default import DefaultMetricsRecorder

metrics = DefaultMetricsRecorder(config=settings.METRICS_CONFIG)


metrics.gauge('', tag_name1='tag_value1', tag_name2='tag_value2').set(12)


with metrics.timer(''):

cumulative_timer = metrics.timer('')
for item in items:
    with cumulative_timer:


Provided publisher plugins include Statsd, Datadog, Python Logging, SQLite, and a null publisher. Writing your own is simple and we encourage you to share your work with the community by submitting a pull request.


PyMetrics is licensed under the Apache License, version 2.0.

Indices, Tables, and Searching

Copyright © 2019 Eventbrite, freely licensed under Apache License, Version 2.0.

Documentation generated 2019 November 22 14:03 UTC.