-
Notifications
You must be signed in to change notification settings - Fork 758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fetch lock time and cpu time from performance schema #862
Fetch lock time and cpu time from performance schema #862
Conversation
9841b7b
to
4212787
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we originally intentionally left these out for cardinality reasons. Would you mind documenting how they they are additionally useful in the PR description? That way we can have better history of "why" these are added by default.
Hey @SuperQ thanks for having a look! These metrics would have the same cardinality (in terms of labels values) as the other sibling metrics created out of the query |
It's about adding new metrics in general. If you can explain what the metrics are useful for, that's all I'm asking about. Exposing the quantiles is less useful, as they can't be aggregated between MySQL servers. |
I've added a short note on the PR description, could you please check that? |
Needs a rebase. |
Extend the query on `events_statements_summary_by_digest` to fetch `SUM_LOCK_TIME` and `SUM_CPU_TIME` and return them as counters. Signed-off-by: Cristian Greco <cristian@regolo.cc>
4212787
to
3225ffa
Compare
Thanks so much! Just rebased. |
I had a think about the history of this. I wish we had written down the queries we experimented with in production at the time. I think we tried adding CPU time originally, but we didn't really find it useful compared to total query time. Lock time is probably a good one to have tho. If cpu time = total time - lock time, maybe we don't need cpu time. |
@SuperQ fair enough, if you prefer I can close this PR and open a new one adding just lock time? |
I'm mostly looking for up-to-date expertise in MySQL here. It's been a while since I looked deeply at this data. I assume you've got data on the uselessness of these metrics. |
So I'm not sure that |
Ok, I guess this is fine as-is. If people complain about the additional cardinality we can look it over again. |
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
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 <cristian@regolo.cc>
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 <cristian@regolo.cc>
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 <cristian@regolo.cc>
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 <cristian@regolo.cc>
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 <cristian@regolo.cc>
* [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 <superq@gmail.com>
* [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 <superq@gmail.com>
Extend the query on
events_statements_summary_by_digest
to fetchSUM_LOCK_TIME
andSUM_CPU_TIME
and return them as counters. These are useful to report time spent running on the cpu (e.g. to sort results or run computations) vs waiting on locks (e.g. to acquire write lock on a table or row), by query digest.