Преглед изворни кода

Fixed #JiraBug29345 修复应用先启动,euspace后启动,无法获取其长链接IP、port的问题。

rock пре 1 година
родитељ
комит
82a02b7f09
1 измењених фајлова са 9 додато и 5 уклоњено
  1. 9 5
      ebpftracer/tracer.go

+ 9 - 5
ebpftracer/tracer.go

@@ -239,7 +239,11 @@ func (t *Tracer) init(ch chan<- Event) error {
 		}
 		if typ == EventTypeConnectionOpen {
 			id := ConnectionId{FD: s.fd, PID: s.pid}
-			conn := Connection{Timestamp: timestamp}
+			sip := s.SAddr.IP()
+			sipbytes := sip.As16()
+			dip := s.DAddr.IP()
+			dipbytes := dip.As16()
+			conn := Connection{Timestamp: timestamp, Saddr: sipbytes, Sport: s.SAddr.Port(), Daddr: dipbytes, Dport: s.DAddr.Port()}
 			if err := ebpfConnectionsMap.Update(id, conn, ebpf.UpdateNoExist); err != nil {
 				klog.Warningln(err)
 			}
@@ -754,10 +758,10 @@ func runEventsReader(name string, r *perf.Reader, ch chan<- Event, typ perfMapTy
 				ComponentSAddr: ipPort(v.ComponentSAddr, v.ComponentSport),
 				ComponentDAddr: ipPort(v.ComponentDAddr, v.ComponentDport),
 			}
-			/*if req.Protocol == l7.ProtocolHTTP {
+			if req.Protocol == l7.ProtocolHTTP {
 				klog.Infof("runEventsReader ComponentSAddr.String %s", req.ComponentSAddr.String())
 				klog.Infof("runEventsReader ComponentDAddr.String %s", req.ComponentDAddr.String())
-			}*/
+			}
 			if v.TraceEnd == 1 {
 				req.ParentSpanContext.TraceIdFrom = hex.EncodeToString(v.TraceIdFrom[:])
 				req.ParentSpanContext.CalledId = hex.EncodeToString(v.CalledId[:])
@@ -766,8 +770,8 @@ func runEventsReader(name string, r *perf.Reader, ch chan<- Event, typ perfMapTy
 				req.ParentSpanContext.SpanIdFrom = hex.EncodeToString(v.SpanIdFrom[:])
 				req.SAddr = ipPort(v.SAddr, v.Sport)
 				req.DAddr = ipPort(v.DAddr, v.Dport)
-				//klog.Infof("runEventsReader SAddr.String %s", req.SAddr.String())
-				//klog.Infof("runEventsReader DAddr.String %s", req.DAddr.String())
+				klog.Infof("runEventsReader SAddr.String %s", req.SAddr.String())
+				klog.Infof("runEventsReader DAddr.String %s", req.DAddr.String())
 			}
 			switch {
 			case v.PayloadSize == 0: