Skip to content

Conversation

@mmontes11
Copy link
Contributor

@mmontes11 mmontes11 commented Mar 17, 2024

Hey @SuperQ ! First of all, I wanted to say thank you for the great work done in this exporter and for the effort maintaining it 🙏🏻

In mariadb-operator, we are currently provisioning mysqld_exporter as a source of metrics for our MariaDB resources. The recent introduction of the multi-target support was a massive improvement for us, as we are able to provision a single mysqld_exporter Deployment that exposes the metrics of all the MariaDB replicas. This implies that we no longer need mysqld_exporter sidecars in our MariaDB StatefulSet, and more importantly, we can upgrade the exporters without affecting the MariaDB availability.

Driven by the curiosity of how the /probe endpoint was implemented, I've realized that it doesn't support configuring the Prometheus scrape timeout as the /metrics endpoint currently does. This PR separates this functionality into a reusable function, applicable to both /metrics and /probe endpoints. It is my very first PR here, so let me know if I'm missing something!

I've also noticed that other exporters, for instance prometheus/blackbox_exporter, do support this feature in their /probe handler, so I guess it would be worth supporting it here as well?
https://github.com/prometheus/blackbox_exporter/blob/7c048e864473ce6b0c0820c484a445de2d104998/prober/handler.go#L66

Exposing metrics in mariadb-operator without mysqld_exporter would have been way more difficult, so again I wanted to express my gratitude, let me know if there is any way I can keep collaborating with this project!

@mmontes11
Copy link
Contributor Author

Gentle ping @SuperQ 🙏🏻

Copy link
Member

@SuperQ SuperQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, the refactoring in the getScrapeTimeoutSeconds() function is a lot easier to read.

@mmontes11
Copy link
Contributor Author

@SuperQ no problem! Thanks for the review 🙏🏻

@SuperQ SuperQ merged commit f3d4ccd into prometheus:main Apr 10, 2024
@mmontes11 mmontes11 deleted the probe-scrape-timeout branch April 10, 2024 15:35
cristiangreco added a commit to grafana/mysqld_exporter that referenced this pull request Nov 8, 2024
Changes:
* [FEATURE] Support for prometheus scrape timeout in probe endpoint prometheus#828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax prometheus#837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema prometheus#862
* [ENHANCEMENT] Add the instance struct to handle connections prometheus#859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib prometheus#844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema prometheus#853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 prometheus#860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days prometheus#841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches prometheus#833
* [BUGFIX] Fix race condition in ReloadConfig prometheus#760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode prometheus#684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 prometheus#683
* [BUGFIX] Update docker registry link in README.md prometheus#813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling prometheus#843
@cristiangreco cristiangreco mentioned this pull request Nov 8, 2024
cristiangreco added a commit to grafana/mysqld_exporter that referenced this pull request Nov 8, 2024
Changes:
* [FEATURE] Support for prometheus scrape timeout in probe endpoint prometheus#828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax prometheus#837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema prometheus#862
* [ENHANCEMENT] Add the instance struct to handle connections prometheus#859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib prometheus#844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema prometheus#853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 prometheus#860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days prometheus#841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches prometheus#833
* [BUGFIX] Fix race condition in ReloadConfig prometheus#760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode prometheus#684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 prometheus#683
* [BUGFIX] Update docker registry link in README.md prometheus#813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling prometheus#843

Signed-off-by: Cristian Greco <[email protected]>
cristiangreco added a commit to grafana/mysqld_exporter that referenced this pull request Nov 8, 2024
Changes:
* [FEATURE] Support for prometheus scrape timeout in probe endpoint prometheus#828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax prometheus#837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema prometheus#862
* [ENHANCEMENT] Add the instance struct to handle connections prometheus#859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib prometheus#844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema prometheus#853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 prometheus#860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days prometheus#841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches prometheus#833
* [BUGFIX] Fix race condition in ReloadConfig prometheus#760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode prometheus#684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 prometheus#683
* [BUGFIX] Update docker registry link in README.md prometheus#813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling prometheus#843

Signed-off-by: Cristian Greco <[email protected]>
cristiangreco added a commit to grafana/mysqld_exporter that referenced this pull request Nov 8, 2024
Changes:
* [CHANGE] Replace logging library go-kit/log with slog prometheus#885
* [FEATURE] Support for prometheus scrape timeout in probe endpoint prometheus#828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax prometheus#837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema prometheus#862
* [ENHANCEMENT] Add the instance struct to handle connections prometheus#859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib prometheus#844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema prometheus#853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 prometheus#860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days prometheus#841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches prometheus#833
* [BUGFIX] Fix race condition in ReloadConfig prometheus#760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode prometheus#684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 prometheus#683
* [BUGFIX] Update docker registry link in README.md prometheus#813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling prometheus#843
* [BUGFIX] info_schema_tables: do not collect the sys schema prometheus#879

Signed-off-by: Cristian Greco <[email protected]>
cristiangreco added a commit to grafana/mysqld_exporter that referenced this pull request Nov 8, 2024
Changes:
* [CHANGE] Replace logging library go-kit/log with slog prometheus#875
* [FEATURE] Support for prometheus scrape timeout in probe endpoint prometheus#828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax prometheus#837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema prometheus#862
* [ENHANCEMENT] Add the instance struct to handle connections prometheus#859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib prometheus#844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema prometheus#853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 prometheus#860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days prometheus#841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches prometheus#833
* [BUGFIX] Fix race condition in ReloadConfig prometheus#760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode prometheus#684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 prometheus#683
* [BUGFIX] Update docker registry link in README.md prometheus#813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling prometheus#843
* [BUGFIX] info_schema_tables: do not collect the sys schema prometheus#879

Signed-off-by: Cristian Greco <[email protected]>
SuperQ pushed a commit that referenced this pull request Nov 8, 2024
Changes:
* [CHANGE] Replace logging library go-kit/log with slog #875
* [FEATURE] Support for prometheus scrape timeout in probe endpoint #828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax #837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema #862
* [ENHANCEMENT] Add the instance struct to handle connections #859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib #844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema #853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 #860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days #841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches #833
* [BUGFIX] Fix race condition in ReloadConfig #760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode #684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 #683
* [BUGFIX] Update docker registry link in README.md #813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling #843
* [BUGFIX] info_schema_tables: do not collect the sys schema #879

Signed-off-by: Cristian Greco <[email protected]>
SuperQ added a commit that referenced this pull request Nov 8, 2024
* [CHANGE] Replace logging library go-kit/log with slog #875
* [FEATURE] Support for prometheus scrape timeout in probe endpoint #828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax #837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema #862
* [ENHANCEMENT] Add the instance struct to handle connections #859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib #844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema #853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 #860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days #841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches #833
* [BUGFIX] Fix race condition in ReloadConfig #760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode #684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 #683
* [BUGFIX] Update docker registry link in README.md #813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling #843
* [BUGFIX] info_schema_tables: do not collect the sys schema #879

Signed-off-by: SuperQ <[email protected]>
@SuperQ SuperQ mentioned this pull request Nov 8, 2024
SuperQ added a commit that referenced this pull request Nov 8, 2024
* [CHANGE] Replace logging library go-kit/log with slog #875
* [FEATURE] Support for prometheus scrape timeout in probe endpoint #828
* [ENHANCEMENT] Support MySQL 8.4 replicas syntax #837
* [ENHANCEMENT] Fetch lock time and cpu time from performance schema #862
* [ENHANCEMENT] Add the instance struct to handle connections #859
* [ENHANCEMENT] Optimize code by using built-in constants in the standard lib #844
* [BUGFIX] Fix fetching tmpTables vs tmpDiskTables from performance_schema #853
* [BUGFIX] Skip SPACE_TYPE column for MariaDB >=10.5 #860
* [BUGFIX] Fixed parsing of timestamps with non-zero padded days #841
* [BUGFIX] Fix auto_increment metric collection errors caused by using collation in INFORMATION_SCHEMA searches #833
* [BUGFIX] Fix race condition in ReloadConfig #760
* [BUGFIX] Change processlist query to support ONLY_FULL_GROUP_BY sql_mode #684
* [BUGFIX] replication_applier_status_by_worker requires mysql 8.0 #683
* [BUGFIX] Update docker registry link in README.md #813
* [BUGFIX] Fix Docker run command and update documentation for cnf file handling #843
* [BUGFIX] info_schema_tables: do not collect the sys schema #879

Signed-off-by: SuperQ <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants