diff --git a/acceptanceTests/extensions_test.go b/acceptanceTests/extensions_test.go index db9bea554..d42b8d205 100644 --- a/acceptanceTests/extensions_test.go +++ b/acceptanceTests/extensions_test.go @@ -103,7 +103,6 @@ func TestRedis(t *testing.T) { } func TestAmqp(t *testing.T) { - t.Skip("Invalid test. Not stable") if testing.Short() { t.Skip("ignored acceptance test") } @@ -156,7 +155,7 @@ func TestAmqp(t *testing.T) { defer conn.Close() // Temporary fix for missing amqp entries - time.Sleep(5 * time.Second) + time.Sleep(10 * time.Second) for i := 0; i < defaultEntriesCount/5; i++ { ch, err := conn.Channel() diff --git a/acceptanceTests/testsUtils.go b/acceptanceTests/testsUtils.go index 4c790e1a3..c7b5734f2 100644 --- a/acceptanceTests/testsUtils.go +++ b/acceptanceTests/testsUtils.go @@ -150,9 +150,10 @@ func runCypressTests(t *testing.T, cypressRunCmd string) { t.Logf("running command: %v", cypressCmd.String()) out, err := cypressCmd.Output() if err != nil { - t.Errorf("%s", out) + t.Errorf("error running cypress, error: %v", err) return } + t.Logf("%s", out) } diff --git a/agent/main.go b/agent/main.go index 84067dc6e..4b91de770 100644 --- a/agent/main.go +++ b/agent/main.go @@ -56,7 +56,7 @@ const ( func main() { logLevel := determineLogLevel() - logger.InitLoggerStderrOnly(logLevel) + logger.InitLoggerStd(logLevel) flag.Parse() if err := config.LoadConfig(); err != nil { logger.Log.Fatalf("Error loading config file %v", err) diff --git a/agent/pkg/api/socket_routes.go b/agent/pkg/api/socket_routes.go index ad6983bcd..f3d810395 100644 --- a/agent/pkg/api/socket_routes.go +++ b/agent/pkg/api/socket_routes.go @@ -30,6 +30,11 @@ type SocketConnection struct { isTapper bool } +type WebSocketParams struct { + Query string `json:"query"` + EnableFullEntries bool `json:"enableFullEntries"` +} + var ( websocketUpgrader = websocket.Upgrader{ ReadBufferSize: 1024, @@ -110,31 +115,26 @@ func websocketHandler(w http.ResponseWriter, r *http.Request, eventHandlers Even logger.Log.Error(err) } -out: + var params WebSocketParams + for { - // params[0]: query - // params[1]: enableFullEntries (empty: disable, non-empty: enable) - params := make([][]byte, 2) - for i := range params { - _, params[i], err = ws.ReadMessage() - if err != nil { - if _, ok := err.(*websocket.CloseError); ok { - logger.Log.Debugf("Received websocket close message, socket id: %d", socketId) - } else { - logger.Log.Errorf("Error reading message, socket id: %d, error: %v", socketId, err) - } - - break out + _, msg, err := ws.ReadMessage() + if err != nil { + if _, ok := err.(*websocket.CloseError); ok { + logger.Log.Debugf("Received websocket close message, socket id: %d", socketId) + } else { + logger.Log.Errorf("Error reading message, socket id: %d, error: %v", socketId, err) } - } - enableFullEntries := false - if len(params[1]) > 0 { - enableFullEntries = true + break } if !isTapper && !isQuerySet { - query := string(params[0]) + if err := json.Unmarshal(msg, ¶ms); err != nil { + logger.Log.Errorf("Error: %v", socketId, err) + } + + query := params.Query err = basenine.Validate(shared.BasenineHost, shared.BaseninePort, query) if err != nil { toastBytes, _ := models.CreateWebsocketToastMessage(&models.ToastMessage{ @@ -162,7 +162,7 @@ out: err = json.Unmarshal(bytes, &entry) var message []byte - if enableFullEntries { + if params.EnableFullEntries { message, _ = models.CreateFullEntryWebSocketMessage(entry) } else { base := tapApi.Summarize(entry) @@ -201,7 +201,7 @@ out: connection.Query(query, data, meta) } else { - eventHandlers.WebSocketMessage(socketId, params[0]) + eventHandlers.WebSocketMessage(socketId, msg) } } } diff --git a/agent/pkg/oas/specgen_test.go b/agent/pkg/oas/specgen_test.go index 1b7dd1438..98b3e9d5d 100644 --- a/agent/pkg/oas/specgen_test.go +++ b/agent/pkg/oas/specgen_test.go @@ -41,7 +41,7 @@ func outputSpec(label string, spec *openapi.OpenAPI, t *testing.T) string { } func TestEntries(t *testing.T) { - logger.InitLoggerStderrOnly(logging.INFO) + logger.InitLoggerStd(logging.INFO) files, err := getFiles("./test_artifacts/") if err != nil { t.Log(err) diff --git a/cli/cmd/install.go b/cli/cmd/install.go index d0a96a0cb..ccf6e9a3a 100644 --- a/cli/cmd/install.go +++ b/cli/cmd/install.go @@ -14,10 +14,10 @@ var installCmd = &cobra.Command{ logger.Log.Infof("This command has been deprecated, please use helm as described below.\n\n") logger.Log.Infof("To install stable build of Mizu on your cluster using helm, run the following command:") - logger.Log.Infof(" helm install mizu https://static.up9.com/mizu/helm --namespace=mizu --create-namespace\n\n") + logger.Log.Infof(" helm install mizu mizu --repo https://static.up9.com/mizu/helm --namespace=mizu --create-namespace\n\n") logger.Log.Infof("To install development build of Mizu on your cluster using helm, run the following command:") - logger.Log.Infof(" helm install mizu https://static.up9.com/mizu/helm-develop --namespace=mizu --create-namespace") + logger.Log.Infof(" helm install mizu mizu --repo https://static.up9.com/mizu/helm-develop --namespace=mizu --create-namespace\n") return nil }, diff --git a/shared/logger/logger.go b/shared/logger/logger.go index 52379a7a6..0ccea2cef 100644 --- a/shared/logger/logger.go +++ b/shared/logger/logger.go @@ -29,10 +29,21 @@ func InitLogger(logPath string) { logging.SetBackend(backend1Leveled, backend2Formatter) } -func InitLoggerStderrOnly(level logging.Level) { - backend := logging.NewLogBackend(os.Stderr, "", 0) - backendFormatter := logging.NewBackendFormatter(backend, format) +func InitLoggerStd(level logging.Level) { + var backends []logging.Backend - logging.SetBackend(backendFormatter) - logging.SetLevel(level, "") + stderrBackend := logging.NewLogBackend(os.Stderr, "", 0) + stderrFormater := logging.NewBackendFormatter(stderrBackend, format) + stderrLeveled := logging.AddModuleLevel(stderrFormater) + stderrLeveled.SetLevel(logging.ERROR, "") + backends = append(backends, stderrLeveled) + + if level >= logging.WARNING { + stdoutBackend := logging.NewLogBackend(os.Stdout, "", 0) + stdoutFormater := logging.NewBackendFormatter(stdoutBackend, format) + stdoutLeveled := logging.AddModuleLevel(stdoutFormater) + stdoutLeveled.SetLevel(level, "") + backends = append(backends, stdoutLeveled) + } + logging.SetBackend(backends...) } diff --git a/ui/src/components/Pages/TrafficPage/TrafficPage.tsx b/ui/src/components/Pages/TrafficPage/TrafficPage.tsx index c8732378f..2b71bed5f 100644 --- a/ui/src/components/Pages/TrafficPage/TrafficPage.tsx +++ b/ui/src/components/Pages/TrafficPage/TrafficPage.tsx @@ -121,8 +121,7 @@ export const TrafficPage: React.FC = ({setAnalyzeStatus}) => { ws.current = new WebSocket(MizuWebsocketURL); ws.current.onopen = () => { setWsConnection(WsConnectionStatus.Connected); - ws.current.send(query); - ws.current.send(""); + ws.current.send(JSON.stringify({"query": query, "enableFullEntries": false})); } ws.current.onclose = () => { setWsConnection(WsConnectionStatus.Closed);