Cherry-pick #16420 to 7.x: Add filtering option for prometheus collector #16521
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.
Cherry-pick of PR #16420 to 7.x branch. Original message:
Drafting what was discussed on #15493 to start implementation specific discussions.For the time being only filters are implemented, but mappings will be added if we agree on this.
@jsoriano I preferred to add the processing on collector layer to avoid touching
GetFamilies
since it is used by many other places like thestate_*
metricsets of k8s module. Not sure if we would like to have it in there (in the helper method).What does this PR do?
This PR introduces filtering options for prometheus collector metricset.
Why is it important?
This is important when someone want to filter out metrics that come in a single response for instance in case of prometheus exporters.
This will be useful in light-modules like
ibmmq
module where currently we use script processor to filter out metrics as well as in OpenMetrics module where a user may want to explicitly define which metrics want to keep.How to test this PR locally
docker-compose up
. Then metrics should be exported athttp://localhost:9100/metrics
.And expect to see only events that match
node_filesystem_*
but also notnode_filesystem_device_*
and are notnode_filesystem_readonly
.3. Try to remove
node_filesystem_readonly
fromexclude
filters and see that this metric is included in events. One can try different combinations.Related issues