mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-07-16 01:16:47 +00:00
Adding telemetry reports
This commit is contained in:
parent
fbf3d1729e
commit
3be0c9ecd9
@ -18,6 +18,7 @@ var fetchCmd = &cobra.Command{
|
|||||||
Use: "fetch",
|
Use: "fetch",
|
||||||
Short: "Download recorded traffic to files",
|
Short: "Download recorded traffic to files",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
go mizu.ReportRun("tap", mizuTapOptions)
|
||||||
if isCompatible, err := mizu.CheckVersionCompatibility(mizuFetchOptions.MizuPort); err != nil {
|
if isCompatible, err := mizu.CheckVersionCompatibility(mizuFetchOptions.MizuPort); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if !isCompatible {
|
} else if !isCompatible {
|
||||||
|
@ -31,8 +31,8 @@ var mizuTapOptions = &MizuTapOptions{}
|
|||||||
var direction string
|
var direction string
|
||||||
var humanMaxEntriesDBSize string
|
var humanMaxEntriesDBSize string
|
||||||
var regex *regexp.Regexp
|
var regex *regexp.Regexp
|
||||||
const maxEntriesDBSizeFlagName = "max-entries-db-size"
|
|
||||||
|
|
||||||
|
const maxEntriesDBSizeFlagName = "max-entries-db-size"
|
||||||
|
|
||||||
const analysisMessageToConfirm = `NOTE: running mizu with --analysis flag will upload recorded traffic
|
const analysisMessageToConfirm = `NOTE: running mizu with --analysis flag will upload recorded traffic
|
||||||
to UP9 cloud for further analysis and enriched presentation options.
|
to UP9 cloud for further analysis and enriched presentation options.
|
||||||
@ -44,6 +44,7 @@ var tapCmd = &cobra.Command{
|
|||||||
Long: `Record the ingoing traffic of a kubernetes pod.
|
Long: `Record the ingoing traffic of a kubernetes pod.
|
||||||
Supported protocols are HTTP and gRPC.`,
|
Supported protocols are HTTP and gRPC.`,
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
go mizu.ReportRun("tap", mizuTapOptions)
|
||||||
RunMizuTap(regex, mizuTapOptions)
|
RunMizuTap(regex, mizuTapOptions)
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
@ -10,20 +10,20 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type MizuVersionOptions struct {
|
type MizuVersionOptions struct {
|
||||||
DebugInfo bool
|
DebugInfo bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var mizuVersionOptions = &MizuVersionOptions{}
|
var mizuVersionOptions = &MizuVersionOptions{}
|
||||||
|
|
||||||
var versionCmd = &cobra.Command{
|
var versionCmd = &cobra.Command{
|
||||||
Use: "version",
|
Use: "version",
|
||||||
Short: "Print version info",
|
Short: "Print version info",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
go mizu.ReportRun("version", mizuVersionOptions)
|
||||||
if mizuVersionOptions.DebugInfo {
|
if mizuVersionOptions.DebugInfo {
|
||||||
timeStampInt, _ := strconv.ParseInt(mizu.BuildTimestamp, 10, 0)
|
timeStampInt, _ := strconv.ParseInt(mizu.BuildTimestamp, 10, 0)
|
||||||
fmt.Printf("Version: %s \nBranch: %s (%s) \n", mizu.SemVer, mizu.Branch, mizu.GitCommitHash)
|
fmt.Printf("Version: %s \nBranch: %s (%s) \n", mizu.SemVer, mizu.Branch, mizu.GitCommitHash)
|
||||||
fmt.Printf("Build Time: %s (%s)\n", mizu.BuildTimestamp, time.Unix(timeStampInt, 0))
|
fmt.Printf("Build Time: %s (%s)\n", mizu.BuildTimestamp, time.Unix(timeStampInt, 0))
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("Version: %s (%s)\n", mizu.SemVer, mizu.Branch)
|
fmt.Printf("Version: %s (%s)\n", mizu.SemVer, mizu.Branch)
|
||||||
|
@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type MizuViewOptions struct {
|
type MizuViewOptions struct {
|
||||||
GuiPort uint16
|
GuiPort uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
var mizuViewOptions = &MizuViewOptions{}
|
var mizuViewOptions = &MizuViewOptions{}
|
||||||
@ -15,6 +15,7 @@ var viewCmd = &cobra.Command{
|
|||||||
Use: "view",
|
Use: "view",
|
||||||
Short: "Open GUI in browser",
|
Short: "Open GUI in browser",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
go mizu.ReportRun("view", mizuFetchOptions)
|
||||||
if isCompatible, err := mizu.CheckVersionCompatibility(mizuFetchOptions.MizuPort); err != nil {
|
if isCompatible, err := mizu.CheckVersionCompatibility(mizuFetchOptions.MizuPort); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if !isCompatible {
|
} else if !isCompatible {
|
||||||
@ -23,7 +24,6 @@ var viewCmd = &cobra.Command{
|
|||||||
runMizuView(mizuViewOptions)
|
runMizuView(mizuViewOptions)
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
29
cli/mizu/telemetry.go
Normal file
29
cli/mizu/telemetry.go
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package mizu
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"github.com/romana/rlog"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ReportRun(cmd string, args interface{}) {
|
||||||
|
if Branch != "main" {
|
||||||
|
rlog.Debugf("reporting only on main branch")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
url := "https://us-east4-up9-prod.cloudfunctions.net/mizu-telemetry"
|
||||||
|
|
||||||
|
argsBytes, _ := json.Marshal(args)
|
||||||
|
argsMap := map[string]string{"telemetry_type": "mizu_execution", "cmd": cmd, "args": string(argsBytes), "component": "mizu_cli"}
|
||||||
|
argsMap["message"] = fmt.Sprintf("mizu %v - %v", argsMap["cmd"], string(argsBytes))
|
||||||
|
|
||||||
|
jsonValue, _ := json.Marshal(argsMap)
|
||||||
|
|
||||||
|
if resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonValue)); err != nil {
|
||||||
|
rlog.Debugf("error sending telemtry err: %v, response %v", err, resp)
|
||||||
|
} else {
|
||||||
|
rlog.Debugf("Successfully reported telemetry")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user