@@ -34,6 +34,7 @@ import (
34
34
"github.com/prometheus/client_golang/prometheus"
35
35
"github.com/tikv/pd/client/clients/metastorage"
36
36
"github.com/tikv/pd/client/errs"
37
+ "github.com/tikv/pd/client/metrics"
37
38
"github.com/tikv/pd/client/opt"
38
39
"github.com/tikv/pd/client/utils/tlsutil"
39
40
"go.uber.org/zap"
@@ -486,7 +487,7 @@ func newClientWithKeyspaceName(
486
487
func (c * client ) setup () error {
487
488
// Init the metrics.
488
489
if c .option .InitMetrics {
489
- initAndRegisterMetrics (c .option .MetricsLabels )
490
+ metrics . InitAndRegisterMetrics (c .option .MetricsLabels )
490
491
}
491
492
492
493
// Init the client base.
@@ -669,7 +670,7 @@ func (c *client) UpdateOption(option opt.DynamicOption, value any) error {
669
670
// GetAllMembers gets the members Info from PD.
670
671
func (c * client ) GetAllMembers (ctx context.Context ) ([]* pdpb.Member , error ) {
671
672
start := time .Now ()
672
- defer func () { cmdDurationGetAllMembers .Observe (time .Since (start ).Seconds ()) }()
673
+ defer func () { metrics . CmdDurationGetAllMembers .Observe (time .Since (start ).Seconds ()) }()
673
674
674
675
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
675
676
defer cancel ()
@@ -679,7 +680,7 @@ func (c *client) GetAllMembers(ctx context.Context) ([]*pdpb.Member, error) {
679
680
return nil , errs .ErrClientGetProtoClient
680
681
}
681
682
resp , err := protoClient .GetMembers (ctx , req )
682
- if err = c .respForErr (cmdFailDurationGetAllMembers , start , err , resp .GetHeader ()); err != nil {
683
+ if err = c .respForErr (metrics . CmdFailedDurationGetAllMembers , start , err , resp .GetHeader ()); err != nil {
683
684
return nil , err
684
685
}
685
686
return resp .GetMembers (), nil
@@ -854,7 +855,7 @@ func (c *client) GetRegionFromMember(ctx context.Context, key []byte, memberURLs
854
855
defer span .Finish ()
855
856
}
856
857
start := time .Now ()
857
- defer func () { cmdDurationGetRegion .Observe (time .Since (start ).Seconds ()) }()
858
+ defer func () { metrics . CmdDurationGetRegion .Observe (time .Since (start ).Seconds ()) }()
858
859
859
860
var resp * pdpb.GetRegionResponse
860
861
for _ , url := range memberURLs {
@@ -878,7 +879,7 @@ func (c *client) GetRegionFromMember(ctx context.Context, key []byte, memberURLs
878
879
}
879
880
880
881
if resp == nil {
881
- cmdFailDurationGetRegion .Observe (time .Since (start ).Seconds ())
882
+ metrics . CmdFailedDurationGetRegion .Observe (time .Since (start ).Seconds ())
882
883
c .pdSvcDiscovery .ScheduleCheckMemberChanged ()
883
884
errorMsg := fmt .Sprintf ("[pd] can't get region info from member URLs: %+v" , memberURLs )
884
885
return nil , errors .WithStack (errors .New (errorMsg ))
@@ -893,7 +894,7 @@ func (c *client) GetRegion(ctx context.Context, key []byte, opts ...opt.GetRegio
893
894
defer span .Finish ()
894
895
}
895
896
start := time .Now ()
896
- defer func () { cmdDurationGetRegion .Observe (time .Since (start ).Seconds ()) }()
897
+ defer func () { metrics . CmdDurationGetRegion .Observe (time .Since (start ).Seconds ()) }()
897
898
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
898
899
defer cancel ()
899
900
@@ -919,7 +920,7 @@ func (c *client) GetRegion(ctx context.Context, key []byte, opts ...opt.GetRegio
919
920
resp , err = protoClient .GetRegion (cctx , req )
920
921
}
921
922
922
- if err = c .respForErr (cmdFailDurationGetRegion , start , err , resp .GetHeader ()); err != nil {
923
+ if err = c .respForErr (metrics . CmdFailedDurationGetRegion , start , err , resp .GetHeader ()); err != nil {
923
924
return nil , err
924
925
}
925
926
return handleRegionResponse (resp ), nil
@@ -932,7 +933,7 @@ func (c *client) GetPrevRegion(ctx context.Context, key []byte, opts ...opt.GetR
932
933
defer span .Finish ()
933
934
}
934
935
start := time .Now ()
935
- defer func () { cmdDurationGetPrevRegion .Observe (time .Since (start ).Seconds ()) }()
936
+ defer func () { metrics . CmdDurationGetPrevRegion .Observe (time .Since (start ).Seconds ()) }()
936
937
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
937
938
defer cancel ()
938
939
@@ -958,7 +959,7 @@ func (c *client) GetPrevRegion(ctx context.Context, key []byte, opts ...opt.GetR
958
959
resp , err = protoClient .GetPrevRegion (cctx , req )
959
960
}
960
961
961
- if err = c .respForErr (cmdFailDurationGetPrevRegion , start , err , resp .GetHeader ()); err != nil {
962
+ if err = c .respForErr (metrics . CmdFailedDurationGetPrevRegion , start , err , resp .GetHeader ()); err != nil {
962
963
return nil , err
963
964
}
964
965
return handleRegionResponse (resp ), nil
@@ -971,7 +972,7 @@ func (c *client) GetRegionByID(ctx context.Context, regionID uint64, opts ...opt
971
972
defer span .Finish ()
972
973
}
973
974
start := time .Now ()
974
- defer func () { cmdDurationGetRegionByID .Observe (time .Since (start ).Seconds ()) }()
975
+ defer func () { metrics . CmdDurationGetRegionByID .Observe (time .Since (start ).Seconds ()) }()
975
976
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
976
977
defer cancel ()
977
978
@@ -997,7 +998,7 @@ func (c *client) GetRegionByID(ctx context.Context, regionID uint64, opts ...opt
997
998
resp , err = protoClient .GetRegionByID (cctx , req )
998
999
}
999
1000
1000
- if err = c .respForErr (cmdFailedDurationGetRegionByID , start , err , resp .GetHeader ()); err != nil {
1001
+ if err = c .respForErr (metrics . CmdFailedDurationGetRegionByID , start , err , resp .GetHeader ()); err != nil {
1001
1002
return nil , err
1002
1003
}
1003
1004
return handleRegionResponse (resp ), nil
@@ -1010,7 +1011,7 @@ func (c *client) ScanRegions(ctx context.Context, key, endKey []byte, limit int,
1010
1011
defer span .Finish ()
1011
1012
}
1012
1013
start := time .Now ()
1013
- defer func () { cmdDurationScanRegions .Observe (time .Since (start ).Seconds ()) }()
1014
+ defer func () { metrics . CmdDurationScanRegions .Observe (time .Since (start ).Seconds ()) }()
1014
1015
1015
1016
var cancel context.CancelFunc
1016
1017
scanCtx := ctx
@@ -1046,7 +1047,7 @@ func (c *client) ScanRegions(ctx context.Context, key, endKey []byte, limit int,
1046
1047
resp , err = protoClient .ScanRegions (cctx , req )
1047
1048
}
1048
1049
1049
- if err = c .respForErr (cmdFailedDurationScanRegions , start , err , resp .GetHeader ()); err != nil {
1050
+ if err = c .respForErr (metrics . CmdFailedDurationScanRegions , start , err , resp .GetHeader ()); err != nil {
1050
1051
return nil , err
1051
1052
}
1052
1053
@@ -1060,7 +1061,7 @@ func (c *client) BatchScanRegions(ctx context.Context, ranges []KeyRange, limit
1060
1061
defer span .Finish ()
1061
1062
}
1062
1063
start := time .Now ()
1063
- defer func () { cmdDurationBatchScanRegions .Observe (time .Since (start ).Seconds ()) }()
1064
+ defer func () { metrics . CmdDurationBatchScanRegions .Observe (time .Since (start ).Seconds ()) }()
1064
1065
1065
1066
var cancel context.CancelFunc
1066
1067
scanCtx := ctx
@@ -1099,7 +1100,7 @@ func (c *client) BatchScanRegions(ctx context.Context, ranges []KeyRange, limit
1099
1100
resp , err = protoClient .BatchScanRegions (cctx , req )
1100
1101
}
1101
1102
1102
- if err = c .respForErr (cmdFailedDurationBatchScanRegions , start , err , resp .GetHeader ()); err != nil {
1103
+ if err = c .respForErr (metrics . CmdFailedDurationBatchScanRegions , start , err , resp .GetHeader ()); err != nil {
1103
1104
return nil , err
1104
1105
}
1105
1106
@@ -1159,7 +1160,7 @@ func (c *client) GetStore(ctx context.Context, storeID uint64) (*metapb.Store, e
1159
1160
defer span .Finish ()
1160
1161
}
1161
1162
start := time .Now ()
1162
- defer func () { cmdDurationGetStore .Observe (time .Since (start ).Seconds ()) }()
1163
+ defer func () { metrics . CmdDurationGetStore .Observe (time .Since (start ).Seconds ()) }()
1163
1164
1164
1165
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1165
1166
defer cancel ()
@@ -1173,7 +1174,7 @@ func (c *client) GetStore(ctx context.Context, storeID uint64) (*metapb.Store, e
1173
1174
}
1174
1175
resp , err := protoClient .GetStore (ctx , req )
1175
1176
1176
- if err = c .respForErr (cmdFailedDurationGetStore , start , err , resp .GetHeader ()); err != nil {
1177
+ if err = c .respForErr (metrics . CmdFailedDurationGetStore , start , err , resp .GetHeader ()); err != nil {
1177
1178
return nil , err
1178
1179
}
1179
1180
return handleStoreResponse (resp )
@@ -1203,7 +1204,7 @@ func (c *client) GetAllStores(ctx context.Context, opts ...opt.GetStoreOption) (
1203
1204
defer span .Finish ()
1204
1205
}
1205
1206
start := time .Now ()
1206
- defer func () { cmdDurationGetAllStores .Observe (time .Since (start ).Seconds ()) }()
1207
+ defer func () { metrics . CmdDurationGetAllStores .Observe (time .Since (start ).Seconds ()) }()
1207
1208
1208
1209
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1209
1210
defer cancel ()
@@ -1217,7 +1218,7 @@ func (c *client) GetAllStores(ctx context.Context, opts ...opt.GetStoreOption) (
1217
1218
}
1218
1219
resp , err := protoClient .GetAllStores (ctx , req )
1219
1220
1220
- if err = c .respForErr (cmdFailedDurationGetAllStores , start , err , resp .GetHeader ()); err != nil {
1221
+ if err = c .respForErr (metrics . CmdFailedDurationGetAllStores , start , err , resp .GetHeader ()); err != nil {
1221
1222
return nil , err
1222
1223
}
1223
1224
return resp .GetStores (), nil
@@ -1230,7 +1231,7 @@ func (c *client) UpdateGCSafePoint(ctx context.Context, safePoint uint64) (uint6
1230
1231
defer span .Finish ()
1231
1232
}
1232
1233
start := time .Now ()
1233
- defer func () { cmdDurationUpdateGCSafePoint .Observe (time .Since (start ).Seconds ()) }()
1234
+ defer func () { metrics . CmdDurationUpdateGCSafePoint .Observe (time .Since (start ).Seconds ()) }()
1234
1235
1235
1236
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1236
1237
defer cancel ()
@@ -1244,7 +1245,7 @@ func (c *client) UpdateGCSafePoint(ctx context.Context, safePoint uint64) (uint6
1244
1245
}
1245
1246
resp , err := protoClient .UpdateGCSafePoint (ctx , req )
1246
1247
1247
- if err = c .respForErr (cmdFailedDurationUpdateGCSafePoint , start , err , resp .GetHeader ()); err != nil {
1248
+ if err = c .respForErr (metrics . CmdFailedDurationUpdateGCSafePoint , start , err , resp .GetHeader ()); err != nil {
1248
1249
return 0 , err
1249
1250
}
1250
1251
return resp .GetNewSafePoint (), nil
@@ -1261,7 +1262,7 @@ func (c *client) UpdateServiceGCSafePoint(ctx context.Context, serviceID string,
1261
1262
}
1262
1263
1263
1264
start := time .Now ()
1264
- defer func () { cmdDurationUpdateServiceGCSafePoint .Observe (time .Since (start ).Seconds ()) }()
1265
+ defer func () { metrics . CmdDurationUpdateServiceGCSafePoint .Observe (time .Since (start ).Seconds ()) }()
1265
1266
1266
1267
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1267
1268
defer cancel ()
@@ -1277,7 +1278,7 @@ func (c *client) UpdateServiceGCSafePoint(ctx context.Context, serviceID string,
1277
1278
}
1278
1279
resp , err := protoClient .UpdateServiceGCSafePoint (ctx , req )
1279
1280
1280
- if err = c .respForErr (cmdFailedDurationUpdateServiceGCSafePoint , start , err , resp .GetHeader ()); err != nil {
1281
+ if err = c .respForErr (metrics . CmdFailedDurationUpdateServiceGCSafePoint , start , err , resp .GetHeader ()); err != nil {
1281
1282
return 0 , err
1282
1283
}
1283
1284
return resp .GetMinSafePoint (), nil
@@ -1294,7 +1295,7 @@ func (c *client) ScatterRegion(ctx context.Context, regionID uint64) error {
1294
1295
1295
1296
func (c * client ) scatterRegionsWithGroup (ctx context.Context , regionID uint64 , group string ) error {
1296
1297
start := time .Now ()
1297
- defer func () { cmdDurationScatterRegion .Observe (time .Since (start ).Seconds ()) }()
1298
+ defer func () { metrics . CmdDurationScatterRegion .Observe (time .Since (start ).Seconds ()) }()
1298
1299
1299
1300
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1300
1301
defer cancel ()
@@ -1333,7 +1334,7 @@ func (c *client) SplitAndScatterRegions(ctx context.Context, splitKeys [][]byte,
1333
1334
defer span .Finish ()
1334
1335
}
1335
1336
start := time .Now ()
1336
- defer func () { cmdDurationSplitAndScatterRegions .Observe (time .Since (start ).Seconds ()) }()
1337
+ defer func () { metrics . CmdDurationSplitAndScatterRegions .Observe (time .Since (start ).Seconds ()) }()
1337
1338
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1338
1339
defer cancel ()
1339
1340
options := & opt.RegionsOp {}
@@ -1361,7 +1362,7 @@ func (c *client) GetOperator(ctx context.Context, regionID uint64) (*pdpb.GetOpe
1361
1362
defer span .Finish ()
1362
1363
}
1363
1364
start := time .Now ()
1364
- defer func () { cmdDurationGetOperator .Observe (time .Since (start ).Seconds ()) }()
1365
+ defer func () { metrics . CmdDurationGetOperator .Observe (time .Since (start ).Seconds ()) }()
1365
1366
1366
1367
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1367
1368
defer cancel ()
@@ -1383,7 +1384,7 @@ func (c *client) SplitRegions(ctx context.Context, splitKeys [][]byte, opts ...o
1383
1384
defer span .Finish ()
1384
1385
}
1385
1386
start := time .Now ()
1386
- defer func () { cmdDurationSplitRegions .Observe (time .Since (start ).Seconds ()) }()
1387
+ defer func () { metrics . CmdDurationSplitRegions .Observe (time .Since (start ).Seconds ()) }()
1387
1388
ctx , cancel := context .WithTimeout (ctx , c .option .Timeout )
1388
1389
defer cancel ()
1389
1390
options := & opt.RegionsOp {}
@@ -1410,7 +1411,7 @@ func (c *client) requestHeader() *pdpb.RequestHeader {
1410
1411
1411
1412
func (c * client ) scatterRegionsWithOptions (ctx context.Context , regionsID []uint64 , opts ... opt.RegionsOption ) (* pdpb.ScatterRegionResponse , error ) {
1412
1413
start := time .Now ()
1413
- defer func () { cmdDurationScatterRegions .Observe (time .Since (start ).Seconds ()) }()
1414
+ defer func () { metrics . CmdDurationScatterRegions .Observe (time .Since (start ).Seconds ()) }()
1414
1415
options := & opt.RegionsOp {}
1415
1416
for _ , opt := range opts {
1416
1417
opt (options )
0 commit comments