* chore!: adopt log/slog, drop go-kit/log
Requires: prometheus/common#697
This PR includes:
- linter updates to enable `sloglint` linter
- Go dep updates for prometheus/{client_golang,common,exporter-toolkit}
libs
- refactorings to adopt log/slog in favor of go-kit/log
The bulk of this PR was automated by the following script which is being
used to aid in converting the various exporters/projects to use slog:
https://gist.github.com/tjhop/49f96fb7ebbe55b12deee0b0312d8434
Builds and passes tests locally with go workspaces and up-to-date main
branch of prometheus/common.
Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
* build(deps): bump prometheus/common to v0.60.0
Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
---------
Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
The intent is to use the instance struct to hold the connection
to the database as well as metadata about the instance:
- version
- flavor (mariadb or mysql)
Change is similar to prometheus-community/postgres_exporter#785
Signed-off-by: Vlad Gusev <vlad.esten@gmail.com>
The query introduced with #523 performs poorly when there
are sufficient numbers of columns in `information_schema.columns`.
* Added using the `table_schema` as a filter
* Added limit to the query
Signed-off-by: cezmunsta <github@incoming-email.co.uk>
Some log messages were made more consistent.
Logging of DSN was removed, as it may contain a password.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io>
* Add Version method to Scraper interface.
* Skip scrapers for unsupported MySQL versions.
Signed-off-by: Alexey Palazhchenko <alexey.palazhchenko@percona.com>
Add label aggregation for innodb_metrics buffer subsystem.
* Total can be ignored as it is an aggregation of data+misc+free
* Dirty pages are not aggregateable, keep as a separate metric.
For information_schema.innodb_metrics we can split out labels based on
the type of buffer page IO operation in the "buffer_page_io" subsystem.
* Simplify scrapeInnodbMetrics() by casting value to float64.
* Test for broken metric output from MySQL.
* Supress log messages in the test.