Allow filtering out metrics for pools with no connections #58
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new config option
filter_empty_pools
. When enabled, this option causes the exporter to not emit pool metrics for pools with no active connections (all values zero).This filtering is useful when you use PgBouncer with temporary database users: currently PgBouncer will never "forget" a user and keep reporting an empty pool for each user it has ever seen (pgbouncer/pgbouncer#1085).
Enabling this filtering speeds up metric collection and (for us) greatly reduces the amount of emitted metrics.
The new config option is added to the README and has a unit test to verify it works as described.
This PR also contains two other changes:
is
by using==
instead._filterMetricsByIncludeDatabases
and_filterMetricsByExcludeDatabases
return generators instead of lists.This way the exporter needs to loop over the results only once (when actually generating metrics), instead of once for every filter that's enabled.