mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-19 18:34:59 +00:00
PMM-9288 Changes after discussion.
This commit is contained in:
@@ -120,28 +120,41 @@ func (s *Stats) Add(doc proto.SystemProfile) error {
|
|||||||
qiac.LastSeen = doc.Ts
|
qiac.LastSeen = doc.Ts
|
||||||
}
|
}
|
||||||
|
|
||||||
if doc.Storage.Data.BytesRead > 0 {
|
|
||||||
qiac.StorageBytesRead = append(qiac.StorageBytesRead, float64(doc.Storage.Data.BytesRead))
|
|
||||||
}
|
|
||||||
if doc.Storage.Data.TimeReadingMicros > 0 {
|
|
||||||
qiac.StorageTimeReadingMicros = append(qiac.StorageTimeReadingMicros, float64(doc.Storage.Data.TimeReadingMicros))
|
|
||||||
}
|
|
||||||
|
|
||||||
qiac.LocksGlobalAcquireCountReadShared += doc.Locks.Global.AcquireCount.ReadShared
|
|
||||||
qiac.LocksGlobalAcquireCountWriteShared += doc.Locks.Global.AcquireCount.WriteShared
|
|
||||||
qiac.LocksDatabaseAcquireCountReadShared += doc.Locks.Database.AcquireCount.ReadShared
|
|
||||||
qiac.LocksDatabaseAcquireWaitCountReadShared += doc.Locks.Database.AcquireWaitCount.ReadShared
|
|
||||||
if doc.Locks.Database.TimeAcquiringMicros.ReadShared > 0 {
|
|
||||||
qiac.LocksDatabaseTimeAcquiringMicrosReadShared = append(qiac.LocksDatabaseTimeAcquiringMicrosReadShared, float64(doc.Locks.Database.TimeAcquiringMicros.ReadShared))
|
|
||||||
}
|
|
||||||
qiac.LocksCollectionAcquireCountReadShared += doc.Locks.Collection.AcquireCount.ReadShared
|
|
||||||
|
|
||||||
if doc.DocsExamined > 0 {
|
if doc.DocsExamined > 0 {
|
||||||
qiac.DocsExamined = append(qiac.DocsExamined, float64(doc.DocsExamined))
|
qiac.DocsExamined = append(qiac.DocsExamined, float64(doc.DocsExamined))
|
||||||
}
|
}
|
||||||
if doc.KeysExamined > 0 {
|
if doc.KeysExamined > 0 {
|
||||||
qiac.KeysExamined = append(qiac.KeysExamined, float64(doc.KeysExamined))
|
qiac.KeysExamined = append(qiac.KeysExamined, float64(doc.KeysExamined))
|
||||||
}
|
}
|
||||||
|
if doc.Locks.Global.AcquireCount.ReadShared > 0 {
|
||||||
|
qiac.LocksGlobalAcquireCountReadSharedCount++
|
||||||
|
qiac.LocksGlobalAcquireCountReadShared += doc.Locks.Global.AcquireCount.ReadShared
|
||||||
|
}
|
||||||
|
if doc.Locks.Global.AcquireCount.WriteShared > 0 {
|
||||||
|
qiac.LocksGlobalAcquireCountWriteSharedCount++
|
||||||
|
qiac.LocksGlobalAcquireCountWriteShared += doc.Locks.Global.AcquireCount.WriteShared
|
||||||
|
}
|
||||||
|
if doc.Locks.Database.AcquireCount.ReadShared > 0 {
|
||||||
|
qiac.LocksDatabaseAcquireCountReadSharedCount++
|
||||||
|
qiac.LocksDatabaseAcquireCountReadShared += doc.Locks.Database.AcquireCount.ReadShared
|
||||||
|
}
|
||||||
|
if doc.Locks.Database.AcquireWaitCount.ReadShared > 0 {
|
||||||
|
qiac.LocksDatabaseAcquireWaitCountReadSharedCount++
|
||||||
|
qiac.LocksDatabaseAcquireWaitCountReadShared += doc.Locks.Database.AcquireWaitCount.ReadShared
|
||||||
|
}
|
||||||
|
if doc.Locks.Database.TimeAcquiringMicros.ReadShared > 0 {
|
||||||
|
qiac.LocksDatabaseTimeAcquiringMicrosReadShared = append(qiac.LocksDatabaseTimeAcquiringMicrosReadShared, float64(doc.Locks.Database.TimeAcquiringMicros.ReadShared))
|
||||||
|
}
|
||||||
|
if doc.Locks.Collection.AcquireCount.ReadShared > 0 {
|
||||||
|
qiac.LocksCollectionAcquireCountReadSharedCount++
|
||||||
|
qiac.LocksCollectionAcquireCountReadShared += doc.Locks.Collection.AcquireCount.ReadShared
|
||||||
|
}
|
||||||
|
if doc.Storage.Data.BytesRead > 0 {
|
||||||
|
qiac.StorageBytesRead = append(qiac.StorageBytesRead, float64(doc.Storage.Data.BytesRead))
|
||||||
|
}
|
||||||
|
if doc.Storage.Data.TimeReadingMicros > 0 {
|
||||||
|
qiac.StorageTimeReadingMicros = append(qiac.StorageTimeReadingMicros, float64(doc.Storage.Data.TimeReadingMicros))
|
||||||
|
}
|
||||||
s.Unlock()
|
s.Unlock()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -234,12 +247,17 @@ type QueryInfoAndCounters struct {
|
|||||||
User string
|
User string
|
||||||
Comments string
|
Comments string
|
||||||
|
|
||||||
LocksGlobalAcquireCountReadShared int
|
LocksGlobalAcquireCountReadSharedCount int
|
||||||
LocksGlobalAcquireCountWriteShared int
|
LocksGlobalAcquireCountReadShared int
|
||||||
LocksDatabaseAcquireCountReadShared int
|
LocksGlobalAcquireCountWriteSharedCount int
|
||||||
LocksDatabaseAcquireWaitCountReadShared int
|
LocksGlobalAcquireCountWriteShared int
|
||||||
LocksDatabaseTimeAcquiringMicrosReadShared []float64 // in microseconds
|
LocksDatabaseAcquireCountReadSharedCount int
|
||||||
LocksCollectionAcquireCountReadShared int
|
LocksDatabaseAcquireCountReadShared int
|
||||||
|
LocksDatabaseAcquireWaitCountReadSharedCount int
|
||||||
|
LocksDatabaseAcquireWaitCountReadShared int
|
||||||
|
LocksDatabaseTimeAcquiringMicrosReadShared []float64 // in microseconds
|
||||||
|
LocksCollectionAcquireCountReadSharedCount int
|
||||||
|
LocksCollectionAcquireCountReadShared int
|
||||||
|
|
||||||
StorageBytesRead []float64
|
StorageBytesRead []float64
|
||||||
StorageTimeReadingMicros []float64 // in microseconds
|
StorageTimeReadingMicros []float64 // in microseconds
|
||||||
@@ -310,12 +328,17 @@ type QueryStats struct {
|
|||||||
User string
|
User string
|
||||||
Comments string
|
Comments string
|
||||||
|
|
||||||
|
LocksGlobalAcquireCountReadSharedCount int
|
||||||
LocksGlobalAcquireCountReadShared int
|
LocksGlobalAcquireCountReadShared int
|
||||||
|
LocksGlobalAcquireCountWriteSharedCount int
|
||||||
LocksGlobalAcquireCountWriteShared int
|
LocksGlobalAcquireCountWriteShared int
|
||||||
|
LocksDatabaseAcquireCountReadSharedCount int
|
||||||
LocksDatabaseAcquireCountReadShared int
|
LocksDatabaseAcquireCountReadShared int
|
||||||
|
LocksDatabaseAcquireWaitCountReadSharedCount int
|
||||||
LocksDatabaseAcquireWaitCountReadShared int
|
LocksDatabaseAcquireWaitCountReadShared int
|
||||||
LocksDatabaseTimeAcquiringMicrosReadSharedCount int
|
LocksDatabaseTimeAcquiringMicrosReadSharedCount int
|
||||||
LocksDatabaseTimeAcquiringMicrosReadShared Statistics // in microseconds
|
LocksDatabaseTimeAcquiringMicrosReadShared Statistics // in microseconds
|
||||||
|
LocksCollectionAcquireCountReadSharedCount int
|
||||||
LocksCollectionAcquireCountReadShared int
|
LocksCollectionAcquireCountReadShared int
|
||||||
|
|
||||||
StorageBytesReadCount int
|
StorageBytesReadCount int
|
||||||
@@ -338,36 +361,41 @@ type Statistics struct {
|
|||||||
|
|
||||||
func countersToStats(query QueryInfoAndCounters, uptime int64, tc totalCounters) QueryStats {
|
func countersToStats(query QueryInfoAndCounters, uptime int64, tc totalCounters) QueryStats {
|
||||||
queryStats := QueryStats{
|
queryStats := QueryStats{
|
||||||
Count: query.Count,
|
Count: query.Count,
|
||||||
ID: query.ID,
|
ID: query.ID,
|
||||||
Operation: query.Operation,
|
Operation: query.Operation,
|
||||||
Query: query.Query,
|
Query: query.Query,
|
||||||
Fingerprint: query.Fingerprint,
|
Fingerprint: query.Fingerprint,
|
||||||
Returned: calcStats(query.NReturned),
|
Returned: calcStats(query.NReturned),
|
||||||
QueryTime: calcStats(query.QueryTime),
|
QueryTime: calcStats(query.QueryTime),
|
||||||
FirstSeen: query.FirstSeen,
|
FirstSeen: query.FirstSeen,
|
||||||
LastSeen: query.LastSeen,
|
LastSeen: query.LastSeen,
|
||||||
Namespace: query.Namespace,
|
Namespace: query.Namespace,
|
||||||
QPS: float64(query.Count) / float64(uptime),
|
QPS: float64(query.Count) / float64(uptime),
|
||||||
PlanSummary: query.PlanSummary,
|
PlanSummary: query.PlanSummary,
|
||||||
CollScanCount: query.CollScanCount,
|
CollScanCount: query.CollScanCount,
|
||||||
ResponseLengthCount: len(query.ResponseLength),
|
ResponseLengthCount: len(query.ResponseLength),
|
||||||
ResponseLength: calcStats(query.ResponseLength),
|
ResponseLength: calcStats(query.ResponseLength),
|
||||||
DocsExaminedCount: len(query.DocsExamined),
|
DocsExaminedCount: len(query.DocsExamined),
|
||||||
DocsExamined: calcStats(query.DocsExamined),
|
DocsExamined: calcStats(query.DocsExamined),
|
||||||
KeysExaminedCount: len(query.KeysExamined),
|
KeysExaminedCount: len(query.KeysExamined),
|
||||||
KeysExamined: calcStats(query.KeysExamined),
|
KeysExamined: calcStats(query.KeysExamined),
|
||||||
QueryHash: query.QueryHash,
|
QueryHash: query.QueryHash,
|
||||||
AppName: query.AppName,
|
AppName: query.AppName,
|
||||||
Client: query.Client,
|
Client: query.Client,
|
||||||
User: query.User,
|
User: query.User,
|
||||||
Comments: query.Comments,
|
Comments: query.Comments,
|
||||||
LocksGlobalAcquireCountReadShared: query.LocksGlobalAcquireCountReadShared,
|
LocksGlobalAcquireCountReadSharedCount: query.LocksGlobalAcquireCountReadSharedCount,
|
||||||
LocksGlobalAcquireCountWriteShared: query.LocksGlobalAcquireCountWriteShared,
|
LocksGlobalAcquireCountReadShared: query.LocksGlobalAcquireCountReadShared,
|
||||||
LocksDatabaseAcquireCountReadShared: query.LocksDatabaseAcquireCountReadShared,
|
LocksGlobalAcquireCountWriteSharedCount: query.LocksGlobalAcquireCountWriteSharedCount,
|
||||||
LocksDatabaseAcquireWaitCountReadShared: query.LocksDatabaseAcquireWaitCountReadShared,
|
LocksGlobalAcquireCountWriteShared: query.LocksGlobalAcquireCountWriteShared,
|
||||||
|
LocksDatabaseAcquireCountReadSharedCount: query.LocksDatabaseAcquireCountReadSharedCount,
|
||||||
|
LocksDatabaseAcquireCountReadShared: query.LocksDatabaseAcquireCountReadShared,
|
||||||
|
LocksDatabaseAcquireWaitCountReadSharedCount: query.LocksDatabaseAcquireWaitCountReadSharedCount,
|
||||||
|
LocksDatabaseAcquireWaitCountReadShared: query.LocksDatabaseAcquireWaitCountReadShared,
|
||||||
LocksDatabaseTimeAcquiringMicrosReadSharedCount: len(query.LocksDatabaseTimeAcquiringMicrosReadShared),
|
LocksDatabaseTimeAcquiringMicrosReadSharedCount: len(query.LocksDatabaseTimeAcquiringMicrosReadShared),
|
||||||
LocksDatabaseTimeAcquiringMicrosReadShared: calcStats(query.LocksDatabaseTimeAcquiringMicrosReadShared),
|
LocksDatabaseTimeAcquiringMicrosReadShared: calcStats(query.LocksDatabaseTimeAcquiringMicrosReadShared),
|
||||||
|
LocksCollectionAcquireCountReadSharedCount: query.LocksCollectionAcquireCountReadSharedCount,
|
||||||
LocksCollectionAcquireCountReadShared: query.LocksCollectionAcquireCountReadShared,
|
LocksCollectionAcquireCountReadShared: query.LocksCollectionAcquireCountReadShared,
|
||||||
StorageBytesReadCount: len(query.StorageBytesRead),
|
StorageBytesReadCount: len(query.StorageBytesRead),
|
||||||
StorageBytesRead: calcStats(query.StorageBytesRead),
|
StorageBytesRead: calcStats(query.StorageBytesRead),
|
||||||
@@ -383,6 +411,9 @@ func countersToStats(query QueryInfoAndCounters, uptime int64, tc totalCounters)
|
|||||||
if tc.Bytes > 0 {
|
if tc.Bytes > 0 {
|
||||||
queryStats.ResponseLength.Pct = queryStats.ResponseLength.Total * 100 / tc.Bytes
|
queryStats.ResponseLength.Pct = queryStats.ResponseLength.Total * 100 / tc.Bytes
|
||||||
}
|
}
|
||||||
|
if queryStats.Returned.Total > 0 {
|
||||||
|
queryStats.Ratio = queryStats.DocsExamined.Total / queryStats.Returned.Total
|
||||||
|
}
|
||||||
if tc.DocsExamined > 0 {
|
if tc.DocsExamined > 0 {
|
||||||
queryStats.DocsExamined.Pct = queryStats.DocsExamined.Total * 100 / tc.DocsExamined
|
queryStats.DocsExamined.Pct = queryStats.DocsExamined.Total * 100 / tc.DocsExamined
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user