diff --git a/api/pkg/controllers/entries_controller.go b/api/pkg/controllers/entries_controller.go index eb4c6109c..cde3dda1d 100644 --- a/api/pkg/controllers/entries_controller.go +++ b/api/pkg/controllers/entries_controller.go @@ -159,7 +159,7 @@ func UploadEntries(c *fiber.Ctx) error { return c.Status(fiber.StatusServiceUnavailable).SendString("Can't get token") } rlog.Infof("Upload entries - uploading. token: %s model: %s\n", token.Token, token.Model) - go up9.UploadEntriesImpl(token.Token, token.Model, uploadRequestBody.Dest) + go up9.UploadEntriesImpl(token.Token, token.Model, uploadRequestBody.Dest, uploadRequestBody.sleepIntervalSec) return c.Status(fiber.StatusOK).SendString("OK") } diff --git a/api/pkg/models/models.go b/api/pkg/models/models.go index 8c0d07e22..f0be0cbc7 100644 --- a/api/pkg/models/models.go +++ b/api/pkg/models/models.go @@ -100,8 +100,6 @@ func (fedex *FullEntryDetailsExtra) UnmarshalData(entry *MizuEntry) error { return nil } - - type EntryData struct { Entry string `json:"entry,omitempty"` ResolvedDestination string `json:"resolvedDestination,omitempty" gorm:"column:resolvedDestination"` @@ -114,7 +112,8 @@ type EntriesFilter struct { } type UploadEntriesRequestBody struct { - Dest string `query:"dest"` + Dest string `query:"dest"` + sleepIntervalSec int `query:"interval"` } type HarFetchRequestBody struct { diff --git a/api/pkg/up9/main.go b/api/pkg/up9/main.go index 9e2179edd..469b2eb99 100644 --- a/api/pkg/up9/main.go +++ b/api/pkg/up9/main.go @@ -112,13 +112,13 @@ func GetAnalyzeInfo() *shared.AnalyzeStatus { } } -func UploadEntriesImpl(token string, model string, envPrefix string) { +func UploadEntriesImpl(token string, model string, envPrefix string, sleepIntervalSec int) { analyzeInformation.IsAnalyzing = true analyzeInformation.AnalyzedModel = model analyzeInformation.AnalyzeToken = token analyzeInformation.AnalyzeDestination = envPrefix - sleepTime := time.Second * 10 + sleepTime := time.Second * time.Duration(sleepIntervalSec) var timestampFrom int64 = 0 diff --git a/cli/cmd/tap.go b/cli/cmd/tap.go index 47f209738..e7b88b1be 100644 --- a/cli/cmd/tap.go +++ b/cli/cmd/tap.go @@ -21,6 +21,7 @@ type MizuTapOptions struct { MizuImage string PlainTextFilterRegexes []string TapOutgoing bool + SleepIntervalSec uint16 } var mizuTapOptions = &MizuTapOptions{} @@ -64,6 +65,7 @@ func init() { tapCmd.Flags().StringVarP(&mizuTapOptions.Namespace, "namespace", "n", "", "Namespace selector") tapCmd.Flags().BoolVar(&mizuTapOptions.Analyze, "analyze", false, "Uploads traffic to UP9 for further analysis (Beta)") tapCmd.Flags().StringVar(&mizuTapOptions.AnalyzeDestination, "dest", "up9.app", "Destination environment") + tapCmd.Flags().Uint16VarP(&mizuTapOptions.SleepIntervalSec, "upload-interval", "", 10, "Interval in seconds for uploading data to UP9") tapCmd.Flags().BoolVarP(&mizuTapOptions.AllNamespaces, "all-namespaces", "A", false, "Tap all namespaces") tapCmd.Flags().StringVarP(&mizuTapOptions.KubeConfigPath, "kube-config", "k", "", "Path to kube-config file") tapCmd.Flags().StringVarP(&mizuTapOptions.MizuImage, "mizu-image", "", fmt.Sprintf("gcr.io/up9-docker-hub/mizu/%s:latest", mizu.Branch), "Custom image for mizu collector") diff --git a/cli/cmd/tapRunner.go b/cli/cmd/tapRunner.go index 69a6f2015..43b5b2240 100644 --- a/cli/cmd/tapRunner.go +++ b/cli/cmd/tapRunner.go @@ -253,7 +253,7 @@ func portForwardApiPod(ctx context.Context, kubernetesProvider *kubernetes.Provi time.Sleep(time.Second * 5) // Waiting to be sure the proxy is ready if tappingOptions.Analyze { - url_path := fmt.Sprintf("http://%s/api/uploadEntries?dest=%s", mizuProxiedUrl, url.QueryEscape(tappingOptions.AnalyzeDestination)) + url_path := fmt.Sprintf("http://%s/api/uploadEntries?dest=%s&interval=%s", mizuProxiedUrl, url.QueryEscape(tappingOptions.AnalyzeDestination), tappingOptions.SleepIntervalSec) u, err := url.ParseRequestURI(url_path) if err != nil { log.Fatal(fmt.Sprintf("Failed parsing the URL %v\n", err))