Cherry-pick #18955 to 7.x: Add MySQL query metricset with lightweight module and SQL helper #19847
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 #18955 to 7.x branch. Original message:
What does this PR do?
This PR adds a SQL helper (at Metricbeat level) with logic to execute SQL queries and return their results. The module can use this abstraction layer to simply pass in the SQL driver and the queries they need to execute to later create Beats events.
This PR introduce:
sql
module.sql
module.query
Metricset in MySQL module which uses the SQL helper. This Metricset is to use it as a Lightweight "parent" module.performance
metricset using thequery
metricset as Lightweight parent module. Use it as a guidance about how to make it work.Removedoverview
metricset with a bunch of key metrics, also using Lightweight modules. This is the metricset to remove of this PR.sql
module was moved to thesql
helper.Why is it important?
The way the
sql
was working was a bit limited compared to the underlying power it has. Moving it one layer up from the modules, allows the use of its logic by any module while maintaining each module functionality regarding specific DSN or security, for example, instead of introducing all that logic into thesql
module.The way it works now also allows to create metricsets on CockroachDB module using lightweight modules.
Checklist
[ ] I have made corresponding change to the default configuration filesCHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.How to test this PR locally
Related issues
Fixes: #18898
Implements: #15048