aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_grpc_admin.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/volume_grpc_admin.go')
-rw-r--r--weed/server/volume_grpc_admin.go21
1 files changed, 17 insertions, 4 deletions
diff --git a/weed/server/volume_grpc_admin.go b/weed/server/volume_grpc_admin.go
index 09da32f7a..476937847 100644
--- a/weed/server/volume_grpc_admin.go
+++ b/weed/server/volume_grpc_admin.go
@@ -8,6 +8,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/chrislusf/seaweedfs/weed/pb/master_pb"
"path/filepath"
+ "time"
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
@@ -253,27 +254,39 @@ func (vs *VolumeServer) VolumeNeedleStatus(ctx context.Context, req *volume_serv
}
func (vs *VolumeServer) Ping(ctx context.Context, req *volume_server_pb.PingRequest) (resp *volume_server_pb.PingResponse, pingErr error) {
- resp = &volume_server_pb.PingResponse{}
+ resp = &volume_server_pb.PingResponse{
+ StartTimeNs: time.Now().UnixNano(),
+ }
if req.TargetType == cluster.FilerType {
pingErr = pb.WithFilerClient(false, pb.ServerAddress(req.Target), vs.grpcDialOption, func(client filer_pb.SeaweedFilerClient) error {
- _, err := client.Ping(ctx, &filer_pb.PingRequest{})
+ pingResp, err := client.Ping(ctx, &filer_pb.PingRequest{})
+ if pingResp != nil {
+ resp.RemoteTimeNs = pingResp.StartTimeNs
+ }
return err
})
}
if req.TargetType == cluster.VolumeServerType {
pingErr = pb.WithVolumeServerClient(false, pb.ServerAddress(req.Target), vs.grpcDialOption, func(client volume_server_pb.VolumeServerClient) error {
- _, err := client.Ping(ctx, &volume_server_pb.PingRequest{})
+ pingResp, err := client.Ping(ctx, &volume_server_pb.PingRequest{})
+ if pingResp != nil {
+ resp.RemoteTimeNs = pingResp.StartTimeNs
+ }
return err
})
}
if req.TargetType == cluster.MasterType {
pingErr = pb.WithMasterClient(false, pb.ServerAddress(req.Target), vs.grpcDialOption, func(client master_pb.SeaweedClient) error {
- _, err := client.Ping(ctx, &master_pb.PingRequest{})
+ pingResp, err := client.Ping(ctx, &master_pb.PingRequest{})
+ if pingResp != nil {
+ resp.RemoteTimeNs = pingResp.StartTimeNs
+ }
return err
})
}
if pingErr != nil {
pingErr = fmt.Errorf("ping %s %s: %v", req.TargetType, req.Target, pingErr)
}
+ resp.StopTimeNs = time.Now().UnixNano()
return
}