From 71a164c272354744c5523edf03d996f58011fbf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20=C4=8Ctvrtka?= Date: Mon, 17 Feb 2025 15:56:10 +0100 Subject: [PATCH] PMM-9288 Changes. --- src/go/mongolib/stats/stats.go | 59 +++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/src/go/mongolib/stats/stats.go b/src/go/mongolib/stats/stats.go index 31b3edf3..c8592ec0 100644 --- a/src/go/mongolib/stats/stats.go +++ b/src/go/mongolib/stats/stats.go @@ -97,7 +97,6 @@ func (s *Stats) Add(doc proto.SystemProfile) error { AppName: doc.AppName, Client: doc.Client, User: doc.User, - Database: strings.Split(doc.Ns, ".")[0], Comments: doc.Comments, TimeStamp: doc.Ts, } @@ -229,7 +228,6 @@ type QueryInfoAndCounters struct { AppName string Client string User string - Database string Comments string LGlobalAcquireCountRShared int @@ -273,6 +271,7 @@ type totalCounters struct { QueryTime float64 Bytes float64 DocsExamined float64 + KeysExamined float64 } type QueryStats struct { @@ -304,7 +303,6 @@ type QueryStats struct { AppName string Client string User string - Database string Comments string LGlobalAcquireCountRShared int @@ -332,20 +330,38 @@ type Statistics struct { func countersToStats(query QueryInfoAndCounters, uptime int64, tc totalCounters) QueryStats { queryStats := QueryStats{ - Count: query.Count, - ID: query.ID, - Operation: query.Operation, - Query: query.Query, - Fingerprint: query.Fingerprint, - Scanned: calcStats(query.NScanned), - DocsExamined: calcStats(query.DocsExamined), - Returned: calcStats(query.NReturned), - QueryTime: calcStats(query.QueryTime), - ResponseLength: calcStats(query.ResponseLength), - FirstSeen: query.FirstSeen, - LastSeen: query.LastSeen, - Namespace: query.Namespace, - QPS: float64(query.Count) / float64(uptime), + Count: query.Count, + ID: query.ID, + Operation: query.Operation, + Query: query.Query, + Fingerprint: query.Fingerprint, + Scanned: calcStats(query.NScanned), + Returned: calcStats(query.NReturned), + QueryTime: calcStats(query.QueryTime), + ResponseLength: calcStats(query.ResponseLength), + FirstSeen: query.FirstSeen, + LastSeen: query.LastSeen, + Namespace: query.Namespace, + QPS: float64(query.Count) / float64(uptime), + PlanSummary: query.PlanSummary, + CollScanCount: query.CollScanCount, + CollScanSum: query.CollScanSum, + DocsExamined: calcStats(query.DocsExamined), + KeysExamined: calcStats(query.KeysExamined), + TimeStamp: query.TimeStamp, + QueryHash: query.QueryHash, + AppName: query.AppName, + Client: query.Client, + User: query.User, + Comments: query.Comments, + LGlobalAcquireCountRShared: query.LGlobalAcquireCountRShared, + LGlobalAcquireCountWShared: query.LGlobalAcquireCountWShared, + LDatabaseAcquireCountRShared: query.LDatabaseAcquireCountRShared, + LDatabaseAcquireWaitCountRShared: query.LDatabaseAcquireWaitCountRShared, + LDatabaseTimeAcquiringMicrosRShared: query.LDatabaseTimeAcquiringMicrosRShared, + LCollectionAcquireCountRShared: query.LCollectionAcquireCountRShared, + StorageBytesRead: query.StorageBytesRead, + StorageTimeReadingMicros: query.StorageTimeReadingMicros, } if tc.Scanned > 0 { queryStats.Scanned.Pct = queryStats.Scanned.Total * 100 / tc.Scanned @@ -363,7 +379,10 @@ func countersToStats(query QueryInfoAndCounters, uptime int64, tc totalCounters) queryStats.Ratio = queryStats.Scanned.Total / queryStats.Returned.Total } if queryStats.DocsExamined.Total > 0 { - queryStats.DocsExamined.Pct = queryStats.DocsExamined.Total / queryStats.DocsExamined.Total + queryStats.DocsExamined.Pct = queryStats.DocsExamined.Total / tc.DocsExamined + } + if queryStats.KeysExamined.Total > 0 { + queryStats.KeysExamined.Pct = queryStats.KeysExamined.Total / tc.KeysExamined } return queryStats @@ -378,6 +397,7 @@ func aggregateCounters(queries []QueryInfoAndCounters) QueryInfoAndCounters { qt.QueryTime = append(qt.QueryTime, query.QueryTime...) qt.ResponseLength = append(qt.ResponseLength, query.ResponseLength...) qt.DocsExamined = append(qt.DocsExamined, query.DocsExamined...) + qt.KeysExamined = append(qt.KeysExamined, query.KeysExamined...) } return qt } @@ -402,6 +422,9 @@ func calcTotalCounters(queries []QueryInfoAndCounters) totalCounters { docsExamined, _ := stats.Sum(query.DocsExamined) tc.DocsExamined += docsExamined + + keysExamined, _ := stats.Sum(query.KeysExamined) + tc.KeysExamined += keysExamined } return tc }