- Validate that metric names don't collide with builtin ones.
- Perform database connect/disconnect under lock (#28).
- Add support for queries to run at connection (#31).
- [snap,docker] Support IBM DB2 (#14).
- When validating config, warn about database and metrics that are not used in any query.
- Support extra per-database labels for metrics. All databases must define the same set of labels (#27).
- Don't disable queries failing because of
OperationalError
as it might not be a fatal error (#25).
- Fix validation for entries in the
queries
section for config file. - [snap,docker] Add MSSQL support.
- Support only named parameters (e.g.:
:param
) in queries (#21, #24). - Add JSON-schema validation for config file (#23).
- Validate at startup if database engines from DSNs are supported and corresponding modules are available.
- Check that names for queries
parameters
match the ones in queries SQL. - Add
--check-only
command line option to just validate configuration. - Drop support for matching query columns positionally, only support name match. This is to avoid confusing behavior with positional match, and make queries more explicit.
- NOTE:
some of the changes above for query definitions are backwards incompatible, thus queries might need updating. Specifically:
- Only named parameters with the
:param
style are now supported, queries using positional parameters or other styles of named parameters need to be udpated. - Literal
:
at the beginning of a word need to be escaped (with backslash) to avoid confusion with parameter markers. Colons that appear inside words don't need to be escaped. - Column names for query results must now always match metric and label names
involved in the query. Position-based match for queries without labels is no
longer supported. Queries can be updated adding
AS <metric_name|label_name>
expressions.
- Only named parameters with the
- Convert
Decimal
query results to float (#19).
- Fix failure when multiple query columns have the same name (#18).
- [docker] Add Dockerfile (#17).
- Track doomed queries on a per-database basis (#16).
- Add
--version
option.
- Support passing sets of parameters for queries.
- Enable autocommit on connection (#10).
- Support custom labels in metrics, setting values from queries result (#7).
- Suport matching metrics by query result column name instead of order.
- Disable queries that will certainly always fail (e.g. because of invalid. returned column names/number) (#6).
- Support disconnecting from after each query (#8).
- Rework tests to use actualy SQLite in-memory databases instead of fakes.
- Add a
queries
anddatabase_errors
metrics lebeled by database (#1). - Support database DSNs defined as
env:<VARNAME>
to supply the dns from the environment (#5).
- Change default port to 9560 (to make it unique).
- Drop support for Python 3.5.
- Add support for
enum
metrics. - [snap] Add initial snap support.
- Rework project setup and use pytest.
- Support for python3.7.
- Use asynctest for asyncronous tests.
- Updated toolrack dependency.
- Support aperiodic queries, which are run at every request for the metrics endpoint.
- Fix tests for latest prometheus_aioexporter.
- Documentation cleanups (and conversion to reST).
- Switch to SQLAlchemy. Multiple database engines are now supported.
- Needed database libraries must now be installed separately, as there is no explicit dependency in SQLAlchemy.
- Use connection pools for queries.
- Replace aiopg with asyncpg. The database dsn string is now specified as a
postgres://
URI.
- Replace Makefile with tox.
- Fix setup.py issues.
- First release.