3.2.1 (unreleased)

  • Nothing changed yet.

3.2.0.post0 (2021-09-28)

  • Add Windows wheels for 3.9 and 3.10.

3.2.0 (2021-09-28)

  • Add support for Python 3.10.

  • Drop support for Python 3.5.

  • Add aarch64 binary wheels.

3.1.0 (2021-02-04)

  • Add support for Python 3.8 and 3.9.

  • Move to GitHub Actions from Travis CI.

  • Support PyHamcrest 1.10 and later. See issue 26.

  • The FakeStatsDClient for testing is now always true whether or not any observations have been seen, like the normal clients. See issue.

  • Add support for StatsD sets, counters of unique events. See PR 30.

3.0.0 (2019-09-03)

  • Drop support for EOL Python 2.6, 3.2, 3.3 and 3.4.

  • Add support for Python 3.5, 3.6, and 3.7.

  • Compile the performance-sensitive parts with Cython, leading to a 10-30% speed improvement. See

  • Caution: Metric names are enforced to be native strings (as a result of Cython compilation); they’ve always had to be ASCII-only but previously Unicode was allowed on Python 2. This is usually automatically the case when used as a decorator. On Python 2 using from __future__ import unicode_literals can cause problems (raising TypeError) when manually constructing Metric objects. A quick workaround is to set the environment variable PERFMETRICS_PURE_PYTHON before importing perfmetrics.

  • Make decorated functions and methods configurable at runtime, not just compile time. See

  • Include support for testing applications instrumented with perfmetrics in perfmetrics.testing. This was previously released externally as nti.fakestatsd. See

  • Read the PERFMETRICS_DISABLE_DECORATOR environment variable when perfmetrics is imported, and if it is set, make the decorators @metric, @metricmethod, @Metric(...) and @MetricMod(...) return the function unchanged. This can be helpful for certain kinds of introspection tests. See

2.0 (2013-12-10)

  • Added the @MetricMod decorator, which changes the name of metrics in a given context. For example, @MetricMod('xyz.%s') adds a prefix.

  • Removed the “gauge suffix” feature. It was unnecessarily confusing.

  • Timing metrics produced by @metric, @metricmethod, and @Metric now have a “.t” suffix by default to avoid naming conflicts.

1.0 (2012-10-09)

  • Added ‘perfmetrics.tween’ and ‘perfmetrics.wsgi’ stats for measuring request timing and counts.

0.9.5 (2012-09-22)

  • Added an optional Pyramid tween and a similar WSGI filter app that sets up the Statsd client for each request.

0.9.4 (2012-09-08)

  • Optimized the use of reduced sample rates.

0.9.3 (2012-09-08)

  • Support the STATSD_URI environment variable.

0.9.2 (2012-09-01)

  • Metric can now be used as either a decorator or a context manager.

  • Made the signature of StatsdClient more like James Socol’s StatsClient.

0.9.1 (2012-09-01)

  • Fixed package metadata.

0.9 (2012-08-31)

  • Initial release.