diff --git a/agent/main.go b/agent/main.go index c310aa16d..1d5530c18 100644 --- a/agent/main.go +++ b/agent/main.go @@ -292,9 +292,12 @@ func pipeTapChannelToSocket(connection *websocket.Conn, messageDataChannel <-cha continue } + if os.Getenv("MIZU_TAPPER_NO_SENDING") == "true" { + continue + } + // NOTE: This is where the `*tapApi.OutputChannelItem` leaves the code // and goes into the intermediate WebSocket. - // (DEBUG_PERF 7) Comment out to disable writing to WebSocket err = connection.WriteMessage(websocket.TextMessage, marshaledData) if err != nil { logger.Log.Errorf("error sending message through socket server %v, err: %s, (%v,%+v)", messageData, err, err, err) diff --git a/tap/api/api.go b/tap/api/api.go index 774abde90..4ed15dba6 100644 --- a/tap/api/api.go +++ b/tap/api/api.go @@ -149,7 +149,10 @@ type Emitter interface { } func (e *Emitting) Emit(item *OutputChannelItem) { - // (DEBUG_PERF 6) Comment out to disable emitting from tapper to api-server + if os.Getenv("MIZU_TAPPER_NO_EMITTER") == "true" { + return + } + e.OutputChannel <- item e.AppStats.IncMatchedPairs() } diff --git a/tap/source/packet_source_manager.go b/tap/source/packet_source_manager.go index 2daf7f47a..9dcb60a27 100644 --- a/tap/source/packet_source_manager.go +++ b/tap/source/packet_source_manager.go @@ -44,7 +44,6 @@ func NewPacketSourceManager(procfs string, filename string, interfaceName string behaviour: behaviour, } - // (DEBUG_PERF 1) Comment out to disable host pcap (do not pass --tls or --service-mesh) go hostSource.readPackets(ipdefrag, packets) return sourceManager, nil } diff --git a/tap/source/tcp_packet_source.go b/tap/source/tcp_packet_source.go index 315b69d54..fcb58b538 100644 --- a/tap/source/tcp_packet_source.go +++ b/tap/source/tcp_packet_source.go @@ -1,6 +1,7 @@ package source import ( + "os" "fmt" "io" "time" @@ -116,6 +117,10 @@ func (source *tcpPacketSource) close() { } func (source *tcpPacketSource) readPackets(ipdefrag bool, packets chan<- TcpPacketInfo) { + if os.Getenv("MIZU_TAPPER_NO_PCAP") == "true" { + return + } + logger.Log.Infof("Start reading packets from %v", source.name) for { diff --git a/tap/tcp_assembler.go b/tap/tcp_assembler.go index 0e3f0458a..e7b500e61 100644 --- a/tap/tcp_assembler.go +++ b/tap/tcp_assembler.go @@ -78,7 +78,6 @@ func (a *tcpAssembler) processPackets(dumpPacket bool, packets <-chan source.Tcp logger.Log.Debugf("Packet content (%d/0x%x) - %s", len(data), len(data), hex.Dump(data)) } - // (DEBUG_PERF 2) Comment out to disable assembler tcp := packet.Layer(layers.LayerTypeTCP) if tcp != nil { diagnose.AppStats.IncTcpPacketsCount() @@ -90,7 +89,9 @@ func (a *tcpAssembler) processPackets(dumpPacket bool, packets <-chan source.Tcp } diagnose.InternalStats.Totalsz += len(tcp.Payload) a.assemblerMutex.Lock() - a.AssembleWithContext(packet.NetworkLayer().NetworkFlow(), tcp, &c) + if os.Getenv("MIZU_TAPPER_NO_ASSEMBLER") != "true" { + a.AssembleWithContext(packet.NetworkLayer().NetworkFlow(), tcp, &c) + } a.assemblerMutex.Unlock() } diff --git a/tap/tcp_reader.go b/tap/tcp_reader.go index 472d93f03..37c08c0ff 100644 --- a/tap/tcp_reader.go +++ b/tap/tcp_reader.go @@ -1,6 +1,7 @@ package tap import ( + "os" "bufio" "io" "io/ioutil" @@ -55,8 +56,12 @@ func NewTcpReader(msgQueue chan api.TcpReaderDataMsg, progress *api.ReadProgress func (reader *tcpReader) run(options *api.TrafficFilteringOptions, wg *sync.WaitGroup) { defer wg.Done() b := bufio.NewReader(reader) - // (DEBUG_PERF 4) Swap with next line to disable dissectors - // _, _ = io.ReadAll(b) + + if os.Getenv("MIZU_TAPPER_NO_DISSECTORS") == "true" { + io.ReadAll(b) + return + } + err := reader.extension.Dissector.Dissect(b, reader, options) if err != nil { _, err = io.Copy(ioutil.Discard, reader) diff --git a/tap/tcp_stream.go b/tap/tcp_stream.go index 13e0930d6..3d75910d5 100644 --- a/tap/tcp_stream.go +++ b/tap/tcp_stream.go @@ -1,6 +1,7 @@ package tap import ( + "os" "sync" "time" @@ -132,7 +133,10 @@ func (t *tcpStream) GetReqResMatchers() []api.RequestResponseMatcher { } func (t *tcpStream) GetIsTapTarget() bool { - // (DEBUG_PERF 3) Return false to disable Dissecting + if os.Getenv("MIZU_TAPPER_NO_TAP_TARGET") == "true" { + return false + } + return t.isTapTarget }