add client streaming response trace

This commit is contained in:
yangzhouhan
2015-07-23 18:14:52 -07:00
parent b022c50ebe
commit bd20726bd8
2 changed files with 10 additions and 4 deletions

View File

@ -133,7 +133,6 @@ func Invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli
} }
}() }()
} }
callHdr := &transport.CallHdr{ callHdr := &transport.CallHdr{
Host: cc.authority, Host: cc.authority,
Method: method, Method: method,
@ -165,7 +164,7 @@ func Invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli
return toRPCErr(err) return toRPCErr(err)
} }
if EnableTracing { if EnableTracing {
c.traceInfo.tr.LazyLog(payload{args}, true) c.traceInfo.tr.LazyLog(&fmtStringer{"sent: %v", []interface{}{payload{args}}}, true)
} }
stream, err = sendRequest(ctx, cc.dopts.codec, callHdr, t, args, topts) stream, err = sendRequest(ctx, cc.dopts.codec, callHdr, t, args, topts)
if err != nil { if err != nil {
@ -184,7 +183,7 @@ func Invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli
continue continue
} }
if EnableTracing { if EnableTracing {
c.traceInfo.tr.LazyLog(payload{reply}, true) c.traceInfo.tr.LazyLog(&fmtStringer{"received: %v", []interface{}{payload{reply}}}, true)
} }
t.CloseStream(stream, lastErr) t.CloseStream(stream, lastErr)
if lastErr != nil { if lastErr != nil {

View File

@ -166,7 +166,7 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) {
if cs.tracing { if cs.tracing {
cs.mu.Lock() cs.mu.Lock()
if cs.traceInfo.tr != nil { if cs.traceInfo.tr != nil {
cs.traceInfo.tr.LazyLog(payload{m}, true) cs.traceInfo.tr.LazyLog(&fmtStringer{"sent: %v", []interface{}{payload{m}}}, true)
} }
cs.mu.Unlock() cs.mu.Unlock()
} }
@ -187,6 +187,13 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) {
} }
func (cs *clientStream) RecvMsg(m interface{}) (err error) { func (cs *clientStream) RecvMsg(m interface{}) (err error) {
if cs.tracing {
cs.mu.Lock()
if cs.traceInfo.tr != nil {
cs.traceInfo.tr.LazyLog(&fmtStringer{"received: %v", []interface{}{payload{m}}}, true)
}
cs.mu.Unlock()
}
err = recv(cs.p, cs.codec, m) err = recv(cs.p, cs.codec, m)
defer func() { defer func() {
// err != nil indicates the termination of the stream. // err != nil indicates the termination of the stream.