All notable changes to this project will be documented in this file.
The first number of the version is the year. The second number is incremented with each release, starting at 1 for each year. The third number is when we need to start branches for older releases (only for emergencies).
prometheus-async has a very strong backwards-compatibility policy. Generally speaking, you shouldn’t ever be afraid of updating.
Whenever breaking changes are needed, they are:
…announced here in the changelog.
…the old behavior raises a
DeprecationWarningfor a year (if possible).
…are done with another announcement in the changelog.
Protocolis deprecated and will be removed in a year. It was never a public API. #29
Due to improvements of
prometheus_client’s type hints, we don’t block them from Mypy anymore.
The type hints for
Support for Python 2.7, 3.5, and 3.6 has been dropped.
The loop argument has been removed from
Revert the switch to decorator.py since it turned out to be a very breaking change. Please note that the now-current release of wrapt 1.11.0 has a memory leak so you should block it in your lockfile.
Sorry for the inconvenience this has caused!
Dropped most dependencies and switched to decorator.py to avoid a C dependency (wrapt) that produces functions that can’t be pickled.
prometheus_client 0.0.18 or newer is now required.
Restored compatibility with prometheus_client 0.5.
The HTTP access log when using
prometheus_async.start_http_server()is disabled now. It was activated accidentally when moving to aiohttp’s application runner APIs.
Passing a loop argument to
prometheus_async.aio.start_http_server()is a no-op and raises a
Port to aiohttp’s application runner APIs to avoid those pesky deprecation warnings. As a consequence, the loop argument has been removed from internal APIs and became a no-op in public APIs.
Python 3.4 is no longer supported.
aiohttp 3.0 or later is now required for aio metrics exposure.
python-consul is no longer required for asyncio Consul service discovery. A plain aiohttp is enough now.
prometheus_async.aio.webnow requires aiohttp 2.0 or later.
The thread created by
prometheus_async.aio.start_http_server_in_thread()has a human-readable name now.
Fixed compatibility with aiohttp 2.3.
Set proper content type header for the root redirection page.
prometheus_async.aio.web.start_http_server()now passes the loop argument to
Application’s initializer. This fixes a “loop argument is deprecated” warning.
Using aiohttp older than 0.21 is now deprecated.
prometheus_async.aio.webnow supports aiohttp 2.0.
Fix monotonic timer on Python 2. #7
When using the aiohttp metrics exporter, create the web application using an explicit loop argument. #6
Service discovery deregistration is optional now.