From df56bac6e882e7fdea75ef0a3bab8b75959fc426 Mon Sep 17 00:00:00 2001 From: qidi1 <1083369179@qq.com> Date: Mon, 9 May 2022 21:31:25 +0800 Subject: [PATCH] server:add qps axis for tidbdashborad ref: #pingcap/tidb-dashboard/issues/1209 Signed-off-by: qidi1 <1083369179@qq.com> --- pkg/dashboard/keyvisual/input/core.go | 8 ++++++++ server/api/region.go | 4 ++++ server/api/region_test.go | 13 +++++++++++++ 3 files changed, 25 insertions(+) diff --git a/pkg/dashboard/keyvisual/input/core.go b/pkg/dashboard/keyvisual/input/core.go index 951221cf21e..5ba370ee234 100644 --- a/pkg/dashboard/keyvisual/input/core.go +++ b/pkg/dashboard/keyvisual/input/core.go @@ -63,6 +63,14 @@ func (rs RegionsInfo) GetValues(tag regionpkg.StatTag) []uint64 { for i, region := range rs { values[i] = region.GetKeysRead() } + case regionpkg.WriteQueryNum: + for i, region := range rs { + values[i] = region.GetWriteQueryNum() + } + case regionpkg.ReadQueryNum: + for i, region := range rs { + values[i] = region.GetReadQueryNum() + } case regionpkg.Integration: for i, region := range rs { values[i] = region.GetBytesWritten() + region.GetBytesRead() diff --git a/server/api/region.go b/server/api/region.go index 3297c446741..29f45d00e48 100644 --- a/server/api/region.go +++ b/server/api/region.go @@ -113,6 +113,8 @@ type RegionInfo struct { ReadBytes uint64 `json:"read_bytes"` WrittenKeys uint64 `json:"written_keys"` ReadKeys uint64 `json:"read_keys"` + WriteQueryNum uint64 `json:"write_query_num"` + ReadQueryNum uint64 `json:"read_query_num"` ApproximateSize int64 `json:"approximate_size"` ApproximateKeys int64 `json:"approximate_keys"` Buckets []string `json:"buckets,omitempty"` @@ -158,8 +160,10 @@ func InitRegion(r *core.RegionInfo, s *RegionInfo) *RegionInfo { s.PendingPeers = fromPeerSlice(r.GetPendingPeers()) s.WrittenBytes = r.GetBytesWritten() s.WrittenKeys = r.GetKeysWritten() + s.WriteQueryNum = r.GetWriteQueryNum() s.ReadBytes = r.GetBytesRead() s.ReadKeys = r.GetKeysRead() + s.ReadQueryNum = r.GetReadQueryNum() s.ApproximateSize = r.GetApproximateSize() s.ApproximateKeys = r.GetApproximateKeys() s.ReplicationStatus = fromPBReplicationStatus(r.GetReplicationStatus()) diff --git a/server/api/region_test.go b/server/api/region_test.go index 9e4ce7a74a5..867c744a247 100644 --- a/server/api/region_test.go +++ b/server/api/region_test.go @@ -122,6 +122,17 @@ func newTestRegionInfo(regionID, storeID uint64, start, end []byte, opts ...core core.SetWrittenKeys(1 * 1024 * 1024), core.SetReadBytes(200 * 1024 * 1024), core.SetReadKeys(2 * 1024 * 1024), + core.SetQueryStats(&pdpb.QueryStats{ + GC: 10, + Get: 10, + Scan: 10, + Coprocessor: 10, + Delete: 10, + DeleteRange: 10, + Put: 10, + Prewrite: 10, + AcquirePessimisticLock: 10, + }), } newOpts = append(newOpts, opts...) region := core.NewRegionInfo(metaRegion, leader, newOpts...) @@ -146,8 +157,10 @@ func (s *testRegionSuite) TestRegion(c *C) { c.Assert(readJSON(testDialClient, url, &r1m), IsNil) c.Assert(r1m["written_bytes"].(float64), Equals, float64(r.GetBytesWritten())) c.Assert(r1m["written_keys"].(float64), Equals, float64(r.GetKeysWritten())) + c.Assert(r1m["write_query_num"].(float64), Equals, float64(r.GetWriteQueryNum())) c.Assert(r1m["read_bytes"].(float64), Equals, float64(r.GetBytesRead())) c.Assert(r1m["read_keys"].(float64), Equals, float64(r.GetKeysRead())) + c.Assert(r1m["read_query_num"].(float64), Equals, float64(r.GetReadQueryNum())) keys := r1m["buckets"].([]interface{}) c.Assert(keys, HasLen, 2) c.Assert(keys[0].(string), Equals, core.HexRegionKeyStr([]byte("a")))