bugfix : when using otel, calling gclient *Raw methods may result in null pointer exceptions (#2697)

This commit is contained in:
muzifeng
2023-06-12 20:52:48 +08:00
committed by GitHub
parent 46f3196297
commit 15eaac35a8

View File

@ -73,9 +73,17 @@ func newClientTrace(ctx context.Context, span trace.Span, request *http.Request)
func (ct *clientTracer) getConn(host string) {}
func (ct *clientTracer) gotConn(info httptrace.GotConnInfo) {
remoteAddr := ""
if info.Conn.RemoteAddr() != nil {
remoteAddr = info.Conn.RemoteAddr().String()
}
localAddr := ""
if info.Conn.LocalAddr() != nil {
localAddr = info.Conn.LocalAddr().String()
}
ct.span.SetAttributes(
attribute.String(tracingAttrHttpAddressRemote, info.Conn.RemoteAddr().String()),
attribute.String(tracingAttrHttpAddressLocal, info.Conn.LocalAddr().String()),
attribute.String(tracingAttrHttpAddressRemote, remoteAddr),
attribute.String(tracingAttrHttpAddressLocal, localAddr),
)
}