Skip to content

Commit 16ce532

Browse files
committed
Fetch all PFS queries in backgroud without order by
1 parent 04c2ed5 commit 16ce532

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

cluster/srv.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ type ServerMonitor struct {
172172
BinaryLogFiles map[string]uint `json:"binaryLogFiles"`
173173
MaxSlowQueryTimestamp int64 `json:"maxSlowQueryTimestamp"`
174174
IsInSlowQueryCapture bool
175+
IsInPFSQueryCapture bool
175176
}
176177

177178
type serverList []*ServerMonitor
@@ -728,20 +729,14 @@ func (server *ServerMonitor) Refresh() error {
728729
server.EngineInnoDB, logs, err = dbhelper.GetEngineInnoDBVariables(server.Conn)
729730
server.ClusterGroup.LogSQL(logs, err, server.URL, "Monitor", LvlDbg, "Could not get engine innodb status %s %s", server.URL, err)
730731
}
731-
if server.ClusterGroup.Conf.MonitorPFS && server.HavePFSSlowQueryLog && server.HavePFS {
732-
// GET PFS query digest
733-
server.PFSQueries, logs, err = dbhelper.GetQueries(server.Conn)
734-
server.ClusterGroup.LogSQL(logs, err, server.URL, "Monitor", LvlDbg, "Could not get queries %s %s", server.URL, err)
735-
}
732+
go server.GetPFSQueries()
733+
go server.GetSlowLogTable()
736734
if server.HaveDiskMonitor {
737735
server.Disks, logs, err = dbhelper.GetDisks(server.Conn, server.DBVersion)
738736
}
739737
if server.ClusterGroup.Conf.MonitorScheduler {
740738
server.CheckDisks()
741739
}
742-
if server.HasLogsInSystemTables() {
743-
go server.GetSlowLogTable()
744-
}
745740

746741
} // End not PG
747742

cluster/srv_get.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,23 @@ func (server *ServerMonitor) GetErrorLog() s18log.HttpLog {
384384
return server.ErrorLog
385385
}
386386

387+
func (server *ServerMonitor) GetPFSQueries() {
388+
if !(server.ClusterGroup.Conf.MonitorPFS && server.HavePFSSlowQueryLog && server.HavePFS) {
389+
return
390+
}
391+
if server.IsInPFSQueryCapture {
392+
return
393+
}
394+
server.IsInPFSQueryCapture = true
395+
defer func() { server.IsInPFSQueryCapture = false }()
396+
397+
var err error
398+
logs := ""
399+
// GET PFS query digest
400+
server.PFSQueries, logs, err = dbhelper.GetQueries(server.Conn)
401+
server.ClusterGroup.LogSQL(logs, err, server.URL, "Monitor", LvlDbg, "Could not get queries %s %s", server.URL, err)
402+
}
403+
387404
func (server *ServerMonitor) GetPFSStatements() []dbhelper.PFSQuery {
388405
var rows []dbhelper.PFSQuery
389406
for _, v := range server.PFSQueries {

utils/dbhelper/dbhelper.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1551,9 +1551,11 @@ func GetQueries(db *sqlx.DB) (map[string]PFSQuery, string, error) {
15511551
A.SUM_ROWS_EXAMINED AS rows_scanned,
15521552
round(A.sum_timer_wait/1000000000000, 6) as value
15531553
FROM performance_schema.events_statements_summary_by_digest A
1554-
WHERE A.digest_text is not null
1555-
ORDER BY A.sum_timer_wait desc
1556-
LIMIT 50`
1554+
WHERE A.digest_text is not null`
1555+
1556+
// Do not order as it's eavy fot temporary directory
1557+
//ORDER BY A.sum_timer_wait desc
1558+
//LIMIT 50`
15571559

15581560
rows, err := db.Queryx(query)
15591561
if err != nil {

0 commit comments

Comments
 (0)