mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-06-24 15:24:17 +00:00
Merge pull request #108 from up9inc/tap_param_interval
Adding the upload interval as parameter to tap function
This commit is contained in:
commit
b29b15cf6c
@ -141,7 +141,7 @@ func GetHARs(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func UploadEntries(c *fiber.Ctx) error {
|
func UploadEntries(c *fiber.Ctx) error {
|
||||||
rlog.Debugf("Upload entries - started\n")
|
rlog.Infof("Upload entries - started\n")
|
||||||
|
|
||||||
uploadRequestBody := &models.UploadEntriesRequestBody{}
|
uploadRequestBody := &models.UploadEntriesRequestBody{}
|
||||||
if err := c.QueryParser(uploadRequestBody); err != nil {
|
if err := c.QueryParser(uploadRequestBody); err != nil {
|
||||||
@ -153,13 +153,13 @@ func UploadEntries(c *fiber.Ctx) error {
|
|||||||
if up9.GetAnalyzeInfo().IsAnalyzing {
|
if up9.GetAnalyzeInfo().IsAnalyzing {
|
||||||
return c.Status(fiber.StatusBadRequest).SendString("Cannot analyze, mizu is already analyzing")
|
return c.Status(fiber.StatusBadRequest).SendString("Cannot analyze, mizu is already analyzing")
|
||||||
}
|
}
|
||||||
rlog.Debugf("Upload entries - creating token. dest %s\n", uploadRequestBody.Dest)
|
rlog.Infof("Upload entries - creating token. dest %s\n", uploadRequestBody.Dest)
|
||||||
token, err := up9.CreateAnonymousToken(uploadRequestBody.Dest)
|
token, err := up9.CreateAnonymousToken(uploadRequestBody.Dest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return c.Status(fiber.StatusServiceUnavailable).SendString("Can't get token")
|
return c.Status(fiber.StatusServiceUnavailable).SendString("Can't get token")
|
||||||
}
|
}
|
||||||
rlog.Infof("Upload entries - uploading. token: %s model: %s\n", token.Token, token.Model)
|
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")
|
return c.Status(fiber.StatusOK).SendString("OK")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,8 +100,6 @@ func (fedex *FullEntryDetailsExtra) UnmarshalData(entry *MizuEntry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
type EntryData struct {
|
type EntryData struct {
|
||||||
Entry string `json:"entry,omitempty"`
|
Entry string `json:"entry,omitempty"`
|
||||||
ResolvedDestination string `json:"resolvedDestination,omitempty" gorm:"column:resolvedDestination"`
|
ResolvedDestination string `json:"resolvedDestination,omitempty" gorm:"column:resolvedDestination"`
|
||||||
@ -114,7 +112,8 @@ type EntriesFilter struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type UploadEntriesRequestBody struct {
|
type UploadEntriesRequestBody struct {
|
||||||
Dest string `query:"dest"`
|
Dest string `query:"dest"`
|
||||||
|
SleepIntervalSec int `query:"interval"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type HarFetchRequestBody struct {
|
type HarFetchRequestBody struct {
|
||||||
|
@ -36,7 +36,7 @@ func getGuestToken(url string, target *GuestToken) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
rlog.Debugf("Got token from the server, starting to json decode... status code: %v", resp.StatusCode)
|
rlog.Infof("Got token from the server, starting to json decode... status code: %v", resp.StatusCode)
|
||||||
return json.NewDecoder(resp.Body).Decode(target)
|
return json.NewDecoder(resp.Body).Decode(target)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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.IsAnalyzing = true
|
||||||
analyzeInformation.AnalyzedModel = model
|
analyzeInformation.AnalyzedModel = model
|
||||||
analyzeInformation.AnalyzeToken = token
|
analyzeInformation.AnalyzeToken = token
|
||||||
analyzeInformation.AnalyzeDestination = envPrefix
|
analyzeInformation.AnalyzeDestination = envPrefix
|
||||||
|
|
||||||
sleepTime := time.Second * 10
|
sleepTime := time.Second * time.Duration(sleepIntervalSec)
|
||||||
|
|
||||||
var timestampFrom int64 = 0
|
var timestampFrom int64 = 0
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ type MizuTapOptions struct {
|
|||||||
MizuImage string
|
MizuImage string
|
||||||
PlainTextFilterRegexes []string
|
PlainTextFilterRegexes []string
|
||||||
TapOutgoing bool
|
TapOutgoing bool
|
||||||
|
SleepIntervalSec uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
var mizuTapOptions = &MizuTapOptions{}
|
var mizuTapOptions = &MizuTapOptions{}
|
||||||
@ -64,6 +65,7 @@ func init() {
|
|||||||
tapCmd.Flags().StringVarP(&mizuTapOptions.Namespace, "namespace", "n", "", "Namespace selector")
|
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().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().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().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.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")
|
tapCmd.Flags().StringVarP(&mizuTapOptions.MizuImage, "mizu-image", "", fmt.Sprintf("gcr.io/up9-docker-hub/mizu/%s:latest", mizu.Branch), "Custom image for mizu collector")
|
||||||
|
@ -253,14 +253,14 @@ func portForwardApiPod(ctx context.Context, kubernetesProvider *kubernetes.Provi
|
|||||||
|
|
||||||
time.Sleep(time.Second * 5) // Waiting to be sure the proxy is ready
|
time.Sleep(time.Second * 5) // Waiting to be sure the proxy is ready
|
||||||
if tappingOptions.Analyze {
|
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=%v", mizuProxiedUrl, url.QueryEscape(tappingOptions.AnalyzeDestination), tappingOptions.SleepIntervalSec)
|
||||||
u, err := url.ParseRequestURI(url_path)
|
u, err := url.ParseRequestURI(url_path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(fmt.Sprintf("Failed parsing the URL %v\n", err))
|
log.Fatal(fmt.Sprintf("Failed parsing the URL %v\n", err))
|
||||||
}
|
}
|
||||||
rlog.Debugf("Sending get request to %v\n", u.String())
|
rlog.Debugf("Sending get request to %v\n", u.String())
|
||||||
if response, err := http.Get(u.String()); err != nil && response.StatusCode != 200 {
|
if response, err := http.Get(u.String()); err != nil || response.StatusCode != 200 {
|
||||||
fmt.Printf("error sending upload entries req %v\n", err)
|
fmt.Printf("error sending upload entries req, status code: %v, err: %v\n", response.StatusCode, err)
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf(mizu.Purple, "Traffic is uploading to UP9 for further analsys")
|
fmt.Printf(mizu.Purple, "Traffic is uploading to UP9 for further analsys")
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
Loading…
Reference in New Issue
Block a user