Skip to content

Commit cdc755e

Browse files
authored
[DBMON-4818] Fix query for sql replica threads (#20172)
* Fix query for sql replica threads * Add changelog * Fix formatting * Clarify changelog * Remove unnecessary leading %
1 parent 8ab831a commit cdc755e

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

mysql/changelog.d/20172.fixed

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixes incorrect replica counts when querying from performance_schema.threads

mysql/datadog_checks/mysql/mysql.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@
6969
SQL_GROUP_REPLICATION_METRICS_8_0_2,
7070
SQL_GROUP_REPLICATION_PLUGIN_STATUS,
7171
SQL_INNODB_ENGINES,
72-
SQL_PROCESS_LIST,
7372
SQL_QUERY_SCHEMA_SIZE,
7473
SQL_QUERY_SYSTEM_TABLE_SIZE,
7574
SQL_QUERY_TABLE_ROWS_STATS,
7675
SQL_QUERY_TABLE_SIZE,
76+
SQL_REPLICA_PROCESS_LIST,
77+
SQL_REPLICA_WORKER_THREADS,
7778
SQL_REPLICATION_ROLE_AWS_AURORA,
7879
SQL_SERVER_ID_AWS_AURORA,
79-
SQL_WORKER_THREADS,
8080
show_replica_status_query,
8181
)
8282
from .statement_samples import MySQLStatementSamples
@@ -1183,9 +1183,9 @@ def _get_replica_status(self, db, above_560, nonblocking):
11831183
if above_560 and nonblocking:
11841184
# Query `performance_schema.threads` instead of `
11851185
# information_schema.processlist` to avoid mutex impact on performance.
1186-
cursor.execute(SQL_WORKER_THREADS)
1186+
cursor.execute(SQL_REPLICA_WORKER_THREADS)
11871187
else:
1188-
cursor.execute(SQL_PROCESS_LIST)
1188+
cursor.execute(SQL_REPLICA_PROCESS_LIST)
11891189
replica_results = cursor.fetchall()
11901190
replicas = 0
11911191
for _ in replica_results:

mysql/datadog_checks/mysql/queries.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@
4141
WHERE schema_name IS NOT NULL
4242
GROUP BY schema_name"""
4343

44-
SQL_WORKER_THREADS = "SELECT THREAD_ID, NAME FROM performance_schema.threads WHERE NAME LIKE '%worker'"
44+
SQL_REPLICA_WORKER_THREADS = (
45+
"SELECT THREAD_ID, NAME FROM performance_schema.threads WHERE PROCESSLIST_COMMAND LIKE 'Binlog dump%'"
46+
)
4547

46-
SQL_PROCESS_LIST = "SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND LIKE '%Binlog dump%'"
48+
SQL_REPLICA_PROCESS_LIST = "SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND LIKE 'Binlog dump%'"
4749

4850
SQL_INNODB_ENGINES = """\
4951
SELECT engine

0 commit comments

Comments
 (0)