Browse Source

etcdserver: Fix txn request 'took too long' warnings to use loggable request stringer

Joe Betz 7 years ago
parent
commit
a6fad51603
2 changed files with 5 additions and 4 deletions
  1. 3 3
      etcdserver/etcdserverpb/raft_internal_stringer.go
  2. 2 1
      etcdserver/util.go

+ 3 - 3
etcdserver/etcdserverpb/raft_internal_stringer.go

@@ -64,7 +64,7 @@ func (as *InternalRaftStringer) String() string {
 	case as.Request.Txn != nil:
 		return fmt.Sprintf("header:<%s> txn:<%s>",
 			as.Request.Header.String(),
-			newLoggableTxnRequest(as.Request.Txn).String(),
+			NewLoggableTxnRequest(as.Request.Txn).String(),
 		)
 	default:
 		// nothing to redact
@@ -78,7 +78,7 @@ type txnRequestStringer struct {
 	Request *TxnRequest
 }
 
-func newLoggableTxnRequest(request *TxnRequest) *txnRequestStringer {
+func NewLoggableTxnRequest(request *TxnRequest) *txnRequestStringer {
 	return &txnRequestStringer{request}
 }
 
@@ -123,7 +123,7 @@ func (as *requestOpStringer) String() string {
 	case *RequestOp_RequestPut:
 		return fmt.Sprintf("request_put:<%s>", newLoggablePutRequest(op.RequestPut).String())
 	case *RequestOp_RequestTxn:
-		return fmt.Sprintf("request_txn:<%s>", newLoggableTxnRequest(op.RequestTxn).String())
+		return fmt.Sprintf("request_txn:<%s>", NewLoggableTxnRequest(op.RequestTxn).String())
 	default:
 		// nothing to redact
 	}

+ 2 - 1
etcdserver/util.go

@@ -111,7 +111,8 @@ func warnOfExpensiveRequest(lg *zap.Logger, now time.Time, reqStringer fmt.Strin
 	warnOfExpensiveGenericRequest(lg, now, reqStringer, "", resp, err)
 }
 
-func warnOfExpensiveReadOnlyTxnRequest(lg *zap.Logger, now time.Time, reqStringer fmt.Stringer, txnResponse *pb.TxnResponse, err error) {
+func warnOfExpensiveReadOnlyTxnRequest(lg *zap.Logger, now time.Time, r *pb.TxnRequest, txnResponse *pb.TxnResponse, err error) {
+	reqStringer := pb.NewLoggableTxnRequest(r)
 	var resp string
 	if !isNil(txnResponse) {
 		var resps []string